diff --git a/.directory b/.directory new file mode 100644 index 0000000..d69f7a9 --- /dev/null +++ b/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=folder-green diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..4ee706a --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +packs/** binary diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9be5194 --- /dev/null +++ b/LICENSE @@ -0,0 +1,55 @@ +Business Source License 1.1 +Licensor: Allecks & VoidSmiths +Licensed Work: Test Tube Merchant (ID: test_tube_merchant) +Additional Use Grant: You are permitted to use the Licensed Work for non-commercial purposes only, strictly inside the Foundry Virtual Tabletop software platform. +Change Date: January 1, 2047 +Change License: MIT License, available at https://opensource.org/licenses/MIT + +-------------------------------------------------------------------------------- + +PREAMBLE + +The Business Source License 1.1 (this "License") allows you to use the +Licensed Work only in accordance with the terms and conditions below. + +1. LICENSE GRANTS AND CONDITIONS + +1.1. Non-Commercial Use Grant. The Licensor hereby grants you a non-exclusive, +non-transferable, royalty-free, worldwide right to install, run, and use the +Licensed Work solely for personal, educational, and other non-commercial +tabletop gaming activities within Foundry Virtual Tabletop. + +1.2. No Modification. You are strictly prohibited from modifying, altering, +adapting, translating, or creating derivative works based on the Licensed Work. +You must run the Licensed Work exactly as distributed by the Licensor. + +1.3. No Commercial Use. Any commercial use of the Licensed Work is strictly +prohibited. Commercial use includes, but is not limited to: +- Hosting paid games or offering paid GM services where this module is used. +- Bundling this module into any paid distribution, subscription, or service. +- Using this module to generate advertising or sponsorship revenue. + +2. CHANGE TO MIT LICENSE + +Effective on the Change Date, or upon an earlier date designated in writing by +the Licensor, the Licensor hereby grants you a license to the Licensed Work +under the Change License (MIT License). From the Change Date onward, the terms +of this License shall no longer apply, and your rights to use, modify, and +distribute the Licensed Work will be governed solely by the MIT License. + +3. COPYRIGHT AND TRADEMARKS + +All title, ownership rights, and intellectual property rights in and to the +Licensed Work (including but not limited to any code, images, and text) remain +the sole property of NickName and AwesomeStudio. You must retain all +copyright notices intact on all copies of the Licensed Work. + +4. DISCLAIMER OF WARRANTY + +THE LICENSED WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE LICENSED WORK OR THE USE OR OTHER DEALINGS IN THE LICENSED +WORK. diff --git a/test_tube_merchant/.directory b/test_tube_merchant/.directory new file mode 100644 index 0000000..d69f7a9 --- /dev/null +++ b/test_tube_merchant/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=folder-green diff --git a/test_tube_merchant/CHANGELOG.md b/test_tube_merchant/CHANGELOG.md new file mode 100755 index 0000000..e3f02ca --- /dev/null +++ b/test_tube_merchant/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +## [1.3.0] - 2023-10-15 +### Добавлено +- Поддержка новых типов товаров: "Механические приспособления" и "Религиозные товары". +- Добавлена возможность случайной генерации уровня торговца. + +### Изменено +- Улучшена производительность при загрузке предметов из компендиумов. +- Обновлены тексты описаний для категорий товаров. + +### Исправлено +- Исправлена ошибка при добавлении предметов к торговцу (см. `module/data.mjs`, строки 2436-2446). +- Исправлена проблема с отображением характеристик торговца в интерфейсе. + +### Заметки +- Рекомендуется обновить Foundry VTT до версии 11.0 для лучшей совместимости. diff --git a/test_tube_merchant/assets/icon/effects/wagon.png b/test_tube_merchant/assets/icon/effects/wagon.png new file mode 100755 index 0000000..e4229eb Binary files /dev/null and b/test_tube_merchant/assets/icon/effects/wagon.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/beers/1.png b/test_tube_merchant/assets/icon/goods/bars/beers/1.png new file mode 100755 index 0000000..c2a8acf Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/beers/1.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/beers/2.png b/test_tube_merchant/assets/icon/goods/bars/beers/2.png new file mode 100755 index 0000000..3f87348 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/beers/2.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/beers/3.png b/test_tube_merchant/assets/icon/goods/bars/beers/3.png new file mode 100755 index 0000000..d5cb5fd Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/beers/3.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/beers/4.png b/test_tube_merchant/assets/icon/goods/bars/beers/4.png new file mode 100755 index 0000000..5c8add6 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/beers/4.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/beers/5.png b/test_tube_merchant/assets/icon/goods/bars/beers/5.png new file mode 100755 index 0000000..e33045b Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/beers/5.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/beers/6.png b/test_tube_merchant/assets/icon/goods/bars/beers/6.png new file mode 100755 index 0000000..3472ef2 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/beers/6.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/cofee/1.png b/test_tube_merchant/assets/icon/goods/bars/cofee/1.png new file mode 100755 index 0000000..00a34cf Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/cofee/1.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/cofee/2.png b/test_tube_merchant/assets/icon/goods/bars/cofee/2.png new file mode 100755 index 0000000..2df5ef6 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/cofee/2.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/cofee/3.png b/test_tube_merchant/assets/icon/goods/bars/cofee/3.png new file mode 100755 index 0000000..f67133e Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/cofee/3.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/cofee/4.png b/test_tube_merchant/assets/icon/goods/bars/cofee/4.png new file mode 100755 index 0000000..9158853 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/cofee/4.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/cofee/5.png b/test_tube_merchant/assets/icon/goods/bars/cofee/5.png new file mode 100755 index 0000000..a3d0345 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/cofee/5.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/1.png b/test_tube_merchant/assets/icon/goods/bars/tea/1.png new file mode 100755 index 0000000..4a2f11a Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/1.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/2.png b/test_tube_merchant/assets/icon/goods/bars/tea/2.png new file mode 100755 index 0000000..ff2ffde Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/2.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/3.png b/test_tube_merchant/assets/icon/goods/bars/tea/3.png new file mode 100755 index 0000000..5eb3198 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/3.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/4.png b/test_tube_merchant/assets/icon/goods/bars/tea/4.png new file mode 100755 index 0000000..08f34fe Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/4.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/5.png b/test_tube_merchant/assets/icon/goods/bars/tea/5.png new file mode 100755 index 0000000..123b291 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/5.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/6.png b/test_tube_merchant/assets/icon/goods/bars/tea/6.png new file mode 100755 index 0000000..fb0117b Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/6.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/7.png b/test_tube_merchant/assets/icon/goods/bars/tea/7.png new file mode 100755 index 0000000..4c67a43 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/7.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/tea/8.png b/test_tube_merchant/assets/icon/goods/bars/tea/8.png new file mode 100755 index 0000000..ce98ec0 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/tea/8.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/whiskey/1.png b/test_tube_merchant/assets/icon/goods/bars/whiskey/1.png new file mode 100755 index 0000000..85873fc Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/whiskey/1.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/whiskey/2.png b/test_tube_merchant/assets/icon/goods/bars/whiskey/2.png new file mode 100755 index 0000000..91b70bc Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/whiskey/2.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/whiskey/3.png b/test_tube_merchant/assets/icon/goods/bars/whiskey/3.png new file mode 100755 index 0000000..7776c60 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/whiskey/3.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/whiskey/4.png b/test_tube_merchant/assets/icon/goods/bars/whiskey/4.png new file mode 100755 index 0000000..ebd7018 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/whiskey/4.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/whiskey/5.png b/test_tube_merchant/assets/icon/goods/bars/whiskey/5.png new file mode 100755 index 0000000..a9d49fd Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/whiskey/5.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/wine/1.png b/test_tube_merchant/assets/icon/goods/bars/wine/1.png new file mode 100755 index 0000000..fdfa63d Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/wine/1.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/wine/2.png b/test_tube_merchant/assets/icon/goods/bars/wine/2.png new file mode 100755 index 0000000..1b4909a Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/wine/2.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/wine/3.png b/test_tube_merchant/assets/icon/goods/bars/wine/3.png new file mode 100755 index 0000000..9b17b42 Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/wine/3.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/wine/4.png b/test_tube_merchant/assets/icon/goods/bars/wine/4.png new file mode 100755 index 0000000..02ecebb Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/wine/4.png differ diff --git a/test_tube_merchant/assets/icon/goods/bars/wine/5.png b/test_tube_merchant/assets/icon/goods/bars/wine/5.png new file mode 100755 index 0000000..b86c12e Binary files /dev/null and b/test_tube_merchant/assets/icon/goods/bars/wine/5.png differ diff --git a/test_tube_merchant/assets/icon/items/Animal_food.png b/test_tube_merchant/assets/icon/items/Animal_food.png new file mode 100755 index 0000000..cf88539 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Animal_food.png differ diff --git a/test_tube_merchant/assets/icon/items/Anvil.png b/test_tube_merchant/assets/icon/items/Anvil.png new file mode 100755 index 0000000..6cbc094 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Anvil.png differ diff --git a/test_tube_merchant/assets/icon/items/Case_maps_scrolls.png b/test_tube_merchant/assets/icon/items/Case_maps_scrolls.png new file mode 100755 index 0000000..bac369b Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Case_maps_scrolls.png differ diff --git a/test_tube_merchant/assets/icon/items/Chefs_hat.png b/test_tube_merchant/assets/icon/items/Chefs_hat.png new file mode 100755 index 0000000..722de1b Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Chefs_hat.png differ diff --git a/test_tube_merchant/assets/icon/items/Copper.png b/test_tube_merchant/assets/icon/items/Copper.png new file mode 100755 index 0000000..b4c74f2 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Copper.png differ diff --git a/test_tube_merchant/assets/icon/items/Drinking_horn.png b/test_tube_merchant/assets/icon/items/Drinking_horn.png new file mode 100755 index 0000000..9203eb3 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Drinking_horn.png differ diff --git a/test_tube_merchant/assets/icon/items/Flour.png b/test_tube_merchant/assets/icon/items/Flour.png new file mode 100755 index 0000000..e68174d Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Flour.png differ diff --git a/test_tube_merchant/assets/icon/items/Gold.png b/test_tube_merchant/assets/icon/items/Gold.png new file mode 100755 index 0000000..82c7678 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Gold.png differ diff --git a/test_tube_merchant/assets/icon/items/Iron.png b/test_tube_merchant/assets/icon/items/Iron.png new file mode 100755 index 0000000..142301a Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Iron.png differ diff --git a/test_tube_merchant/assets/icon/items/Manure.png b/test_tube_merchant/assets/icon/items/Manure.png new file mode 100755 index 0000000..af19daa Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Manure.png differ diff --git a/test_tube_merchant/assets/icon/items/Mug_bronze.png b/test_tube_merchant/assets/icon/items/Mug_bronze.png new file mode 100755 index 0000000..f55f8d9 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Mug_bronze.png differ diff --git a/test_tube_merchant/assets/icon/items/Saffron.png b/test_tube_merchant/assets/icon/items/Saffron.png new file mode 100755 index 0000000..91dc0d7 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Saffron.png differ diff --git a/test_tube_merchant/assets/icon/items/Withered_flowers.png b/test_tube_merchant/assets/icon/items/Withered_flowers.png new file mode 100755 index 0000000..43858d9 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/Withered_flowers.png differ diff --git a/test_tube_merchant/assets/icon/items/adventure_hat.png b/test_tube_merchant/assets/icon/items/adventure_hat.png new file mode 100755 index 0000000..4fcd13b Binary files /dev/null and b/test_tube_merchant/assets/icon/items/adventure_hat.png differ diff --git a/test_tube_merchant/assets/icon/items/any_flowers.png b/test_tube_merchant/assets/icon/items/any_flowers.png new file mode 100755 index 0000000..a9bde09 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/any_flowers.png differ diff --git a/test_tube_merchant/assets/icon/items/aristocratic_clothes.png b/test_tube_merchant/assets/icon/items/aristocratic_clothes.png new file mode 100755 index 0000000..5d3c3cb Binary files /dev/null and b/test_tube_merchant/assets/icon/items/aristocratic_clothes.png differ diff --git a/test_tube_merchant/assets/icon/items/atlas.png b/test_tube_merchant/assets/icon/items/atlas.png new file mode 100755 index 0000000..322b489 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/atlas.png differ diff --git a/test_tube_merchant/assets/icon/items/atlas_space.png b/test_tube_merchant/assets/icon/items/atlas_space.png new file mode 100755 index 0000000..65d52c6 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/atlas_space.png differ diff --git a/test_tube_merchant/assets/icon/items/bad_porridge.png b/test_tube_merchant/assets/icon/items/bad_porridge.png new file mode 100755 index 0000000..e4bda90 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/bad_porridge.png differ diff --git a/test_tube_merchant/assets/icon/items/bad_soup.png b/test_tube_merchant/assets/icon/items/bad_soup.png new file mode 100755 index 0000000..ba452c0 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/bad_soup.png differ diff --git a/test_tube_merchant/assets/icon/items/bag_with_hole.png b/test_tube_merchant/assets/icon/items/bag_with_hole.png new file mode 100755 index 0000000..7447b41 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/bag_with_hole.png differ diff --git a/test_tube_merchant/assets/icon/items/barrelOrgan.png b/test_tube_merchant/assets/icon/items/barrelOrgan.png new file mode 100755 index 0000000..ba2763f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/barrelOrgan.png differ diff --git a/test_tube_merchant/assets/icon/items/barrel_armor.png b/test_tube_merchant/assets/icon/items/barrel_armor.png new file mode 100755 index 0000000..9a859b0 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/barrel_armor.png differ diff --git a/test_tube_merchant/assets/icon/items/beter_meal.png b/test_tube_merchant/assets/icon/items/beter_meal.png new file mode 100755 index 0000000..b61fc7e Binary files /dev/null and b/test_tube_merchant/assets/icon/items/beter_meal.png differ diff --git a/test_tube_merchant/assets/icon/items/book_religion.png b/test_tube_merchant/assets/icon/items/book_religion.png new file mode 100755 index 0000000..2071d0c Binary files /dev/null and b/test_tube_merchant/assets/icon/items/book_religion.png differ diff --git a/test_tube_merchant/assets/icon/items/booklock.png b/test_tube_merchant/assets/icon/items/booklock.png new file mode 100755 index 0000000..27c9c85 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/booklock.png differ diff --git a/test_tube_merchant/assets/icon/items/bow_tie.png b/test_tube_merchant/assets/icon/items/bow_tie.png new file mode 100755 index 0000000..5fb7d0c Binary files /dev/null and b/test_tube_merchant/assets/icon/items/bow_tie.png differ diff --git a/test_tube_merchant/assets/icon/items/bowler_hat.png b/test_tube_merchant/assets/icon/items/bowler_hat.png new file mode 100755 index 0000000..b3dc919 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/bowler_hat.png differ diff --git a/test_tube_merchant/assets/icon/items/butter.png b/test_tube_merchant/assets/icon/items/butter.png new file mode 100755 index 0000000..7923be9 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/butter.png differ diff --git a/test_tube_merchant/assets/icon/items/cake.png b/test_tube_merchant/assets/icon/items/cake.png new file mode 100755 index 0000000..933ce25 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/cake.png differ diff --git a/test_tube_merchant/assets/icon/items/cap.png b/test_tube_merchant/assets/icon/items/cap.png new file mode 100755 index 0000000..aa06e0f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/cap.png differ diff --git a/test_tube_merchant/assets/icon/items/cap_2.png b/test_tube_merchant/assets/icon/items/cap_2.png new file mode 100755 index 0000000..3aa2682 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/cap_2.png differ diff --git a/test_tube_merchant/assets/icon/items/chain.png b/test_tube_merchant/assets/icon/items/chain.png new file mode 100755 index 0000000..55d2e8a Binary files /dev/null and b/test_tube_merchant/assets/icon/items/chain.png differ diff --git a/test_tube_merchant/assets/icon/items/cloack.png b/test_tube_merchant/assets/icon/items/cloack.png new file mode 100755 index 0000000..36d8650 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/cloack.png differ diff --git a/test_tube_merchant/assets/icon/items/crowbar.png b/test_tube_merchant/assets/icon/items/crowbar.png new file mode 100755 index 0000000..96b46ca Binary files /dev/null and b/test_tube_merchant/assets/icon/items/crowbar.png differ diff --git a/test_tube_merchant/assets/icon/items/crown.png b/test_tube_merchant/assets/icon/items/crown.png new file mode 100755 index 0000000..5d9c733 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/crown.png differ diff --git a/test_tube_merchant/assets/icon/items/cupcake.png b/test_tube_merchant/assets/icon/items/cupcake.png new file mode 100755 index 0000000..bf83137 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/cupcake.png differ diff --git a/test_tube_merchant/assets/icon/items/curse/band.png b/test_tube_merchant/assets/icon/items/curse/band.png new file mode 100755 index 0000000..4fee65d Binary files /dev/null and b/test_tube_merchant/assets/icon/items/curse/band.png differ diff --git a/test_tube_merchant/assets/icon/items/curse/claymore.png b/test_tube_merchant/assets/icon/items/curse/claymore.png new file mode 100755 index 0000000..49dbdd2 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/curse/claymore.png differ diff --git a/test_tube_merchant/assets/icon/items/curse/paladin_sword.png b/test_tube_merchant/assets/icon/items/curse/paladin_sword.png new file mode 100755 index 0000000..e7de507 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/curse/paladin_sword.png differ diff --git a/test_tube_merchant/assets/icon/items/curse/ring_dwarf.png b/test_tube_merchant/assets/icon/items/curse/ring_dwarf.png new file mode 100755 index 0000000..fd57286 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/curse/ring_dwarf.png differ diff --git a/test_tube_merchant/assets/icon/items/curse/statue.png b/test_tube_merchant/assets/icon/items/curse/statue.png new file mode 100755 index 0000000..9aa6d1d Binary files /dev/null and b/test_tube_merchant/assets/icon/items/curse/statue.png differ diff --git a/test_tube_merchant/assets/icon/items/dragon_bone.png b/test_tube_merchant/assets/icon/items/dragon_bone.png new file mode 100755 index 0000000..7686816 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/dragon_bone.png differ diff --git a/test_tube_merchant/assets/icon/items/dragon_lilya.png b/test_tube_merchant/assets/icon/items/dragon_lilya.png new file mode 100755 index 0000000..d202ff4 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/dragon_lilya.png differ diff --git a/test_tube_merchant/assets/icon/items/earsring.png b/test_tube_merchant/assets/icon/items/earsring.png new file mode 100755 index 0000000..99ff16f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/earsring.png differ diff --git a/test_tube_merchant/assets/icon/items/earsring_with_juw.png b/test_tube_merchant/assets/icon/items/earsring_with_juw.png new file mode 100755 index 0000000..ea8e9ad Binary files /dev/null and b/test_tube_merchant/assets/icon/items/earsring_with_juw.png differ diff --git a/test_tube_merchant/assets/icon/items/eggs.png b/test_tube_merchant/assets/icon/items/eggs.png new file mode 100755 index 0000000..82f5c28 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/eggs.png differ diff --git a/test_tube_merchant/assets/icon/items/excellent_clothes.png b/test_tube_merchant/assets/icon/items/excellent_clothes.png new file mode 100755 index 0000000..a6ed9e3 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/excellent_clothes.png differ diff --git a/test_tube_merchant/assets/icon/items/fish.png b/test_tube_merchant/assets/icon/items/fish.png new file mode 100755 index 0000000..10b192b Binary files /dev/null and b/test_tube_merchant/assets/icon/items/fish.png differ diff --git a/test_tube_merchant/assets/icon/items/fishing.png b/test_tube_merchant/assets/icon/items/fishing.png new file mode 100755 index 0000000..ff6db57 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/fishing.png differ diff --git a/test_tube_merchant/assets/icon/items/fruit_tree.png b/test_tube_merchant/assets/icon/items/fruit_tree.png new file mode 100755 index 0000000..9cc3d54 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/fruit_tree.png differ diff --git a/test_tube_merchant/assets/icon/items/glowin_flower.png b/test_tube_merchant/assets/icon/items/glowin_flower.png new file mode 100755 index 0000000..a8e4cb8 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/glowin_flower.png differ diff --git a/test_tube_merchant/assets/icon/items/gnome_knife.png b/test_tube_merchant/assets/icon/items/gnome_knife.png new file mode 100755 index 0000000..6421b5b Binary files /dev/null and b/test_tube_merchant/assets/icon/items/gnome_knife.png differ diff --git a/test_tube_merchant/assets/icon/items/gnome_ognivo.png b/test_tube_merchant/assets/icon/items/gnome_ognivo.png new file mode 100755 index 0000000..bb198cf Binary files /dev/null and b/test_tube_merchant/assets/icon/items/gnome_ognivo.png differ diff --git a/test_tube_merchant/assets/icon/items/good_flowers.png b/test_tube_merchant/assets/icon/items/good_flowers.png new file mode 100755 index 0000000..644777f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/good_flowers.png differ diff --git a/test_tube_merchant/assets/icon/items/good_meal.png b/test_tube_merchant/assets/icon/items/good_meal.png new file mode 100755 index 0000000..0cb57af Binary files /dev/null and b/test_tube_merchant/assets/icon/items/good_meal.png differ diff --git a/test_tube_merchant/assets/icon/items/helm_with_horns.png b/test_tube_merchant/assets/icon/items/helm_with_horns.png new file mode 100755 index 0000000..4f5882a Binary files /dev/null and b/test_tube_merchant/assets/icon/items/helm_with_horns.png differ diff --git a/test_tube_merchant/assets/icon/items/helm_with_wings.png b/test_tube_merchant/assets/icon/items/helm_with_wings.png new file mode 100755 index 0000000..b5cb7b3 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/helm_with_wings.png differ diff --git a/test_tube_merchant/assets/icon/items/ladle.png b/test_tube_merchant/assets/icon/items/ladle.png new file mode 100755 index 0000000..eda6738 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/ladle.png differ diff --git a/test_tube_merchant/assets/icon/items/lard.png b/test_tube_merchant/assets/icon/items/lard.png new file mode 100755 index 0000000..b9f03bf Binary files /dev/null and b/test_tube_merchant/assets/icon/items/lard.png differ diff --git a/test_tube_merchant/assets/icon/items/meat.png b/test_tube_merchant/assets/icon/items/meat.png new file mode 100755 index 0000000..9fab243 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/meat.png differ diff --git a/test_tube_merchant/assets/icon/items/mechanicalBird.png b/test_tube_merchant/assets/icon/items/mechanicalBird.png new file mode 100755 index 0000000..ee774d4 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/mechanicalBird.png differ diff --git a/test_tube_merchant/assets/icon/items/mechanicalCess.png b/test_tube_merchant/assets/icon/items/mechanicalCess.png new file mode 100755 index 0000000..39f632b Binary files /dev/null and b/test_tube_merchant/assets/icon/items/mechanicalCess.png differ diff --git a/test_tube_merchant/assets/icon/items/mechanicalDragon.png b/test_tube_merchant/assets/icon/items/mechanicalDragon.png new file mode 100755 index 0000000..3521f00 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/mechanicalDragon.png differ diff --git a/test_tube_merchant/assets/icon/items/mechanicalHorse.png b/test_tube_merchant/assets/icon/items/mechanicalHorse.png new file mode 100755 index 0000000..65d75a6 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/mechanicalHorse.png differ diff --git a/test_tube_merchant/assets/icon/items/mechanicalSled.png b/test_tube_merchant/assets/icon/items/mechanicalSled.png new file mode 100755 index 0000000..ebadfeb Binary files /dev/null and b/test_tube_merchant/assets/icon/items/mechanicalSled.png differ diff --git a/test_tube_merchant/assets/icon/items/milk.png b/test_tube_merchant/assets/icon/items/milk.png new file mode 100755 index 0000000..6bfe526 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/milk.png differ diff --git a/test_tube_merchant/assets/icon/items/necklace.png b/test_tube_merchant/assets/icon/items/necklace.png new file mode 100755 index 0000000..446717e Binary files /dev/null and b/test_tube_merchant/assets/icon/items/necklace.png differ diff --git a/test_tube_merchant/assets/icon/items/newspaper.png b/test_tube_merchant/assets/icon/items/newspaper.png new file mode 100755 index 0000000..b50da05 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/newspaper.png differ diff --git a/test_tube_merchant/assets/icon/items/normal_meal.png b/test_tube_merchant/assets/icon/items/normal_meal.png new file mode 100755 index 0000000..b02b254 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/normal_meal.png differ diff --git a/test_tube_merchant/assets/icon/items/normal_soup.png b/test_tube_merchant/assets/icon/items/normal_soup.png new file mode 100755 index 0000000..cb5dd93 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/normal_soup.png differ diff --git a/test_tube_merchant/assets/icon/items/omela.png b/test_tube_merchant/assets/icon/items/omela.png new file mode 100755 index 0000000..43ea97d Binary files /dev/null and b/test_tube_merchant/assets/icon/items/omela.png differ diff --git a/test_tube_merchant/assets/icon/items/pearl_barley.png b/test_tube_merchant/assets/icon/items/pearl_barley.png new file mode 100755 index 0000000..45b2ef5 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/pearl_barley.png differ diff --git a/test_tube_merchant/assets/icon/items/perfect_meal.png b/test_tube_merchant/assets/icon/items/perfect_meal.png new file mode 100755 index 0000000..bc56ed4 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/perfect_meal.png differ diff --git a/test_tube_merchant/assets/icon/items/perfume.png b/test_tube_merchant/assets/icon/items/perfume.png new file mode 100755 index 0000000..53c42f3 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/perfume.png differ diff --git a/test_tube_merchant/assets/icon/items/pheonix_flower.png b/test_tube_merchant/assets/icon/items/pheonix_flower.png new file mode 100755 index 0000000..b3e208e Binary files /dev/null and b/test_tube_merchant/assets/icon/items/pheonix_flower.png differ diff --git a/test_tube_merchant/assets/icon/items/plate.png b/test_tube_merchant/assets/icon/items/plate.png new file mode 100755 index 0000000..0ed2e14 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/plate.png differ diff --git a/test_tube_merchant/assets/icon/items/rat.png b/test_tube_merchant/assets/icon/items/rat.png new file mode 100755 index 0000000..f164fe8 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/rat.png differ diff --git a/test_tube_merchant/assets/icon/items/rock_not_geode.png b/test_tube_merchant/assets/icon/items/rock_not_geode.png new file mode 100755 index 0000000..6f00ca5 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/rock_not_geode.png differ diff --git a/test_tube_merchant/assets/icon/items/silver.png b/test_tube_merchant/assets/icon/items/silver.png new file mode 100755 index 0000000..54ea07f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/silver.png differ diff --git a/test_tube_merchant/assets/icon/items/skin_bad.png b/test_tube_merchant/assets/icon/items/skin_bad.png new file mode 100755 index 0000000..b5173d7 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/skin_bad.png differ diff --git a/test_tube_merchant/assets/icon/items/skin_helm.png b/test_tube_merchant/assets/icon/items/skin_helm.png new file mode 100755 index 0000000..6ef87ec Binary files /dev/null and b/test_tube_merchant/assets/icon/items/skin_helm.png differ diff --git a/test_tube_merchant/assets/icon/items/slime_on_glass.png b/test_tube_merchant/assets/icon/items/slime_on_glass.png new file mode 100755 index 0000000..8aa8713 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/slime_on_glass.png differ diff --git a/test_tube_merchant/assets/icon/items/smallScrew.png b/test_tube_merchant/assets/icon/items/smallScrew.png new file mode 100755 index 0000000..e63d3ae Binary files /dev/null and b/test_tube_merchant/assets/icon/items/smallScrew.png differ diff --git a/test_tube_merchant/assets/icon/items/spice_bag.png b/test_tube_merchant/assets/icon/items/spice_bag.png new file mode 100755 index 0000000..bfbd319 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/spice_bag.png differ diff --git a/test_tube_merchant/assets/icon/items/stickAndRound.png b/test_tube_merchant/assets/icon/items/stickAndRound.png new file mode 100755 index 0000000..a1455ee Binary files /dev/null and b/test_tube_merchant/assets/icon/items/stickAndRound.png differ diff --git a/test_tube_merchant/assets/icon/items/tarokko.png b/test_tube_merchant/assets/icon/items/tarokko.png new file mode 100755 index 0000000..f535e9f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/tarokko.png differ diff --git a/test_tube_merchant/assets/icon/items/tea_set.png b/test_tube_merchant/assets/icon/items/tea_set.png new file mode 100755 index 0000000..8728704 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/tea_set.png differ diff --git a/test_tube_merchant/assets/icon/items/tinkerDog.png b/test_tube_merchant/assets/icon/items/tinkerDog.png new file mode 100755 index 0000000..083c39e Binary files /dev/null and b/test_tube_merchant/assets/icon/items/tinkerDog.png differ diff --git a/test_tube_merchant/assets/icon/items/tourist_guid.png b/test_tube_merchant/assets/icon/items/tourist_guid.png new file mode 100755 index 0000000..3d6ed59 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/tourist_guid.png differ diff --git a/test_tube_merchant/assets/icon/items/tree.png b/test_tube_merchant/assets/icon/items/tree.png new file mode 100755 index 0000000..b2cfb90 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/tree.png differ diff --git a/test_tube_merchant/assets/icon/items/unicorn_horn.png b/test_tube_merchant/assets/icon/items/unicorn_horn.png new file mode 100755 index 0000000..cdfd622 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/unicorn_horn.png differ diff --git a/test_tube_merchant/assets/icon/items/water.png b/test_tube_merchant/assets/icon/items/water.png new file mode 100755 index 0000000..eeacf7f Binary files /dev/null and b/test_tube_merchant/assets/icon/items/water.png differ diff --git a/test_tube_merchant/assets/icon/items/whistling_grass.png b/test_tube_merchant/assets/icon/items/whistling_grass.png new file mode 100755 index 0000000..bf2f743 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/whistling_grass.png differ diff --git a/test_tube_merchant/assets/icon/items/wig.png b/test_tube_merchant/assets/icon/items/wig.png new file mode 100755 index 0000000..742986d Binary files /dev/null and b/test_tube_merchant/assets/icon/items/wig.png differ diff --git a/test_tube_merchant/assets/icon/items/wild_flowers.png b/test_tube_merchant/assets/icon/items/wild_flowers.png new file mode 100755 index 0000000..271f472 Binary files /dev/null and b/test_tube_merchant/assets/icon/items/wild_flowers.png differ diff --git a/test_tube_merchant/assets/icon/items/woods.png b/test_tube_merchant/assets/icon/items/woods.png new file mode 100755 index 0000000..0dc945c Binary files /dev/null and b/test_tube_merchant/assets/icon/items/woods.png differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (1).webp new file mode 100755 index 0000000..5afd635 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (2).webp new file mode 100755 index 0000000..8698ef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (3).webp new file mode 100755 index 0000000..65663e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraArcticTern (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (1).webp new file mode 100755 index 0000000..d378130 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (10).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (10).webp new file mode 100755 index 0000000..2de7a99 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (10).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (11).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (11).webp new file mode 100755 index 0000000..9a82a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (11).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (12).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (12).webp new file mode 100755 index 0000000..b0cd379 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (12).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (2).webp new file mode 100755 index 0000000..5333eac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (3).webp new file mode 100755 index 0000000..fa70379 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (4).webp new file mode 100755 index 0000000..308fd2a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (5).webp new file mode 100755 index 0000000..0b324da Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (6).webp new file mode 100755 index 0000000..ee93494 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (7).webp new file mode 100755 index 0000000..ff5fd55 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (8).webp new file mode 100755 index 0000000..a2ebd36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (9).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (9).webp new file mode 100755 index 0000000..faf2217 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraBirdOfParadise (9).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (1).webp new file mode 100755 index 0000000..ab36815 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (2).webp new file mode 100755 index 0000000..e9e344e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (3).webp new file mode 100755 index 0000000..07a657e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraDove (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (1).webp new file mode 100755 index 0000000..a26f696 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (2).webp new file mode 100755 index 0000000..36a8b65 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (3).webp new file mode 100755 index 0000000..db6557f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHoopoe (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (1).webp new file mode 100755 index 0000000..4741edd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (2).webp new file mode 100755 index 0000000..d4a3434 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (3).webp new file mode 100755 index 0000000..396043f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (4).webp new file mode 100755 index 0000000..3a4bebb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (5).webp new file mode 100755 index 0000000..ebb7460 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (6).webp new file mode 100755 index 0000000..1274158 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraHummingbird (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (1).webp new file mode 100755 index 0000000..d95ab85 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (10).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (10).webp new file mode 100755 index 0000000..43960f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (10).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (11).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (11).webp new file mode 100755 index 0000000..42fbd5b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (11).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (2).webp new file mode 100755 index 0000000..1388cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (3).webp new file mode 100755 index 0000000..d3f1d17 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (4).webp new file mode 100755 index 0000000..a555c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (5).webp new file mode 100755 index 0000000..d965611 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (6).webp new file mode 100755 index 0000000..cc5f19d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (7).webp new file mode 100755 index 0000000..f97df74 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (8).webp new file mode 100755 index 0000000..6753f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (9).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (9).webp new file mode 100755 index 0000000..74abedb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraPuffin (9).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (1).webp new file mode 100755 index 0000000..0eccc7e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (2).webp new file mode 100755 index 0000000..5e1f5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (3).webp new file mode 100755 index 0000000..45b094f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (4).webp new file mode 100755 index 0000000..1199552 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (5).webp new file mode 100755 index 0000000..06e118a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (6).webp new file mode 100755 index 0000000..e2b1877 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (7).webp new file mode 100755 index 0000000..dd27eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (8).webp new file mode 100755 index 0000000..147494c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraToucan (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (1).webp new file mode 100755 index 0000000..8f00ee5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (2).webp new file mode 100755 index 0000000..4ed8cd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (3).webp new file mode 100755 index 0000000..3942806 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (4).webp new file mode 100755 index 0000000..6abc9f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (5).webp new file mode 100755 index 0000000..0553c42 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (6).webp new file mode 100755 index 0000000..cb30fc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (7).webp new file mode 100755 index 0000000..5011a37 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (8).webp new file mode 100755 index 0000000..f3da75d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/adult/u/AarakocraVulture (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (1).webp new file mode 100755 index 0000000..5afd635 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (2).webp new file mode 100755 index 0000000..8698ef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (3).webp new file mode 100755 index 0000000..65663e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraArcticTern (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (1).webp new file mode 100755 index 0000000..d378130 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (10).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (10).webp new file mode 100755 index 0000000..2de7a99 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (10).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (11).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (11).webp new file mode 100755 index 0000000..9a82a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (11).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (12).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (12).webp new file mode 100755 index 0000000..b0cd379 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (12).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (2).webp new file mode 100755 index 0000000..5333eac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (3).webp new file mode 100755 index 0000000..fa70379 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (4).webp new file mode 100755 index 0000000..308fd2a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (5).webp new file mode 100755 index 0000000..0b324da Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (6).webp new file mode 100755 index 0000000..ee93494 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (7).webp new file mode 100755 index 0000000..ff5fd55 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (8).webp new file mode 100755 index 0000000..a2ebd36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (9).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (9).webp new file mode 100755 index 0000000..faf2217 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraBirdOfParadise (9).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (1).webp new file mode 100755 index 0000000..ab36815 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (2).webp new file mode 100755 index 0000000..e9e344e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (3).webp new file mode 100755 index 0000000..07a657e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraDove (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (1).webp new file mode 100755 index 0000000..a26f696 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (2).webp new file mode 100755 index 0000000..36a8b65 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (3).webp new file mode 100755 index 0000000..db6557f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHoopoe (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (1).webp new file mode 100755 index 0000000..4741edd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (2).webp new file mode 100755 index 0000000..d4a3434 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (3).webp new file mode 100755 index 0000000..396043f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (4).webp new file mode 100755 index 0000000..3a4bebb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (5).webp new file mode 100755 index 0000000..ebb7460 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (6).webp new file mode 100755 index 0000000..1274158 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraHummingbird (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (1).webp new file mode 100755 index 0000000..d95ab85 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (10).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (10).webp new file mode 100755 index 0000000..43960f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (10).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (11).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (11).webp new file mode 100755 index 0000000..42fbd5b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (11).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (2).webp new file mode 100755 index 0000000..1388cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (3).webp new file mode 100755 index 0000000..d3f1d17 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (4).webp new file mode 100755 index 0000000..a555c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (5).webp new file mode 100755 index 0000000..d965611 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (6).webp new file mode 100755 index 0000000..cc5f19d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (7).webp new file mode 100755 index 0000000..f97df74 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (8).webp new file mode 100755 index 0000000..6753f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (9).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (9).webp new file mode 100755 index 0000000..74abedb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraPuffin (9).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (1).webp new file mode 100755 index 0000000..0eccc7e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (2).webp new file mode 100755 index 0000000..5e1f5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (3).webp new file mode 100755 index 0000000..45b094f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (4).webp new file mode 100755 index 0000000..1199552 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (5).webp new file mode 100755 index 0000000..06e118a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (6).webp new file mode 100755 index 0000000..e2b1877 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (7).webp new file mode 100755 index 0000000..dd27eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (8).webp new file mode 100755 index 0000000..147494c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraToucan (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (1).webp new file mode 100755 index 0000000..8f00ee5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (2).webp new file mode 100755 index 0000000..4ed8cd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (3).webp new file mode 100755 index 0000000..3942806 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (4).webp new file mode 100755 index 0000000..6abc9f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (5).webp new file mode 100755 index 0000000..0553c42 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (6).webp new file mode 100755 index 0000000..cb30fc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (7).webp new file mode 100755 index 0000000..5011a37 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (8).webp new file mode 100755 index 0000000..f3da75d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/kid/u/AarakocraVulture (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (1).webp new file mode 100755 index 0000000..5afd635 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (2).webp new file mode 100755 index 0000000..8698ef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (3).webp new file mode 100755 index 0000000..65663e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraArcticTern (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (1).webp new file mode 100755 index 0000000..d378130 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (10).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (10).webp new file mode 100755 index 0000000..2de7a99 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (10).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (11).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (11).webp new file mode 100755 index 0000000..9a82a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (11).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (12).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (12).webp new file mode 100755 index 0000000..b0cd379 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (12).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (2).webp new file mode 100755 index 0000000..5333eac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (3).webp new file mode 100755 index 0000000..fa70379 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (4).webp new file mode 100755 index 0000000..308fd2a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (5).webp new file mode 100755 index 0000000..0b324da Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (6).webp new file mode 100755 index 0000000..ee93494 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (7).webp new file mode 100755 index 0000000..ff5fd55 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (8).webp new file mode 100755 index 0000000..a2ebd36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (9).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (9).webp new file mode 100755 index 0000000..faf2217 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraBirdOfParadise (9).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (1).webp new file mode 100755 index 0000000..ab36815 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (2).webp new file mode 100755 index 0000000..e9e344e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (3).webp new file mode 100755 index 0000000..07a657e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraDove (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (1).webp new file mode 100755 index 0000000..a26f696 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (2).webp new file mode 100755 index 0000000..36a8b65 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (3).webp new file mode 100755 index 0000000..db6557f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHoopoe (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (1).webp new file mode 100755 index 0000000..4741edd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (2).webp new file mode 100755 index 0000000..d4a3434 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (3).webp new file mode 100755 index 0000000..396043f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (4).webp new file mode 100755 index 0000000..3a4bebb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (5).webp new file mode 100755 index 0000000..ebb7460 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (6).webp new file mode 100755 index 0000000..1274158 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraHummingbird (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (1).webp new file mode 100755 index 0000000..d95ab85 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (10).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (10).webp new file mode 100755 index 0000000..43960f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (10).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (11).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (11).webp new file mode 100755 index 0000000..42fbd5b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (11).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (2).webp new file mode 100755 index 0000000..1388cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (3).webp new file mode 100755 index 0000000..d3f1d17 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (4).webp new file mode 100755 index 0000000..a555c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (5).webp new file mode 100755 index 0000000..d965611 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (6).webp new file mode 100755 index 0000000..cc5f19d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (7).webp new file mode 100755 index 0000000..f97df74 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (8).webp new file mode 100755 index 0000000..6753f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (9).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (9).webp new file mode 100755 index 0000000..74abedb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraPuffin (9).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (1).webp new file mode 100755 index 0000000..0eccc7e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (2).webp new file mode 100755 index 0000000..5e1f5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (3).webp new file mode 100755 index 0000000..45b094f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (4).webp new file mode 100755 index 0000000..1199552 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (5).webp new file mode 100755 index 0000000..06e118a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (6).webp new file mode 100755 index 0000000..e2b1877 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (7).webp new file mode 100755 index 0000000..dd27eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (8).webp new file mode 100755 index 0000000..147494c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraToucan (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (1).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (1).webp new file mode 100755 index 0000000..8f00ee5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (1).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (2).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (2).webp new file mode 100755 index 0000000..4ed8cd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (2).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (3).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (3).webp new file mode 100755 index 0000000..3942806 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (3).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (4).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (4).webp new file mode 100755 index 0000000..6abc9f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (4).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (5).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (5).webp new file mode 100755 index 0000000..0553c42 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (5).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (6).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (6).webp new file mode 100755 index 0000000..cb30fc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (6).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (7).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (7).webp new file mode 100755 index 0000000..5011a37 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (7).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (8).webp b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (8).webp new file mode 100755 index 0000000..f3da75d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/aaracocra/normal/old/u/AarakocraVulture (8).webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.0.webp new file mode 100755 index 0000000..3dd2b75 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.1.webp new file mode 100755 index 0000000..7575c92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.10.webp new file mode 100755 index 0000000..5296b74 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.11.webp new file mode 100755 index 0000000..35d3d86 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.12.webp new file mode 100755 index 0000000..332bc4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.13.webp new file mode 100755 index 0000000..bc4130b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.14.webp new file mode 100755 index 0000000..cb13943 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.15.webp new file mode 100755 index 0000000..ee34acd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.16.webp new file mode 100755 index 0000000..2782ca5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.17.webp new file mode 100755 index 0000000..241b463 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.18.webp new file mode 100755 index 0000000..55932d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.19.webp new file mode 100755 index 0000000..6752f9c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.2.webp new file mode 100755 index 0000000..8195005 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.3.webp new file mode 100755 index 0000000..9f3e180 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.4.webp new file mode 100755 index 0000000..6ddb0ad Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.5.webp new file mode 100755 index 0000000..619a0d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.6.webp new file mode 100755 index 0000000..454e4d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.7.webp new file mode 100755 index 0000000..c7de763 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.8.webp new file mode 100755 index 0000000..1600a87 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.9.webp new file mode 100755 index 0000000..b33f7bf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.0.webp new file mode 100755 index 0000000..de2567d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.1.webp new file mode 100755 index 0000000..8540dfa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.10.webp new file mode 100755 index 0000000..511732c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.11.webp new file mode 100755 index 0000000..f5c9cf3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.12.webp new file mode 100755 index 0000000..6edf04f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.13.webp new file mode 100755 index 0000000..6ec63f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.14.webp new file mode 100755 index 0000000..b3802f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.15.webp new file mode 100755 index 0000000..f123351 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.16.webp new file mode 100755 index 0000000..ac6973c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.17.webp new file mode 100755 index 0000000..b72e9dc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.18.webp new file mode 100755 index 0000000..33de0a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.19.webp new file mode 100755 index 0000000..3c8a30a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.2.webp new file mode 100755 index 0000000..58db042 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.3.webp new file mode 100755 index 0000000..5090886 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.4.webp new file mode 100755 index 0000000..6a68881 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.5.webp new file mode 100755 index 0000000..7a1c2ee Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.6.webp new file mode 100755 index 0000000..4c2d477 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.7.webp new file mode 100755 index 0000000..214e57d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.8.webp new file mode 100755 index 0000000..134a21a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.9.webp new file mode 100755 index 0000000..13e7cc9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.0.webp new file mode 100755 index 0000000..f3e87ef Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.1.webp new file mode 100755 index 0000000..32063f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.10.webp new file mode 100755 index 0000000..08e7952 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.11.webp new file mode 100755 index 0000000..0125efc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.12.webp new file mode 100755 index 0000000..2e38763 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.2.webp new file mode 100755 index 0000000..e97857f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.3.webp new file mode 100755 index 0000000..cd90e66 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.4.webp new file mode 100755 index 0000000..538fcbb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.5.webp new file mode 100755 index 0000000..95ede3c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.6.webp new file mode 100755 index 0000000..485916e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.7.webp new file mode 100755 index 0000000..a4831d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.8.webp new file mode 100755 index 0000000..3c04499 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.9.webp new file mode 100755 index 0000000..93a4e9f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.0.webp new file mode 100755 index 0000000..0b06a27 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.1.webp new file mode 100755 index 0000000..a2bc599 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.2.webp new file mode 100755 index 0000000..064b4da Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.3.webp new file mode 100755 index 0000000..5eee0f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.4.webp new file mode 100755 index 0000000..92077e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.0.webp new file mode 100755 index 0000000..f2589dd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.1.webp new file mode 100755 index 0000000..bcadfe5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.2.webp new file mode 100755 index 0000000..6a4624b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.3.webp new file mode 100755 index 0000000..31d7723 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.4.webp new file mode 100755 index 0000000..90630f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.0.webp new file mode 100755 index 0000000..d36e996 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.1.webp new file mode 100755 index 0000000..6f52cdb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.2.webp new file mode 100755 index 0000000..6acf6a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.3.webp new file mode 100755 index 0000000..a32e77e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.4.webp new file mode 100755 index 0000000..154225e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.5.webp new file mode 100755 index 0000000..41f1bf9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.0.webp new file mode 100755 index 0000000..b5ef59e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.1.webp new file mode 100755 index 0000000..9394f0c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.10.webp new file mode 100755 index 0000000..8e34865 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.11.webp new file mode 100755 index 0000000..508fd2b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.12.webp new file mode 100755 index 0000000..4fcb200 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.13.webp new file mode 100755 index 0000000..9d91529 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.2.webp new file mode 100755 index 0000000..ce82a2f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.3.webp new file mode 100755 index 0000000..3e034e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.4.webp new file mode 100755 index 0000000..30d4c9a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.5.webp new file mode 100755 index 0000000..686b31a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.6.webp new file mode 100755 index 0000000..e77dddf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.7.webp new file mode 100755 index 0000000..556dec9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.8.webp new file mode 100755 index 0000000..b85ba66 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.9.webp new file mode 100755 index 0000000..f15a6e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.0.webp new file mode 100755 index 0000000..85db241 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.1.webp new file mode 100755 index 0000000..5a1fa2a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.10.webp new file mode 100755 index 0000000..820a957 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.11.webp new file mode 100755 index 0000000..354599a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.12.webp new file mode 100755 index 0000000..5f620b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.13.webp new file mode 100755 index 0000000..c41a6e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.14.webp new file mode 100755 index 0000000..a471c60 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.15.webp new file mode 100755 index 0000000..2dd94ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.16.webp new file mode 100755 index 0000000..c300ca4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.17.webp new file mode 100755 index 0000000..9db22c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.2.webp new file mode 100755 index 0000000..1b45929 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.3.webp new file mode 100755 index 0000000..f51d7ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.4.webp new file mode 100755 index 0000000..efd18af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.5.webp new file mode 100755 index 0000000..68de844 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.6.webp new file mode 100755 index 0000000..6b52646 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.7.webp new file mode 100755 index 0000000..95e9e2b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.8.webp new file mode 100755 index 0000000..5ceced4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.9.webp new file mode 100755 index 0000000..95a6083 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.0.webp new file mode 100755 index 0000000..b71621b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.1.webp new file mode 100755 index 0000000..c4715ac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.10.webp new file mode 100755 index 0000000..aa90106 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.11.webp new file mode 100755 index 0000000..cc965a6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.12.webp new file mode 100755 index 0000000..edab003 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.13.webp new file mode 100755 index 0000000..d0e903a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.14.webp new file mode 100755 index 0000000..6132106 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.2.webp new file mode 100755 index 0000000..f1682dc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.3.webp new file mode 100755 index 0000000..a698edc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.4.webp new file mode 100755 index 0000000..f27821b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.5.webp new file mode 100755 index 0000000..2a3c5c5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.6.webp new file mode 100755 index 0000000..b611ad4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.7.webp new file mode 100755 index 0000000..4212c2b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.8.webp new file mode 100755 index 0000000..d1ab34d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.9.webp new file mode 100755 index 0000000..d43f809 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.0.webp new file mode 100755 index 0000000..ebcad33 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.1.webp new file mode 100755 index 0000000..a0be0a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.10.webp new file mode 100755 index 0000000..755c454 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.11.webp new file mode 100755 index 0000000..d473231 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.12.webp new file mode 100755 index 0000000..f2ab11a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.13.webp new file mode 100755 index 0000000..2186021 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.2.webp new file mode 100755 index 0000000..9775336 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.3.webp new file mode 100755 index 0000000..78a3170 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.4.webp new file mode 100755 index 0000000..978bd1a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.5.webp new file mode 100755 index 0000000..39449b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.6.webp new file mode 100755 index 0000000..949515a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.7.webp new file mode 100755 index 0000000..aaa9983 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.8.webp new file mode 100755 index 0000000..8d0bd7a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.9.webp new file mode 100755 index 0000000..26523a4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.0.webp new file mode 100755 index 0000000..0f92347 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.1.webp new file mode 100755 index 0000000..6a7fccf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.10.webp new file mode 100755 index 0000000..075f60b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.2.webp new file mode 100755 index 0000000..72503e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.3.webp new file mode 100755 index 0000000..b10fdaf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.4.webp new file mode 100755 index 0000000..c872c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.5.webp new file mode 100755 index 0000000..7b57d54 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.6.webp new file mode 100755 index 0000000..18260dc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.7.webp new file mode 100755 index 0000000..7d0ff61 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.8.webp new file mode 100755 index 0000000..70780f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.9.webp new file mode 100755 index 0000000..99ced45 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/f/dwarf.hill.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.0.webp new file mode 100755 index 0000000..838aea5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.1.webp new file mode 100755 index 0000000..686f309 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.10.webp new file mode 100755 index 0000000..73db698 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.11.webp new file mode 100755 index 0000000..7f3701e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.12.webp new file mode 100755 index 0000000..809d1dc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.13.webp new file mode 100755 index 0000000..1982eaa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.14.webp new file mode 100755 index 0000000..f284f57 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.15.webp new file mode 100755 index 0000000..b76d5b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.2.webp new file mode 100755 index 0000000..d3eef6c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.3.webp new file mode 100755 index 0000000..ae2cc7b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.4.webp new file mode 100755 index 0000000..00fcba1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.5.webp new file mode 100755 index 0000000..3cfed4e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.6.webp new file mode 100755 index 0000000..001a1bc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.7.webp new file mode 100755 index 0000000..19c9e3d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.8.webp new file mode 100755 index 0000000..6179bd2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.9.webp new file mode 100755 index 0000000..e5a2e05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/hill/old/m/dwarf.hill.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.0.webp new file mode 100755 index 0000000..f15809a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.1.webp new file mode 100755 index 0000000..0213977 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.10.webp new file mode 100755 index 0000000..97da164 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.11.webp new file mode 100755 index 0000000..fed3fea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.12.webp new file mode 100755 index 0000000..70c2d6b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.13.webp new file mode 100755 index 0000000..5d6c2c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.14.webp new file mode 100755 index 0000000..b041131 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.15.webp new file mode 100755 index 0000000..35fd800 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.16.webp new file mode 100755 index 0000000..b6eb625 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.17.webp new file mode 100755 index 0000000..2056a88 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.2.webp new file mode 100755 index 0000000..c38053c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.3.webp new file mode 100755 index 0000000..028de05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.4.webp new file mode 100755 index 0000000..74c32bf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.5.webp new file mode 100755 index 0000000..628844e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.6.webp new file mode 100755 index 0000000..ea4d2a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.7.webp new file mode 100755 index 0000000..f903755 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.8.webp new file mode 100755 index 0000000..81448eb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.9.webp new file mode 100755 index 0000000..ec3072b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.0.webp new file mode 100755 index 0000000..ec43bda Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.1.webp new file mode 100755 index 0000000..e3f2ae1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.10.webp new file mode 100755 index 0000000..fe5e9ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.11.webp new file mode 100755 index 0000000..37c59e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.12.webp new file mode 100755 index 0000000..99f65c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.13.webp new file mode 100755 index 0000000..567649b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.14.webp new file mode 100755 index 0000000..bb19637 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.2.webp new file mode 100755 index 0000000..3fab662 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.3.webp new file mode 100755 index 0000000..8b643b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.4.webp new file mode 100755 index 0000000..117c449 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.5.webp new file mode 100755 index 0000000..5e1007c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.6.webp new file mode 100755 index 0000000..10b467a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.7.webp new file mode 100755 index 0000000..9eae8cd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.8.webp new file mode 100755 index 0000000..5df8eff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.9.webp new file mode 100755 index 0000000..de78a2c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.0.webp new file mode 100755 index 0000000..ca75bce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.1.webp new file mode 100755 index 0000000..5cf8fe2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.10.webp new file mode 100755 index 0000000..efaf653 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.11.webp new file mode 100755 index 0000000..aecfd49 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.12.webp new file mode 100755 index 0000000..f704e56 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.2.webp new file mode 100755 index 0000000..5d6c8b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.3.webp new file mode 100755 index 0000000..c4b576e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.4.webp new file mode 100755 index 0000000..f791f57 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.5.webp new file mode 100755 index 0000000..3059f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.6.webp new file mode 100755 index 0000000..fcc5716 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.7.webp new file mode 100755 index 0000000..235786e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.8.webp new file mode 100755 index 0000000..79aaa47 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.9.webp new file mode 100755 index 0000000..b09ac92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.0.webp new file mode 100755 index 0000000..d6c0c3c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.1.webp new file mode 100755 index 0000000..ceedc9e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.2.webp new file mode 100755 index 0000000..efd7467 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.3.webp new file mode 100755 index 0000000..504a6ee Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.4.webp new file mode 100755 index 0000000..ed6369b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.5.webp new file mode 100755 index 0000000..9a53cf6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.6.webp new file mode 100755 index 0000000..f634425 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.7.webp new file mode 100755 index 0000000..31c1c44 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.8.webp new file mode 100755 index 0000000..23d450c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.9.webp new file mode 100755 index 0000000..6be3f50 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.0.webp new file mode 100755 index 0000000..b90197e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.1.webp new file mode 100755 index 0000000..331398e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.10.webp new file mode 100755 index 0000000..bcacd3d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.11.webp new file mode 100755 index 0000000..b5a3404 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.12.webp new file mode 100755 index 0000000..8cc2648 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.13.webp new file mode 100755 index 0000000..251d3c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.2.webp new file mode 100755 index 0000000..ba52ac6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.3.webp new file mode 100755 index 0000000..5e9a6b6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.4.webp new file mode 100755 index 0000000..4111ef1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.5.webp new file mode 100755 index 0000000..bf56757 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.6.webp new file mode 100755 index 0000000..2feab96 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.7.webp new file mode 100755 index 0000000..952dd84 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.8.webp new file mode 100755 index 0000000..860ad5c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.9.webp new file mode 100755 index 0000000..77b15e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.0.webp new file mode 100755 index 0000000..c4ae08a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.1.webp new file mode 100755 index 0000000..460643f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.2.webp new file mode 100755 index 0000000..b6e7430 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.3.webp new file mode 100755 index 0000000..6fc591e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.4.webp new file mode 100755 index 0000000..73bd550 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.5.webp new file mode 100755 index 0000000..bf86423 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.6.webp new file mode 100755 index 0000000..c89301d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.7.webp new file mode 100755 index 0000000..40956c5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.8.webp new file mode 100755 index 0000000..dcb73ed Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.0.webp new file mode 100755 index 0000000..39fad64 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.1.webp new file mode 100755 index 0000000..dd99e89 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.10.webp new file mode 100755 index 0000000..c0a94ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.11.webp new file mode 100755 index 0000000..870b592 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.12.webp new file mode 100755 index 0000000..69b2021 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.13.webp new file mode 100755 index 0000000..a566aa6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.14.webp new file mode 100755 index 0000000..c560578 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.15.webp new file mode 100755 index 0000000..d296a88 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.16.webp new file mode 100755 index 0000000..67f3f36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.17.webp new file mode 100755 index 0000000..fcd678e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.18.webp new file mode 100755 index 0000000..3d2780b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.19.webp new file mode 100755 index 0000000..9b2bdb9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.2.webp new file mode 100755 index 0000000..59d75ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.20.webp new file mode 100755 index 0000000..f9817f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.21.webp new file mode 100755 index 0000000..53cfffd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.22.webp new file mode 100755 index 0000000..4222aec Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.23.webp new file mode 100755 index 0000000..38aea5b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.24.webp new file mode 100755 index 0000000..595f7c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.25.webp new file mode 100755 index 0000000..ce98fad Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.3.webp new file mode 100755 index 0000000..658372a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.4.webp new file mode 100755 index 0000000..15e4053 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.5.webp new file mode 100755 index 0000000..a31924b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.6.webp new file mode 100755 index 0000000..83e2a9e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.7.webp new file mode 100755 index 0000000..01d9169 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.8.webp new file mode 100755 index 0000000..6670b98 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.9.webp new file mode 100755 index 0000000..1f7fe97 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/f/elf.drow.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.0.webp new file mode 100755 index 0000000..be2735b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.1.webp new file mode 100755 index 0000000..9dd0e93 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.10.webp new file mode 100755 index 0000000..2a32a19 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.11.webp new file mode 100755 index 0000000..b49a537 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.12.webp new file mode 100755 index 0000000..77e2656 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.13.webp new file mode 100755 index 0000000..6de9553 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.14.webp new file mode 100755 index 0000000..506abdf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.15.webp new file mode 100755 index 0000000..9f34337 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.16.webp new file mode 100755 index 0000000..de4d606 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.17.webp new file mode 100755 index 0000000..d56865b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.18.webp new file mode 100755 index 0000000..6663254 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.2.webp new file mode 100755 index 0000000..0eea47e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.3.webp new file mode 100755 index 0000000..28bd68f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.4.webp new file mode 100755 index 0000000..a9c5aee Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.5.webp new file mode 100755 index 0000000..0108568 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.6.webp new file mode 100755 index 0000000..5cfddb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.7.webp new file mode 100755 index 0000000..8a43db8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.8.webp new file mode 100755 index 0000000..9219b63 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.9.webp new file mode 100755 index 0000000..2a4baf4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/adult/m/elf.drow.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.0.webp new file mode 100755 index 0000000..451996e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.1.webp new file mode 100755 index 0000000..078ac36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.2.webp new file mode 100755 index 0000000..4bc30ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.3.webp new file mode 100755 index 0000000..1b8ef71 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.4.webp new file mode 100755 index 0000000..34f39de Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.5.webp new file mode 100755 index 0000000..76eaac6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.6.webp new file mode 100755 index 0000000..5e59c6d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.7.webp new file mode 100755 index 0000000..e770904 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/f/elf.drow.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.0.webp new file mode 100755 index 0000000..b6585b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.1.webp new file mode 100755 index 0000000..84fdd20 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.10.webp new file mode 100755 index 0000000..0be891e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.2.webp new file mode 100755 index 0000000..26b6892 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.3.webp new file mode 100755 index 0000000..69d5da9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.4.webp new file mode 100755 index 0000000..1c3b905 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.5.webp new file mode 100755 index 0000000..8a4a062 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.6.webp new file mode 100755 index 0000000..380b9db Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.7.webp new file mode 100755 index 0000000..06e3453 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.8.webp new file mode 100755 index 0000000..96fdfe6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.9.webp new file mode 100755 index 0000000..d0156dc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/kid/m/elf.drow.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.0.webp new file mode 100755 index 0000000..d5244fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.1.webp new file mode 100755 index 0000000..e9d9283 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.2.webp new file mode 100755 index 0000000..0d13287 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.3.webp new file mode 100755 index 0000000..aab0a8b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.4.webp new file mode 100755 index 0000000..8ae5a1d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.5.webp new file mode 100755 index 0000000..aa1a08a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.6.webp new file mode 100755 index 0000000..3f38e1e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.7.webp new file mode 100755 index 0000000..9101f73 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.8.webp new file mode 100755 index 0000000..d8bdd80 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.9.webp new file mode 100755 index 0000000..871ca27 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/f/elf.drow.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.0.webp new file mode 100755 index 0000000..8e05ec2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.1.webp new file mode 100755 index 0000000..9c885f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.2.webp new file mode 100755 index 0000000..e7bd337 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.3.webp new file mode 100755 index 0000000..338e8e0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.4.webp new file mode 100755 index 0000000..087821c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.5.webp new file mode 100755 index 0000000..7aa6dc3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.6.webp new file mode 100755 index 0000000..191f9f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.7.webp new file mode 100755 index 0000000..b1fd391 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.8.webp new file mode 100755 index 0000000..92fab69 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/drow/old/m/elf.drow.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.0.webp new file mode 100755 index 0000000..2203878 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.1.webp new file mode 100755 index 0000000..2e346c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.10.webp new file mode 100755 index 0000000..f791a9b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.11.webp new file mode 100755 index 0000000..ecf84cd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.2.webp new file mode 100755 index 0000000..1cbd6e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.3.webp new file mode 100755 index 0000000..c4d7c7a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.4.webp new file mode 100755 index 0000000..2eefe95 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.5.webp new file mode 100755 index 0000000..85821be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.6.webp new file mode 100755 index 0000000..777d9fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.7.webp new file mode 100755 index 0000000..b4600c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.8.webp new file mode 100755 index 0000000..809af02 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.9.webp new file mode 100755 index 0000000..e90d27a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/f/elf.high-sun.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.0.webp new file mode 100755 index 0000000..d7edeb4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.1.webp new file mode 100755 index 0000000..64810b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.10.webp new file mode 100755 index 0000000..6a53995 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.11.webp new file mode 100755 index 0000000..58194e2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.12.webp new file mode 100755 index 0000000..f02a084 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.2.webp new file mode 100755 index 0000000..44358b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.3.webp new file mode 100755 index 0000000..18990b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.4.webp new file mode 100755 index 0000000..6ae07d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.5.webp new file mode 100755 index 0000000..67a81ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.6.webp new file mode 100755 index 0000000..60d6457 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.7.webp new file mode 100755 index 0000000..62fb16c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.8.webp new file mode 100755 index 0000000..4169527 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.9.webp new file mode 100755 index 0000000..440ad90 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/adult/m/elf.high-sun.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.0.webp new file mode 100755 index 0000000..4187216 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.1.webp new file mode 100755 index 0000000..a82d85b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.2.webp new file mode 100755 index 0000000..13cc946 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.3.webp new file mode 100755 index 0000000..4fd9d0a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.4.webp new file mode 100755 index 0000000..9d884d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.5.webp new file mode 100755 index 0000000..f5c8cb0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.6.webp new file mode 100755 index 0000000..c23f09a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.7.webp new file mode 100755 index 0000000..6e71a6b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/f/elf.high-sun.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.0.webp new file mode 100755 index 0000000..9c8ba05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.1.webp new file mode 100755 index 0000000..04ef2b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.2.webp new file mode 100755 index 0000000..8b8880f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.3.webp new file mode 100755 index 0000000..dfe4f92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.4.webp new file mode 100755 index 0000000..b0e89a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.5.webp new file mode 100755 index 0000000..e0ef0be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.6.webp new file mode 100755 index 0000000..d15f8b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/kid/m/elf.high-sun.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.0.webp new file mode 100755 index 0000000..1558df4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.1.webp new file mode 100755 index 0000000..43835af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.2.webp new file mode 100755 index 0000000..db0efd4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.3.webp new file mode 100755 index 0000000..1827f96 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.4.webp new file mode 100755 index 0000000..0ec6042 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.5.webp new file mode 100755 index 0000000..d436904 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.6.webp new file mode 100755 index 0000000..818b2e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.7.webp new file mode 100755 index 0000000..d6b1ef5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.8.webp new file mode 100755 index 0000000..1d706c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.9.webp new file mode 100755 index 0000000..5c9ac6f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/f/elf.high-sun.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.0.webp new file mode 100755 index 0000000..e563297 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.1.webp new file mode 100755 index 0000000..5ccc6c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.10.webp new file mode 100755 index 0000000..eaf28c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.11.webp new file mode 100755 index 0000000..2c59142 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.12.webp new file mode 100755 index 0000000..b9125a2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.13.webp new file mode 100755 index 0000000..32ab69b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.14.webp new file mode 100755 index 0000000..6ca6bd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.2.webp new file mode 100755 index 0000000..4d8c495 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.3.webp new file mode 100755 index 0000000..f65abc5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.4.webp new file mode 100755 index 0000000..49f956a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.5.webp new file mode 100755 index 0000000..8fc91f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.6.webp new file mode 100755 index 0000000..7b2b4f6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.7.webp new file mode 100755 index 0000000..940fde9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.8.webp new file mode 100755 index 0000000..5775919 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.9.webp new file mode 100755 index 0000000..c229604 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high sun/old/m/elf.high-sun.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.0.webp new file mode 100755 index 0000000..503b861 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.1.webp new file mode 100755 index 0000000..4284ee4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.10.webp new file mode 100755 index 0000000..adb93a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.11.webp new file mode 100755 index 0000000..765ef05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.12.webp new file mode 100755 index 0000000..e81630b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.13.webp new file mode 100755 index 0000000..80809f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.14.webp new file mode 100755 index 0000000..a425de9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.15.webp new file mode 100755 index 0000000..88d13d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.16.webp new file mode 100755 index 0000000..28ea86d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.17.webp new file mode 100755 index 0000000..ef966fb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.18.webp new file mode 100755 index 0000000..b1634bb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.2.webp new file mode 100755 index 0000000..af9bc70 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.3.webp new file mode 100755 index 0000000..dbe92d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.4.webp new file mode 100755 index 0000000..b72ed7e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.5.webp new file mode 100755 index 0000000..85124a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.6.webp new file mode 100755 index 0000000..ab1a3d3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.7.webp new file mode 100755 index 0000000..21b3361 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.8.webp new file mode 100755 index 0000000..448ecf7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.9.webp new file mode 100755 index 0000000..3f89722 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.0.webp new file mode 100755 index 0000000..faaa915 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.1.webp new file mode 100755 index 0000000..f92a3fd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.10.webp new file mode 100755 index 0000000..b56165a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.11.webp new file mode 100755 index 0000000..516646a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.2.webp new file mode 100755 index 0000000..3be0d37 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.3.webp new file mode 100755 index 0000000..6fd000a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.4.webp new file mode 100755 index 0000000..ac33eb7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.5.webp new file mode 100755 index 0000000..d06addc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.6.webp new file mode 100755 index 0000000..832719b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.7.webp new file mode 100755 index 0000000..aa1df15 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.8.webp new file mode 100755 index 0000000..82ba716 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.9.webp new file mode 100755 index 0000000..0bad6e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.0.webp new file mode 100755 index 0000000..9886682 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.1.webp new file mode 100755 index 0000000..d3d8707 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.10.webp new file mode 100755 index 0000000..2b02777 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.11.webp new file mode 100755 index 0000000..15caef0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.2.webp new file mode 100755 index 0000000..fc4b2f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.3.webp new file mode 100755 index 0000000..e59aac8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.4.webp new file mode 100755 index 0000000..94c6980 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.5.webp new file mode 100755 index 0000000..d939641 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.6.webp new file mode 100755 index 0000000..e9245cf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.7.webp new file mode 100755 index 0000000..af26705 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.8.webp new file mode 100755 index 0000000..7c4c6a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.9.webp new file mode 100755 index 0000000..9c00d4a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.0.webp new file mode 100755 index 0000000..6344c93 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.1.webp new file mode 100755 index 0000000..7406c2b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.10.webp new file mode 100755 index 0000000..dd89f14 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.11.webp new file mode 100755 index 0000000..4e512d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.12.webp new file mode 100755 index 0000000..d24c433 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.2.webp new file mode 100755 index 0000000..2f43385 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.3.webp new file mode 100755 index 0000000..32c842c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.4.webp new file mode 100755 index 0000000..5202c0b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.5.webp new file mode 100755 index 0000000..cf1589f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.6.webp new file mode 100755 index 0000000..78bd763 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.7.webp new file mode 100755 index 0000000..bc160d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.8.webp new file mode 100755 index 0000000..24b2874 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.9.webp new file mode 100755 index 0000000..4b97103 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.0.webp new file mode 100755 index 0000000..4ec309a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.1.webp new file mode 100755 index 0000000..20705c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.10.webp new file mode 100755 index 0000000..b8128b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.11.webp new file mode 100755 index 0000000..54740c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.12.webp new file mode 100755 index 0000000..7bac01e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.13.webp new file mode 100755 index 0000000..0881564 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.14.webp new file mode 100755 index 0000000..7ec30aa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.15.webp new file mode 100755 index 0000000..ccebc83 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.16.webp new file mode 100755 index 0000000..211091b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.17.webp new file mode 100755 index 0000000..85a74b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.18.webp new file mode 100755 index 0000000..ea4a812 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.19.webp new file mode 100755 index 0000000..1a0f86d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.2.webp new file mode 100755 index 0000000..7c6ed13 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.20.webp new file mode 100755 index 0000000..9d22df5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.21.webp new file mode 100755 index 0000000..ba8e2f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.3.webp new file mode 100755 index 0000000..fade932 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.4.webp new file mode 100755 index 0000000..dabc737 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.5.webp new file mode 100755 index 0000000..ddc6135 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.6.webp new file mode 100755 index 0000000..f9d7712 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.7.webp new file mode 100755 index 0000000..e9a1d40 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.8.webp new file mode 100755 index 0000000..267f8bc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.9.webp new file mode 100755 index 0000000..09f1d30 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/f/elf.high-moon.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.0.webp new file mode 100755 index 0000000..2771c23 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.1.webp new file mode 100755 index 0000000..d0d8934 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.2.webp new file mode 100755 index 0000000..8366e2e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.3.webp new file mode 100755 index 0000000..df4dd05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.4.webp new file mode 100755 index 0000000..5d887d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.5.webp new file mode 100755 index 0000000..8c10cd7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.6.webp new file mode 100755 index 0000000..a68d5a2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.7.webp new file mode 100755 index 0000000..42703fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/high_moon/old/m/elf.high-moon.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.0.webp new file mode 100755 index 0000000..5448391 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.1.webp new file mode 100755 index 0000000..98d30d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.10.webp new file mode 100755 index 0000000..9262f24 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.11.webp new file mode 100755 index 0000000..d30dd48 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.12.webp new file mode 100755 index 0000000..e8572cf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.13.webp new file mode 100755 index 0000000..a745bb5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.14.webp new file mode 100755 index 0000000..a95fa5b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.15.webp new file mode 100755 index 0000000..4140b24 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.16.webp new file mode 100755 index 0000000..fbcfdfb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.17.webp new file mode 100755 index 0000000..9820e6c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.18.webp new file mode 100755 index 0000000..67592be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.19.webp new file mode 100755 index 0000000..1bd1133 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.2.webp new file mode 100755 index 0000000..9262f24 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.20.webp new file mode 100755 index 0000000..caf23b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.21.webp new file mode 100755 index 0000000..3991119 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.22.webp new file mode 100755 index 0000000..4b72808 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.3.webp new file mode 100755 index 0000000..621e613 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.4.webp new file mode 100755 index 0000000..5bd2c71 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.5.webp new file mode 100755 index 0000000..2ea8850 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.6.webp new file mode 100755 index 0000000..8946c7e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.7.webp new file mode 100755 index 0000000..29a872c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.8.webp new file mode 100755 index 0000000..2aa283d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.9.webp new file mode 100755 index 0000000..b2cfc43 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/f/elf.wood.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.0.webp new file mode 100755 index 0000000..6ee71f7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.1.webp new file mode 100755 index 0000000..eff0cf3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.10.webp new file mode 100755 index 0000000..c47ba39 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.11.webp new file mode 100755 index 0000000..f3dad7c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.12.webp new file mode 100755 index 0000000..286f21f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.13.webp new file mode 100755 index 0000000..7763f53 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.14.webp new file mode 100755 index 0000000..46ce603 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.15.webp new file mode 100755 index 0000000..518541a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.16.webp new file mode 100755 index 0000000..506a762 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.17.webp new file mode 100755 index 0000000..61eeb2c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.2.webp new file mode 100755 index 0000000..7d35f5f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.3.webp new file mode 100755 index 0000000..7a2a504 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.4.webp new file mode 100755 index 0000000..e1e5429 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.5.webp new file mode 100755 index 0000000..6d7ec1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.6.webp new file mode 100755 index 0000000..00575a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.7.webp new file mode 100755 index 0000000..5b9e127 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.8.webp new file mode 100755 index 0000000..9489667 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.9.webp new file mode 100755 index 0000000..c7efe6f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/adult/m/elf.wood.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.0.webp new file mode 100755 index 0000000..94f66f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.1.webp new file mode 100755 index 0000000..4f0826f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.10.webp new file mode 100755 index 0000000..788d793 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.11.webp new file mode 100755 index 0000000..4ca08bf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.12.webp new file mode 100755 index 0000000..3daf63d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.2.webp new file mode 100755 index 0000000..50ce5a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.3.webp new file mode 100755 index 0000000..c4bab77 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.4.webp new file mode 100755 index 0000000..7b2d28b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.5.webp new file mode 100755 index 0000000..d61036f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.6.webp new file mode 100755 index 0000000..8d79191 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.7.webp new file mode 100755 index 0000000..2b1a554 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.8.webp new file mode 100755 index 0000000..78c447a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.9.webp new file mode 100755 index 0000000..ed2270b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/f/elf.wood.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.0.webp new file mode 100755 index 0000000..87b4d8a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.1.webp new file mode 100755 index 0000000..e239f5a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.2.webp new file mode 100755 index 0000000..c90092b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.3.webp new file mode 100755 index 0000000..c0c2815 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.4.webp new file mode 100755 index 0000000..25cf30e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.5.webp new file mode 100755 index 0000000..296cf4c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.6.webp new file mode 100755 index 0000000..400702c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.7.webp new file mode 100755 index 0000000..d76abc9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.8.webp new file mode 100755 index 0000000..aab8531 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/kid/m/elf.wood.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.0.webp new file mode 100755 index 0000000..92e6348 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.1.webp new file mode 100755 index 0000000..486e002 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.2.webp new file mode 100755 index 0000000..d5ead8b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.3.webp new file mode 100755 index 0000000..451bb17 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.4.webp new file mode 100755 index 0000000..5d86134 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.5.webp new file mode 100755 index 0000000..1034c09 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.6.webp new file mode 100755 index 0000000..0d5f251 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.7.webp new file mode 100755 index 0000000..0c96e73 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/f/elf.wood.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.0.webp new file mode 100755 index 0000000..fefd34e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.1.webp new file mode 100755 index 0000000..6c53a8e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.2.webp new file mode 100755 index 0000000..a4d8c9d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.3.webp new file mode 100755 index 0000000..c3ef68c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.4.webp new file mode 100755 index 0000000..a47cc73 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.5.webp new file mode 100755 index 0000000..896b3b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.6.webp new file mode 100755 index 0000000..173042f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.7.webp new file mode 100755 index 0000000..68755d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/elf/wood/old/m/elf.wood.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.0.webp new file mode 100755 index 0000000..70a1f3d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.1.webp new file mode 100755 index 0000000..44598c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.10.webp new file mode 100755 index 0000000..fe65073 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.11.webp new file mode 100755 index 0000000..81112b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.12.webp new file mode 100755 index 0000000..289e936 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.13.webp new file mode 100755 index 0000000..88895b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.14.webp new file mode 100755 index 0000000..68cfa73 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.15.webp new file mode 100755 index 0000000..cb8cacb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.16.webp new file mode 100755 index 0000000..d524ba3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.17.webp new file mode 100755 index 0000000..7d8838c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.18.webp new file mode 100755 index 0000000..7e2d38f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.19.webp new file mode 100755 index 0000000..28bb75a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.2.webp new file mode 100755 index 0000000..1cbb02f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.20.webp new file mode 100755 index 0000000..d4bdb45 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.3.webp new file mode 100755 index 0000000..16c900b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.4.webp new file mode 100755 index 0000000..04a5994 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.5.webp new file mode 100755 index 0000000..5c54dcf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.6.webp new file mode 100755 index 0000000..021fc45 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.7.webp new file mode 100755 index 0000000..123e4ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.8.webp new file mode 100755 index 0000000..9b771f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.9.webp new file mode 100755 index 0000000..4e45269 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/f/gnome.forest.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.0.webp new file mode 100755 index 0000000..b695a7d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.1.webp new file mode 100755 index 0000000..a20fdc6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.10.webp new file mode 100755 index 0000000..c785650 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.11.webp new file mode 100755 index 0000000..b75f1dd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.12.webp new file mode 100755 index 0000000..e9bd397 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.13.webp new file mode 100755 index 0000000..5d629b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.14.webp new file mode 100755 index 0000000..979dbb7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.15.webp new file mode 100755 index 0000000..8a26db7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.16.webp new file mode 100755 index 0000000..6b29673 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.17.webp new file mode 100755 index 0000000..710cf4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.18.webp new file mode 100755 index 0000000..052f716 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.19.webp new file mode 100755 index 0000000..bf61261 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.2.webp new file mode 100755 index 0000000..eb8537d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.3.webp new file mode 100755 index 0000000..b4a2778 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.4.webp new file mode 100755 index 0000000..f2d2cdb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.5.webp new file mode 100755 index 0000000..a171e0b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.6.webp new file mode 100755 index 0000000..5161244 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.7.webp new file mode 100755 index 0000000..37e39e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.8.webp new file mode 100755 index 0000000..34e7b9f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.9.webp new file mode 100755 index 0000000..0a40f35 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/adult/m/gnome.forest.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.0.webp new file mode 100755 index 0000000..f960251 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.1.webp new file mode 100755 index 0000000..0d1017c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.2.webp new file mode 100755 index 0000000..79de1a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.3.webp new file mode 100755 index 0000000..7bf0562 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.4.webp new file mode 100755 index 0000000..08587ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.5.webp new file mode 100755 index 0000000..e38ed24 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/f/gnome.forest.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.0.webp new file mode 100755 index 0000000..2ea5794 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.1.webp new file mode 100755 index 0000000..07bf439 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.10.webp new file mode 100755 index 0000000..2040ffe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.11.webp new file mode 100755 index 0000000..9c89b36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.2.webp new file mode 100755 index 0000000..cd0ae67 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.3.webp new file mode 100755 index 0000000..4b0c44f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.4.webp new file mode 100755 index 0000000..ddd4ec2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.5.webp new file mode 100755 index 0000000..1cca977 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.6.webp new file mode 100755 index 0000000..f955540 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.7.webp new file mode 100755 index 0000000..0f61dcc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.8.webp new file mode 100755 index 0000000..3252f75 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.9.webp new file mode 100755 index 0000000..5468736 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/kid/m/gnome.forest.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.0.webp new file mode 100755 index 0000000..e0314bc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.1.webp new file mode 100755 index 0000000..7afc429 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.10.webp new file mode 100755 index 0000000..9ec65f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.11.webp new file mode 100755 index 0000000..708c7de Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.12.webp new file mode 100755 index 0000000..d02ac83 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.2.webp new file mode 100755 index 0000000..f0e5329 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.3.webp new file mode 100755 index 0000000..82ae896 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.4.webp new file mode 100755 index 0000000..b3e7866 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.5.webp new file mode 100755 index 0000000..da448ec Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.6.webp new file mode 100755 index 0000000..5035369 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.7.webp new file mode 100755 index 0000000..fce4077 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.8.webp new file mode 100755 index 0000000..b297544 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.9.webp new file mode 100755 index 0000000..511db60 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/f/gnome.forest.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.0.webp new file mode 100755 index 0000000..492035c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.1.webp new file mode 100755 index 0000000..a3e4a3e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.10.webp new file mode 100755 index 0000000..864d3e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.11.webp new file mode 100755 index 0000000..c2c6da0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.12.webp new file mode 100755 index 0000000..91e21e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.2.webp new file mode 100755 index 0000000..0da9119 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.3.webp new file mode 100755 index 0000000..25d8aba Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.4.webp new file mode 100755 index 0000000..fead463 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.5.webp new file mode 100755 index 0000000..189622f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.6.webp new file mode 100755 index 0000000..6e6ecbe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.7.webp new file mode 100755 index 0000000..ceccf20 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.8.webp new file mode 100755 index 0000000..b3eff1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.9.webp new file mode 100755 index 0000000..bf40e44 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Forest/old/m/gnome.forest.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.0.webp new file mode 100755 index 0000000..7b1925f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.1.webp new file mode 100755 index 0000000..fdae9b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.10.webp new file mode 100755 index 0000000..4c54af2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.11.webp new file mode 100755 index 0000000..eda01d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.12.webp new file mode 100755 index 0000000..c5ef5cc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.13.webp new file mode 100755 index 0000000..6371e1e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.14.webp new file mode 100755 index 0000000..fdcb3ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.15.webp new file mode 100755 index 0000000..c38a0a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.16.webp new file mode 100755 index 0000000..93fed43 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.17.webp new file mode 100755 index 0000000..f0712c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.18.webp new file mode 100755 index 0000000..e1f8b62 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.19.webp new file mode 100755 index 0000000..31d618c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.2.webp new file mode 100755 index 0000000..a70df6c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.3.webp new file mode 100755 index 0000000..477a90b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.4.webp new file mode 100755 index 0000000..cc046af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.5.webp new file mode 100755 index 0000000..403aec5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.6.webp new file mode 100755 index 0000000..71baac9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.7.webp new file mode 100755 index 0000000..528a8c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.8.webp new file mode 100755 index 0000000..7f2a450 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.9.webp new file mode 100755 index 0000000..f1a5d04 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/f/gnome.rock.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.0.webp new file mode 100755 index 0000000..b1643af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.1.webp new file mode 100755 index 0000000..1a3ca64 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.10.webp new file mode 100755 index 0000000..4c5c404 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.11.webp new file mode 100755 index 0000000..ce62046 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.12.webp new file mode 100755 index 0000000..2868f6c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.13.webp new file mode 100755 index 0000000..8cdb424 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.14.webp new file mode 100755 index 0000000..9212587 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.15.webp new file mode 100755 index 0000000..774f2cb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.16.webp new file mode 100755 index 0000000..7c53100 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.17.webp new file mode 100755 index 0000000..a05ed71 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.18.webp new file mode 100755 index 0000000..7659343 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.19.webp new file mode 100755 index 0000000..5ea6021 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.2.webp new file mode 100755 index 0000000..0655e76 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.20.webp new file mode 100755 index 0000000..00181d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.3.webp new file mode 100755 index 0000000..3aea869 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.4.webp new file mode 100755 index 0000000..8ed2ed0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.5.webp new file mode 100755 index 0000000..ae3548b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.6.webp new file mode 100755 index 0000000..9d65d9b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.7.webp new file mode 100755 index 0000000..f47ae66 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.8.webp new file mode 100755 index 0000000..214f806 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.9.webp new file mode 100755 index 0000000..fc99ec7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/adult/m/gnome.rock.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.0.webp new file mode 100755 index 0000000..2db5d3a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.1.webp new file mode 100755 index 0000000..33da8d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.2.webp new file mode 100755 index 0000000..79105bd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.3.webp new file mode 100755 index 0000000..988c5c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.4.webp new file mode 100755 index 0000000..aa5bce4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.5.webp new file mode 100755 index 0000000..489f6f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.6.webp new file mode 100755 index 0000000..ad68716 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/f/gnome.rock.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.0.webp new file mode 100755 index 0000000..6dbd8f7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.1.webp new file mode 100755 index 0000000..7274e37 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.10.webp new file mode 100755 index 0000000..b9691c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.11.webp new file mode 100755 index 0000000..3ab4722 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.2.webp new file mode 100755 index 0000000..3fb5c34 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.3.webp new file mode 100755 index 0000000..cab230b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.4.webp new file mode 100755 index 0000000..f2bc8b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.5.webp new file mode 100755 index 0000000..da32338 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.6.webp new file mode 100755 index 0000000..b8babe6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.7.webp new file mode 100755 index 0000000..5de2c56 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.8.webp new file mode 100755 index 0000000..582b3c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.9.webp new file mode 100755 index 0000000..79c34d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/kid/m/gnome.rock.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.0.webp new file mode 100755 index 0000000..99993a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.1.webp new file mode 100755 index 0000000..553e4d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.10.webp new file mode 100755 index 0000000..ed5a72d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.11.webp new file mode 100755 index 0000000..727da86 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.12.webp new file mode 100755 index 0000000..5beec90 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.13.webp new file mode 100755 index 0000000..5d65309 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.14.webp new file mode 100755 index 0000000..375f29f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.15.webp new file mode 100755 index 0000000..a42c0d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.2.webp new file mode 100755 index 0000000..61a8a48 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.3.webp new file mode 100755 index 0000000..e780c6a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.4.webp new file mode 100755 index 0000000..73ffa4d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.5.webp new file mode 100755 index 0000000..6760652 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.6.webp new file mode 100755 index 0000000..4d431ce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.7.webp new file mode 100755 index 0000000..8832aee Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.8.webp new file mode 100755 index 0000000..73dbfd4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.9.webp new file mode 100755 index 0000000..e4c616d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/f/gnome.rock.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.0.webp new file mode 100755 index 0000000..17ab667 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.1.webp new file mode 100755 index 0000000..6f1ec3a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.10.webp new file mode 100755 index 0000000..fa0164b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.11.webp new file mode 100755 index 0000000..5738cce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.12.webp new file mode 100755 index 0000000..cb4a3ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.13.webp new file mode 100755 index 0000000..a6e6b40 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.2.webp new file mode 100755 index 0000000..1648a11 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.3.webp new file mode 100755 index 0000000..b7e3b72 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.4.webp new file mode 100755 index 0000000..7519495 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.5.webp new file mode 100755 index 0000000..b993975 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.6.webp new file mode 100755 index 0000000..b11d078 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.7.webp new file mode 100755 index 0000000..a484cff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.8.webp new file mode 100755 index 0000000..32494e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.9.webp new file mode 100755 index 0000000..17bac81 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/gnome/Rock/old/m/gnome.rock.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.0.webp new file mode 100755 index 0000000..6937d21 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.1.webp new file mode 100755 index 0000000..28863b6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.10.webp new file mode 100755 index 0000000..bcc0776 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.11.webp new file mode 100755 index 0000000..0cd3898 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.12.webp new file mode 100755 index 0000000..85009b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.13.webp new file mode 100755 index 0000000..0c31932 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.14.webp new file mode 100755 index 0000000..8d251ae Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.15.webp new file mode 100755 index 0000000..786c19b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.16.webp new file mode 100755 index 0000000..2cffd1f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.17.webp new file mode 100755 index 0000000..1d9974e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.2.webp new file mode 100755 index 0000000..f064afb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.3.webp new file mode 100755 index 0000000..ad26afb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.4.webp new file mode 100755 index 0000000..9379650 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.5.webp new file mode 100755 index 0000000..526e0b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.6.webp new file mode 100755 index 0000000..e33df91 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.7.webp new file mode 100755 index 0000000..ced2f14 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.8.webp new file mode 100755 index 0000000..c2e309b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.9.webp new file mode 100755 index 0000000..6eb7822 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.0.webp new file mode 100755 index 0000000..fb641a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.1.webp new file mode 100755 index 0000000..2f409fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.10.webp new file mode 100755 index 0000000..b4c2d96 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.11.webp new file mode 100755 index 0000000..5b421aa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.12.webp new file mode 100755 index 0000000..bf1ec4c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.13.webp new file mode 100755 index 0000000..dd66ce5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.14.webp new file mode 100755 index 0000000..7c5927e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.15.webp new file mode 100755 index 0000000..61d0287 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.16.webp new file mode 100755 index 0000000..ea6da56 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.17.webp new file mode 100755 index 0000000..7216a22 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.18.webp new file mode 100755 index 0000000..2cdc4cb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.19.webp new file mode 100755 index 0000000..eb4bc13 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.2.webp new file mode 100755 index 0000000..064ab7f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.20.webp new file mode 100755 index 0000000..ef8486c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.21.webp new file mode 100755 index 0000000..bfdf13d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.3.webp new file mode 100755 index 0000000..4736192 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.4.webp new file mode 100755 index 0000000..bb61278 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.5.webp new file mode 100755 index 0000000..68ad331 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.6.webp new file mode 100755 index 0000000..c4cc793 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.7.webp new file mode 100755 index 0000000..0d9a5b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.8.webp new file mode 100755 index 0000000..eb68aae Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.9.webp new file mode 100755 index 0000000..6de59bb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.0.webp new file mode 100755 index 0000000..974f523 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.1.webp new file mode 100755 index 0000000..8d6eecb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.10.webp new file mode 100755 index 0000000..cc8e043 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.11.webp new file mode 100755 index 0000000..1dd8158 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.2.webp new file mode 100755 index 0000000..4edac82 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.3.webp new file mode 100755 index 0000000..5aa5659 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.4.webp new file mode 100755 index 0000000..2d5ca6b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.5.webp new file mode 100755 index 0000000..2a2fb76 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.6.webp new file mode 100755 index 0000000..d8aab82 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.7.webp new file mode 100755 index 0000000..7da8a7b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.8.webp new file mode 100755 index 0000000..dca314d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.9.webp new file mode 100755 index 0000000..bcbadd9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.0.webp new file mode 100755 index 0000000..f58817d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.1.webp new file mode 100755 index 0000000..25b5378 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.2.webp new file mode 100755 index 0000000..f6a7539 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.3.webp new file mode 100755 index 0000000..fc7515c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.4.webp new file mode 100755 index 0000000..61253be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.5.webp new file mode 100755 index 0000000..17fa1e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.6.webp new file mode 100755 index 0000000..c5d6281 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.7.webp new file mode 100755 index 0000000..f95a886 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.0.webp new file mode 100755 index 0000000..834ecae Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.1.webp new file mode 100755 index 0000000..961460e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.10.webp new file mode 100755 index 0000000..e39947b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.11.webp new file mode 100755 index 0000000..08db1c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.12.webp new file mode 100755 index 0000000..8ed03f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.13.webp new file mode 100755 index 0000000..0f4682a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.14.webp new file mode 100755 index 0000000..5515cf9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.15.webp new file mode 100755 index 0000000..1f8ce66 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.2.webp new file mode 100755 index 0000000..a80fad8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.3.webp new file mode 100755 index 0000000..154b28b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.4.webp new file mode 100755 index 0000000..f7ecf72 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.5.webp new file mode 100755 index 0000000..8662e9d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.6.webp new file mode 100755 index 0000000..71686be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.7.webp new file mode 100755 index 0000000..29a4bd6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.8.webp new file mode 100755 index 0000000..9f1d6ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.9.webp new file mode 100755 index 0000000..e6d36ad Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.0.webp new file mode 100755 index 0000000..cf21e4d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.1.webp new file mode 100755 index 0000000..e0f8d59 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.10.webp new file mode 100755 index 0000000..22161f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.11.webp new file mode 100755 index 0000000..71c70b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.12.webp new file mode 100755 index 0000000..998112a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.2.webp new file mode 100755 index 0000000..12a7d83 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.3.webp new file mode 100755 index 0000000..4dd3863 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.4.webp new file mode 100755 index 0000000..8cc9bb7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.5.webp new file mode 100755 index 0000000..9c26102 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.6.webp new file mode 100755 index 0000000..3c7de44 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.7.webp new file mode 100755 index 0000000..bca627b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.8.webp new file mode 100755 index 0000000..4638183 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.9.webp new file mode 100755 index 0000000..e3575fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.0.webp new file mode 100755 index 0000000..b4d19ed Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.1.webp new file mode 100755 index 0000000..9fdef95 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.10.webp new file mode 100755 index 0000000..159b949 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.11.webp new file mode 100755 index 0000000..6ca960c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.12.webp new file mode 100755 index 0000000..d56e627 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.13.webp new file mode 100755 index 0000000..926dd69 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.14.webp new file mode 100755 index 0000000..99a700e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.15.webp new file mode 100755 index 0000000..70dddcb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.16.webp new file mode 100755 index 0000000..eba0b93 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.17.webp new file mode 100755 index 0000000..b19acb4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.2.webp new file mode 100755 index 0000000..b28eef9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.3.webp new file mode 100755 index 0000000..c36aee8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.4.webp new file mode 100755 index 0000000..ddf3ae3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.5.webp new file mode 100755 index 0000000..c641909 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.6.webp new file mode 100755 index 0000000..315f818 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.7.webp new file mode 100755 index 0000000..1cb06c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.8.webp new file mode 100755 index 0000000..d2f9a88 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.9.webp new file mode 100755 index 0000000..c2b7394 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/f/halfling.stout.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.0.webp new file mode 100755 index 0000000..94ff21f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.1.webp new file mode 100755 index 0000000..c9c1661 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.10.webp new file mode 100755 index 0000000..bfb208b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.11.webp new file mode 100755 index 0000000..9d08c31 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.12.webp new file mode 100755 index 0000000..470a6e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.13.webp new file mode 100755 index 0000000..5136169 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.14.webp new file mode 100755 index 0000000..65c8ea5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.15.webp new file mode 100755 index 0000000..64aebf2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.16.webp new file mode 100755 index 0000000..3ed3a80 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.17.webp new file mode 100755 index 0000000..9d90aea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.18.webp new file mode 100755 index 0000000..ffef692 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.19.webp new file mode 100755 index 0000000..f59176d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.2.webp new file mode 100755 index 0000000..30aa4b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.20.webp new file mode 100755 index 0000000..7a896fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.21.webp new file mode 100755 index 0000000..6d81716 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.22.webp new file mode 100755 index 0000000..1316a3f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.3.webp new file mode 100755 index 0000000..25585b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.4.webp new file mode 100755 index 0000000..d904cfa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.5.webp new file mode 100755 index 0000000..38ca3c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.6.webp new file mode 100755 index 0000000..717a374 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.7.webp new file mode 100755 index 0000000..aacc0c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.8.webp new file mode 100755 index 0000000..0ab8cf6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.9.webp new file mode 100755 index 0000000..c53b727 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/adult/m/halfling.stout.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.0.webp new file mode 100755 index 0000000..e1c5b3f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.1.webp new file mode 100755 index 0000000..fb866e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.10.webp new file mode 100755 index 0000000..b8c7fc9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.2.webp new file mode 100755 index 0000000..db746c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.3.webp new file mode 100755 index 0000000..5b4dd84 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.4.webp new file mode 100755 index 0000000..e7fd756 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.5.webp new file mode 100755 index 0000000..afdc88c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.6.webp new file mode 100755 index 0000000..2ad4043 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.7.webp new file mode 100755 index 0000000..d390351 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.8.webp new file mode 100755 index 0000000..c14c82e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.9.webp new file mode 100755 index 0000000..c1ac373 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/f/halfling.stout.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.0.webp new file mode 100755 index 0000000..61127bf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.1.webp new file mode 100755 index 0000000..bc19825 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.2.webp new file mode 100755 index 0000000..4a9bd5a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.3.webp new file mode 100755 index 0000000..3429e0a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.4.webp new file mode 100755 index 0000000..8e1f11a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.5.webp new file mode 100755 index 0000000..7b4f9c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.6.webp new file mode 100755 index 0000000..7567673 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.7.webp new file mode 100755 index 0000000..85999c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.8.webp new file mode 100755 index 0000000..792e619 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/kid/m/halfling.stout.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.0.webp new file mode 100755 index 0000000..b682c8c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.1.webp new file mode 100755 index 0000000..aec1340 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.10.webp new file mode 100755 index 0000000..2e3b504 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.11.webp new file mode 100755 index 0000000..a6539e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.12.webp new file mode 100755 index 0000000..2b16f41 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.13.webp new file mode 100755 index 0000000..6fdad54 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.14.webp new file mode 100755 index 0000000..2d167bb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.15.webp new file mode 100755 index 0000000..3b7b243 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.16.webp new file mode 100755 index 0000000..ef14ed5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.2.webp new file mode 100755 index 0000000..e2c3ffa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.3.webp new file mode 100755 index 0000000..29489c5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.4.webp new file mode 100755 index 0000000..34dc1c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.5.webp new file mode 100755 index 0000000..ec56db1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.6.webp new file mode 100755 index 0000000..eae1b69 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.7.webp new file mode 100755 index 0000000..44e71a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.8.webp new file mode 100755 index 0000000..15732bb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.9.webp new file mode 100755 index 0000000..e328ea2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/f/halfling.stout.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.0.webp new file mode 100755 index 0000000..c3ea987 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.1.webp new file mode 100755 index 0000000..747d28f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.10.webp new file mode 100755 index 0000000..ae53c9f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.11.webp new file mode 100755 index 0000000..40b34e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.12.webp new file mode 100755 index 0000000..d9e0e7f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.2.webp new file mode 100755 index 0000000..506ffd9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.3.webp new file mode 100755 index 0000000..7beb344 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.4.webp new file mode 100755 index 0000000..6a91417 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.5.webp new file mode 100755 index 0000000..ee0a2b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.6.webp new file mode 100755 index 0000000..ab70172 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.7.webp new file mode 100755 index 0000000..32d2ccb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.8.webp new file mode 100755 index 0000000..2a8c4cf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.9.webp new file mode 100755 index 0000000..a9bf80a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/halfling/Stout/old/m/halfling.stout.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.0.webp new file mode 100755 index 0000000..8386daa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.1.webp new file mode 100755 index 0000000..6988738 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.10.webp new file mode 100755 index 0000000..2a08d03 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.11.webp new file mode 100755 index 0000000..eaaa2bc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.12.webp new file mode 100755 index 0000000..46a0e0e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.13.webp new file mode 100755 index 0000000..3aad70f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.14.webp new file mode 100755 index 0000000..bb2eccb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.15.webp new file mode 100755 index 0000000..205b7a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.16.webp new file mode 100755 index 0000000..ee2be98 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.17.webp new file mode 100755 index 0000000..13a0a29 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.18.webp new file mode 100755 index 0000000..c8d7610 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.19.webp new file mode 100755 index 0000000..069f3d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.2.webp new file mode 100755 index 0000000..26bee00 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.20.webp new file mode 100755 index 0000000..6907a19 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.3.webp new file mode 100755 index 0000000..84c40d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.4.webp new file mode 100755 index 0000000..5083b4a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.5.webp new file mode 100755 index 0000000..d367cfd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.6.webp new file mode 100755 index 0000000..d7efe5d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.7.webp new file mode 100755 index 0000000..2672562 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.8.webp new file mode 100755 index 0000000..57bfa46 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.9.webp new file mode 100755 index 0000000..1e086d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/f/human.calishite.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.0.webp new file mode 100755 index 0000000..f8aeec9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.1.webp new file mode 100755 index 0000000..7baf36c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.10.webp new file mode 100755 index 0000000..317820c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.11.webp new file mode 100755 index 0000000..752e6ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.12.webp new file mode 100755 index 0000000..c7b53fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.13.webp new file mode 100755 index 0000000..b71ea75 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.14.webp new file mode 100755 index 0000000..e008791 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.15.webp new file mode 100755 index 0000000..490eded Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.16.webp new file mode 100755 index 0000000..68b072b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.17.webp new file mode 100755 index 0000000..f096d98 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.2.webp new file mode 100755 index 0000000..a62b2a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.3.webp new file mode 100755 index 0000000..2ea152b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.4.webp new file mode 100755 index 0000000..e311d48 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.5.webp new file mode 100755 index 0000000..2a1a310 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.6.webp new file mode 100755 index 0000000..f719e62 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.7.webp new file mode 100755 index 0000000..e8e0342 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.8.webp new file mode 100755 index 0000000..d63d028 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.9.webp new file mode 100755 index 0000000..46e659a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/adult/m/human.calishite.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.0.webp new file mode 100755 index 0000000..4b0593c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.1.webp new file mode 100755 index 0000000..d3d4b2c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.10.webp new file mode 100755 index 0000000..e8211f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.11.webp new file mode 100755 index 0000000..fc5df1d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.12.webp new file mode 100755 index 0000000..7500db0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.13.webp new file mode 100755 index 0000000..6ec0d5c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.14.webp new file mode 100755 index 0000000..80d9d4c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.15.webp new file mode 100755 index 0000000..36b3d98 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.16.webp new file mode 100755 index 0000000..6d709fd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.2.webp new file mode 100755 index 0000000..d20df0c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.3.webp new file mode 100755 index 0000000..09af7cb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.4.webp new file mode 100755 index 0000000..7f4d554 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.5.webp new file mode 100755 index 0000000..b5186c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.6.webp new file mode 100755 index 0000000..33f876c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.7.webp new file mode 100755 index 0000000..81e59c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.8.webp new file mode 100755 index 0000000..5a98e44 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.9.webp new file mode 100755 index 0000000..ba582a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/f/human.calishite.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.0.webp new file mode 100755 index 0000000..9c78914 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.1.webp new file mode 100755 index 0000000..58fb7b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.10.webp new file mode 100755 index 0000000..57ac547 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.11.webp new file mode 100755 index 0000000..be228ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.12.webp new file mode 100755 index 0000000..4c334b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.13.webp new file mode 100755 index 0000000..5b1ee25 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.14.webp new file mode 100755 index 0000000..ed5f17f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.15.webp new file mode 100755 index 0000000..65dda76 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.16.webp new file mode 100755 index 0000000..cf72cd5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.17.webp new file mode 100755 index 0000000..021f5fa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.2.webp new file mode 100755 index 0000000..0ddfe29 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.3.webp new file mode 100755 index 0000000..213601b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.4.webp new file mode 100755 index 0000000..5c2bde3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.5.webp new file mode 100755 index 0000000..432667b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.6.webp new file mode 100755 index 0000000..047c1ad Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.7.webp new file mode 100755 index 0000000..3d3ecd6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.8.webp new file mode 100755 index 0000000..5e90378 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.9.webp new file mode 100755 index 0000000..fee538f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/kid/m/human.calishite.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.0.webp new file mode 100755 index 0000000..cfb3272 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.1.webp new file mode 100755 index 0000000..6a0940d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.10.webp new file mode 100755 index 0000000..56be7a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.11.webp new file mode 100755 index 0000000..d3ca565 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.12.webp new file mode 100755 index 0000000..b350897 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.13.webp new file mode 100755 index 0000000..6939191 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.14.webp new file mode 100755 index 0000000..66ebc04 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.15.webp new file mode 100755 index 0000000..85cd4c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.16.webp new file mode 100755 index 0000000..d862b05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.17.webp new file mode 100755 index 0000000..f1fde03 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.18.webp new file mode 100755 index 0000000..7c16dd6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.19.webp new file mode 100755 index 0000000..9bdc89e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.2.webp new file mode 100755 index 0000000..097fefc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.20.webp new file mode 100755 index 0000000..ab50207 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.21.webp new file mode 100755 index 0000000..0b62712 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.3.webp new file mode 100755 index 0000000..f46b5c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.4.webp new file mode 100755 index 0000000..7ad7be6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.5.webp new file mode 100755 index 0000000..886d3ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.6.webp new file mode 100755 index 0000000..1d21fd2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.7.webp new file mode 100755 index 0000000..e6659f6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.8.webp new file mode 100755 index 0000000..86cc2fa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.9.webp new file mode 100755 index 0000000..5d86296 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/f/human.calishite.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.0.webp new file mode 100755 index 0000000..f66ee1a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.1.webp new file mode 100755 index 0000000..9b52fac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.10.webp new file mode 100755 index 0000000..bf07930 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.11.webp new file mode 100755 index 0000000..4a2e92e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.12.webp new file mode 100755 index 0000000..0b5aafb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.13.webp new file mode 100755 index 0000000..7413efd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.14.webp new file mode 100755 index 0000000..2c21454 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.15.webp new file mode 100755 index 0000000..bfa735c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.16.webp new file mode 100755 index 0000000..7fdd020 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.17.webp new file mode 100755 index 0000000..7d1b522 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.18.webp new file mode 100755 index 0000000..469562b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.19.webp new file mode 100755 index 0000000..6f40704 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.2.webp new file mode 100755 index 0000000..b65219a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.3.webp new file mode 100755 index 0000000..d808a59 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.4.webp new file mode 100755 index 0000000..fc0d7f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.5.webp new file mode 100755 index 0000000..f18c515 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.6.webp new file mode 100755 index 0000000..f21f9bb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.7.webp new file mode 100755 index 0000000..5cff89e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.8.webp new file mode 100755 index 0000000..6d846ac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.9.webp new file mode 100755 index 0000000..81068fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/calishite/old/m/human.calishite.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.0.webp new file mode 100755 index 0000000..8aa35f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.1.webp new file mode 100755 index 0000000..c9e1b89 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.10.webp new file mode 100755 index 0000000..aff1023 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.11.webp new file mode 100755 index 0000000..f4af185 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.12.webp new file mode 100755 index 0000000..b4e69c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.13.webp new file mode 100755 index 0000000..55040d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.14.webp new file mode 100755 index 0000000..8d47a97 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.15.webp new file mode 100755 index 0000000..fff1e85 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.16.webp new file mode 100755 index 0000000..33a5b66 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.17.webp new file mode 100755 index 0000000..40fb2b6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.18.webp new file mode 100755 index 0000000..a3cb809 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.19.webp new file mode 100755 index 0000000..4e4a34a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.2.webp new file mode 100755 index 0000000..629a4b6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.20.webp new file mode 100755 index 0000000..07bfda3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.21.webp new file mode 100755 index 0000000..6cdac50 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.3.webp new file mode 100755 index 0000000..b186912 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.4.webp new file mode 100755 index 0000000..86d5958 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.5.webp new file mode 100755 index 0000000..5e4bbf0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.6.webp new file mode 100755 index 0000000..2203944 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.7.webp new file mode 100755 index 0000000..2a7ef61 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.8.webp new file mode 100755 index 0000000..5bbd879 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.9.webp new file mode 100755 index 0000000..a7d12b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/f/human.chondathan.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.0.webp new file mode 100755 index 0000000..9ed50db Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.1.webp new file mode 100755 index 0000000..da2ad4a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.10.webp new file mode 100755 index 0000000..ed203da Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.11.webp new file mode 100755 index 0000000..a24f84d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.12.webp new file mode 100755 index 0000000..b75bddc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.13.webp new file mode 100755 index 0000000..29a4264 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.14.webp new file mode 100755 index 0000000..9caec83 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.15.webp new file mode 100755 index 0000000..36e85b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.16.webp new file mode 100755 index 0000000..7c2136b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.2.webp new file mode 100755 index 0000000..98cd488 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.3.webp new file mode 100755 index 0000000..6a2a55a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.4.webp new file mode 100755 index 0000000..f62e4a2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.5.webp new file mode 100755 index 0000000..1a070f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.6.webp new file mode 100755 index 0000000..23fe8ec Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.7.webp new file mode 100755 index 0000000..f12dd4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.8.webp new file mode 100755 index 0000000..54a73a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.9.webp new file mode 100755 index 0000000..8a70cb7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/adult/m/human.chondathan.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.0.webp new file mode 100755 index 0000000..d9e6e4c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.1.webp new file mode 100755 index 0000000..5fa5f1d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.10.webp new file mode 100755 index 0000000..8f17092 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.11.webp new file mode 100755 index 0000000..109ec52 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.12.webp new file mode 100755 index 0000000..e26e869 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.13.webp new file mode 100755 index 0000000..c259c86 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.14.webp new file mode 100755 index 0000000..8900e8b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.2.webp new file mode 100755 index 0000000..e9751df Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.3.webp new file mode 100755 index 0000000..b5ab07a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.4.webp new file mode 100755 index 0000000..a690ecf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.5.webp new file mode 100755 index 0000000..1797f44 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.6.webp new file mode 100755 index 0000000..d140305 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.7.webp new file mode 100755 index 0000000..1ad4bd9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.8.webp new file mode 100755 index 0000000..0514052 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.9.webp new file mode 100755 index 0000000..03a50ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/f/human.chondathan.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.0.webp new file mode 100755 index 0000000..6ce427e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.1.webp new file mode 100755 index 0000000..2d1e753 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.10.webp new file mode 100755 index 0000000..5976259 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.11.webp new file mode 100755 index 0000000..0eead67 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.2.webp new file mode 100755 index 0000000..a2e9706 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.3.webp new file mode 100755 index 0000000..41fab8c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.4.webp new file mode 100755 index 0000000..65e30cd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.5.webp new file mode 100755 index 0000000..ff70042 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.6.webp new file mode 100755 index 0000000..fda73b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.7.webp new file mode 100755 index 0000000..f24f32c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.8.webp new file mode 100755 index 0000000..929be8c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.9.webp new file mode 100755 index 0000000..cc9fd92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/kid/m/human.chondathan.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.0.webp new file mode 100755 index 0000000..5fc8426 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.1.webp new file mode 100755 index 0000000..781d860 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.10.webp new file mode 100755 index 0000000..a271ffd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.11.webp new file mode 100755 index 0000000..0e4e41a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.12.webp new file mode 100755 index 0000000..75b62b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.13.webp new file mode 100755 index 0000000..bce2da3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.14.webp new file mode 100755 index 0000000..efec960 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.15.webp new file mode 100755 index 0000000..fd9e41d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.16.webp new file mode 100755 index 0000000..471ee5f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.17.webp new file mode 100755 index 0000000..9f50b89 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.2.webp new file mode 100755 index 0000000..f6aae88 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.3.webp new file mode 100755 index 0000000..28bdafb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.4.webp new file mode 100755 index 0000000..a56f1d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.5.webp new file mode 100755 index 0000000..5492b62 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.6.webp new file mode 100755 index 0000000..dd54625 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.7.webp new file mode 100755 index 0000000..f541349 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.8.webp new file mode 100755 index 0000000..7ce8db1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.9.webp new file mode 100755 index 0000000..f99dba4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/f/human.chondathan.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.0.webp new file mode 100755 index 0000000..d196867 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.1.webp new file mode 100755 index 0000000..1c4c278 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.10.webp new file mode 100755 index 0000000..9ec10c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.11.webp new file mode 100755 index 0000000..15c12dd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.12.webp new file mode 100755 index 0000000..20b799a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.13.webp new file mode 100755 index 0000000..029cecb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.14.webp new file mode 100755 index 0000000..bd2f35e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.15.webp new file mode 100755 index 0000000..45b9b63 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.16.webp new file mode 100755 index 0000000..5f4b63a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.17.webp new file mode 100755 index 0000000..6bfd7b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.18.webp new file mode 100755 index 0000000..c0273a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.19.webp new file mode 100755 index 0000000..2700b29 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.2.webp new file mode 100755 index 0000000..1844c64 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.3.webp new file mode 100755 index 0000000..4cffb53 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.4.webp new file mode 100755 index 0000000..d1f776f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.5.webp new file mode 100755 index 0000000..8dea85a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.6.webp new file mode 100755 index 0000000..64645d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.7.webp new file mode 100755 index 0000000..78367dd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.8.webp new file mode 100755 index 0000000..f1d6f31 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.9.webp new file mode 100755 index 0000000..68a1a0f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/chondathan/old/m/human.chondathan.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.0.webp new file mode 100755 index 0000000..36dfe97 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.1.webp new file mode 100755 index 0000000..fc5787c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.10.webp new file mode 100755 index 0000000..73481bd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.11.webp new file mode 100755 index 0000000..537aaca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.12.webp new file mode 100755 index 0000000..a53cafc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.13.webp new file mode 100755 index 0000000..36dcd28 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.14.webp new file mode 100755 index 0000000..f962058 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.15.webp new file mode 100755 index 0000000..ccb1fda Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.16.webp new file mode 100755 index 0000000..6050b5f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.17.webp new file mode 100755 index 0000000..007a7f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.18.webp new file mode 100755 index 0000000..51c5c4f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.19.webp new file mode 100755 index 0000000..bce0b3d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.2.webp new file mode 100755 index 0000000..aa3a961 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.20.webp new file mode 100755 index 0000000..ab31d32 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.21.webp new file mode 100755 index 0000000..9a9a0db Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.22.webp new file mode 100755 index 0000000..6ec56af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.23.webp new file mode 100755 index 0000000..5958bb8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.24.webp new file mode 100755 index 0000000..b2191e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.25.webp new file mode 100755 index 0000000..4f90fd4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.26.webp new file mode 100755 index 0000000..ad1aa15 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.27.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.27.webp new file mode 100755 index 0000000..855c544 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.27.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.3.webp new file mode 100755 index 0000000..899550c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.4.webp new file mode 100755 index 0000000..b764c0d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.5.webp new file mode 100755 index 0000000..1731c33 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.6.webp new file mode 100755 index 0000000..6f1f222 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.7.webp new file mode 100755 index 0000000..a3a5743 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.8.webp new file mode 100755 index 0000000..1cd6e59 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.9.webp new file mode 100755 index 0000000..00ab890 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/f/human.damaran.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.0.webp new file mode 100755 index 0000000..b642911 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.1.webp new file mode 100755 index 0000000..a5f4881 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.10.webp new file mode 100755 index 0000000..b23bad3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.11.webp new file mode 100755 index 0000000..593d907 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.12.webp new file mode 100755 index 0000000..8e1b657 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.13.webp new file mode 100755 index 0000000..4b66af1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.14.webp new file mode 100755 index 0000000..e2ab524 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.15.webp new file mode 100755 index 0000000..214d44c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.16.webp new file mode 100755 index 0000000..0a7cfd1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.17.webp new file mode 100755 index 0000000..9295c11 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.18.webp new file mode 100755 index 0000000..370dab4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.19.webp new file mode 100755 index 0000000..1e4b755 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.2.webp new file mode 100755 index 0000000..f07d433 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.20.webp new file mode 100755 index 0000000..ac1244c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.3.webp new file mode 100755 index 0000000..0034b48 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.4.webp new file mode 100755 index 0000000..0723938 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.5.webp new file mode 100755 index 0000000..5d961bd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.6.webp new file mode 100755 index 0000000..9d9e266 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.7.webp new file mode 100755 index 0000000..5689bcc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.8.webp new file mode 100755 index 0000000..cefa022 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.9.webp new file mode 100755 index 0000000..10749b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/adult/m/human.damaran.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.0.webp new file mode 100755 index 0000000..ff5015b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.1.webp new file mode 100755 index 0000000..7cbfe4e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.10.webp new file mode 100755 index 0000000..f9cf67f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.11.webp new file mode 100755 index 0000000..2c61edb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.12.webp new file mode 100755 index 0000000..54c5471 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.13.webp new file mode 100755 index 0000000..c557481 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.14.webp new file mode 100755 index 0000000..794b658 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.15.webp new file mode 100755 index 0000000..70eb905 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.16.webp new file mode 100755 index 0000000..c99173f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.2.webp new file mode 100755 index 0000000..d008a38 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.3.webp new file mode 100755 index 0000000..12ce6ec Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.4.webp new file mode 100755 index 0000000..c268430 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.5.webp new file mode 100755 index 0000000..507364f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.6.webp new file mode 100755 index 0000000..d24fd56 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.7.webp new file mode 100755 index 0000000..b666eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.8.webp new file mode 100755 index 0000000..f3ec708 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.9.webp new file mode 100755 index 0000000..d805da8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/f/human.damaran.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.0.webp new file mode 100755 index 0000000..d5030fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.1.webp new file mode 100755 index 0000000..c133ae1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.10.webp new file mode 100755 index 0000000..f82ea1b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.11.webp new file mode 100755 index 0000000..97bf15f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.12.webp new file mode 100755 index 0000000..80525cb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.13.webp new file mode 100755 index 0000000..31f33ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.14.webp new file mode 100755 index 0000000..94bccf3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.15.webp new file mode 100755 index 0000000..adecd99 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.16.webp new file mode 100755 index 0000000..e525ad6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.17.webp new file mode 100755 index 0000000..d1a19a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.18.webp new file mode 100755 index 0000000..79ca4c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.19.webp new file mode 100755 index 0000000..6943ace Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.2.webp new file mode 100755 index 0000000..9e23666 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.3.webp new file mode 100755 index 0000000..39de0a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.4.webp new file mode 100755 index 0000000..b11a24c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.5.webp new file mode 100755 index 0000000..c208050 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.6.webp new file mode 100755 index 0000000..7d1989d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.7.webp new file mode 100755 index 0000000..41344f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.8.webp new file mode 100755 index 0000000..3f792ac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.9.webp new file mode 100755 index 0000000..9f161b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/kid/m/human.damaran.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.0.webp new file mode 100755 index 0000000..b1f3e00 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.1.webp new file mode 100755 index 0000000..ea69aa1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.10.webp new file mode 100755 index 0000000..720d18e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.11.webp new file mode 100755 index 0000000..7cfec3f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.12.webp new file mode 100755 index 0000000..4419b21 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.13.webp new file mode 100755 index 0000000..6072e69 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.14.webp new file mode 100755 index 0000000..f23186c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.2.webp new file mode 100755 index 0000000..8dcaf3e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.3.webp new file mode 100755 index 0000000..d9b2460 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.4.webp new file mode 100755 index 0000000..06d20ed Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.5.webp new file mode 100755 index 0000000..7760fcf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.6.webp new file mode 100755 index 0000000..2cc5a0e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.7.webp new file mode 100755 index 0000000..8431e93 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.8.webp new file mode 100755 index 0000000..d705b45 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.9.webp new file mode 100755 index 0000000..bde0749 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/f/human.damaran.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.0.webp new file mode 100755 index 0000000..995b782 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.1.webp new file mode 100755 index 0000000..4b41fce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.10.webp new file mode 100755 index 0000000..1687fa9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.11.webp new file mode 100755 index 0000000..6db0c36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.12.webp new file mode 100755 index 0000000..32db798 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.13.webp new file mode 100755 index 0000000..367c769 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.14.webp new file mode 100755 index 0000000..b372b49 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.15.webp new file mode 100755 index 0000000..8cf26ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.16.webp new file mode 100755 index 0000000..16c7802 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.17.webp new file mode 100755 index 0000000..93c99e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.18.webp new file mode 100755 index 0000000..55b0dcc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.19.webp new file mode 100755 index 0000000..235c1c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.2.webp new file mode 100755 index 0000000..c34a165 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.3.webp new file mode 100755 index 0000000..1a733f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.4.webp new file mode 100755 index 0000000..21e86ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.5.webp new file mode 100755 index 0000000..ca9115e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.6.webp new file mode 100755 index 0000000..ace4ef6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.7.webp new file mode 100755 index 0000000..fc42d65 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.8.webp new file mode 100755 index 0000000..c4091fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.9.webp new file mode 100755 index 0000000..828566e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/damaran/old/m/human.damaran.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.0.webp new file mode 100755 index 0000000..e606940 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.1.webp new file mode 100755 index 0000000..56afdf7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.10.webp new file mode 100755 index 0000000..ec05f62 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.11.webp new file mode 100755 index 0000000..3e01152 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.12.webp new file mode 100755 index 0000000..547e153 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.13.webp new file mode 100755 index 0000000..a926795 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.14.webp new file mode 100755 index 0000000..3097ccc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.15.webp new file mode 100755 index 0000000..0f7c94c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.16.webp new file mode 100755 index 0000000..e2c74f7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.17.webp new file mode 100755 index 0000000..0292656 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.18.webp new file mode 100755 index 0000000..6013f4e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.19.webp new file mode 100755 index 0000000..e74f5a6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.2.webp new file mode 100755 index 0000000..e6bb318 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.20.webp new file mode 100755 index 0000000..3863f9f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.21.webp new file mode 100755 index 0000000..9b6d0c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.22.webp new file mode 100755 index 0000000..60cf847 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.23.webp new file mode 100755 index 0000000..c903015 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.24.webp new file mode 100755 index 0000000..b668dae Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.25.webp new file mode 100755 index 0000000..faf2a27 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.26.webp new file mode 100755 index 0000000..cd27cb4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.27.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.27.webp new file mode 100755 index 0000000..c020877 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.27.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.28.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.28.webp new file mode 100755 index 0000000..a698bad Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.28.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.29.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.29.webp new file mode 100755 index 0000000..3409a0e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.29.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.3.webp new file mode 100755 index 0000000..33e4248 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.30.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.30.webp new file mode 100755 index 0000000..1e6ec54 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.30.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.31.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.31.webp new file mode 100755 index 0000000..623f98a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.31.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.32.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.32.webp new file mode 100755 index 0000000..5a0414c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.32.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.4.webp new file mode 100755 index 0000000..41c4255 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.5.webp new file mode 100755 index 0000000..046dc1f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.6.webp new file mode 100755 index 0000000..e713b77 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.7.webp new file mode 100755 index 0000000..9160e4e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.8.webp new file mode 100755 index 0000000..193045c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.9.webp new file mode 100755 index 0000000..b612728 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/f/human.illuskan.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.0.webp new file mode 100755 index 0000000..1fe9d32 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.1.webp new file mode 100755 index 0000000..29016f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.10.webp new file mode 100755 index 0000000..d5398a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.11.webp new file mode 100755 index 0000000..1093f79 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.12.webp new file mode 100755 index 0000000..9f12e02 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.13.webp new file mode 100755 index 0000000..626d4e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.14.webp new file mode 100755 index 0000000..e2cb4dd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.15.webp new file mode 100755 index 0000000..ee05377 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.16.webp new file mode 100755 index 0000000..6736548 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.17.webp new file mode 100755 index 0000000..5f04f43 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.2.webp new file mode 100755 index 0000000..5af0cb2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.3.webp new file mode 100755 index 0000000..8dde105 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.4.webp new file mode 100755 index 0000000..a03ab0a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.5.webp new file mode 100755 index 0000000..564ceeb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.6.webp new file mode 100755 index 0000000..4f71a44 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.7.webp new file mode 100755 index 0000000..647d9fb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.8.webp new file mode 100755 index 0000000..23212ef Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.9.webp new file mode 100755 index 0000000..17de515 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/adult/m/human.illuskan.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.0.webp new file mode 100755 index 0000000..c02cf53 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.1.webp new file mode 100755 index 0000000..7ece120 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.10.webp new file mode 100755 index 0000000..9a1fce2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.11.webp new file mode 100755 index 0000000..287c67a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.12.webp new file mode 100755 index 0000000..b780c00 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.13.webp new file mode 100755 index 0000000..16d949b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.14.webp new file mode 100755 index 0000000..4d11a19 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.15.webp new file mode 100755 index 0000000..8b43e7d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.16.webp new file mode 100755 index 0000000..2f8c77e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.17.webp new file mode 100755 index 0000000..1663c3b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.18.webp new file mode 100755 index 0000000..e1ff338 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.19.webp new file mode 100755 index 0000000..4b36674 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.2.webp new file mode 100755 index 0000000..1004d92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.20.webp new file mode 100755 index 0000000..a74e8f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.21.webp new file mode 100755 index 0000000..e8b3fac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.3.webp new file mode 100755 index 0000000..71bc892 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.4.webp new file mode 100755 index 0000000..9126704 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.5.webp new file mode 100755 index 0000000..d75c5b6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.6.webp new file mode 100755 index 0000000..4998c05 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.7.webp new file mode 100755 index 0000000..c09136a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.8.webp new file mode 100755 index 0000000..f0add61 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.9.webp new file mode 100755 index 0000000..f5847c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/f/human.illuskan.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.0.webp new file mode 100755 index 0000000..a2708a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.1.webp new file mode 100755 index 0000000..a7f7843 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.10.webp new file mode 100755 index 0000000..5d44bb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.11.webp new file mode 100755 index 0000000..164def7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.12.webp new file mode 100755 index 0000000..a175ed8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.13.webp new file mode 100755 index 0000000..8690ed4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.14.webp new file mode 100755 index 0000000..7b2b80d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.15.webp new file mode 100755 index 0000000..3af92be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.16.webp new file mode 100755 index 0000000..80586db Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.17.webp new file mode 100755 index 0000000..88c8c30 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.2.webp new file mode 100755 index 0000000..a1ddddf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.3.webp new file mode 100755 index 0000000..17e7269 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.4.webp new file mode 100755 index 0000000..fa1e396 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.5.webp new file mode 100755 index 0000000..d302686 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.6.webp new file mode 100755 index 0000000..0d448fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.7.webp new file mode 100755 index 0000000..ccfdda4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.8.webp new file mode 100755 index 0000000..e076817 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.9.webp new file mode 100755 index 0000000..13aa5e0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/kid/m/human.illuskan.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.0.webp new file mode 100755 index 0000000..f258521 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.1.webp new file mode 100755 index 0000000..f52a006 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.10.webp new file mode 100755 index 0000000..19a5bf0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.11.webp new file mode 100755 index 0000000..ce59765 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.12.webp new file mode 100755 index 0000000..405cb24 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.13.webp new file mode 100755 index 0000000..e175cca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.14.webp new file mode 100755 index 0000000..1c30e60 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.15.webp new file mode 100755 index 0000000..0653ce9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.16.webp new file mode 100755 index 0000000..724cd76 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.17.webp new file mode 100755 index 0000000..da81bdf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.2.webp new file mode 100755 index 0000000..3083b12 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.3.webp new file mode 100755 index 0000000..431ad78 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.4.webp new file mode 100755 index 0000000..9ffc26d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.5.webp new file mode 100755 index 0000000..b5e031b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.6.webp new file mode 100755 index 0000000..6697a61 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.7.webp new file mode 100755 index 0000000..a9c254b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.8.webp new file mode 100755 index 0000000..6d2f169 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.9.webp new file mode 100755 index 0000000..ad87115 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/f/human.illuskan.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.0.webp new file mode 100755 index 0000000..7e1a93c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.1.webp new file mode 100755 index 0000000..003f244 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.10.webp new file mode 100755 index 0000000..b6e8dde Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.11.webp new file mode 100755 index 0000000..ad9dfad Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.12.webp new file mode 100755 index 0000000..acd1d03 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.13.webp new file mode 100755 index 0000000..a4cc294 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.14.webp new file mode 100755 index 0000000..01a7a9b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.15.webp new file mode 100755 index 0000000..a52e00e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.16.webp new file mode 100755 index 0000000..2251228 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.17.webp new file mode 100755 index 0000000..9a1564e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.18.webp new file mode 100755 index 0000000..43a009b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.19.webp new file mode 100755 index 0000000..dc75cb5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.2.webp new file mode 100755 index 0000000..c38471c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.20.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.20.webp new file mode 100755 index 0000000..a7c35f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.21.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.21.webp new file mode 100755 index 0000000..55e2436 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.22.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.22.webp new file mode 100755 index 0000000..2cbab7f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.23.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.23.webp new file mode 100755 index 0000000..3e5b6c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.24.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.24.webp new file mode 100755 index 0000000..10c4683 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.25.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.25.webp new file mode 100755 index 0000000..14f56c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.3.webp new file mode 100755 index 0000000..d28d1ec Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.4.webp new file mode 100755 index 0000000..e5d4eed Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.5.webp new file mode 100755 index 0000000..494fea7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.6.webp new file mode 100755 index 0000000..326eb48 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.7.webp new file mode 100755 index 0000000..20eee9a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.8.webp new file mode 100755 index 0000000..07076d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.9.webp new file mode 100755 index 0000000..56f026d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/illuskan/old/m/human.illuskan.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.0.webp new file mode 100755 index 0000000..67f3080 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.1.webp new file mode 100755 index 0000000..7a0c2fa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.10.webp new file mode 100755 index 0000000..f79d54f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.11.webp new file mode 100755 index 0000000..62ff320 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.12.webp new file mode 100755 index 0000000..1817df0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.13.webp new file mode 100755 index 0000000..ef1d6ac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.14.webp new file mode 100755 index 0000000..c6435d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.15.webp new file mode 100755 index 0000000..ceb8ac9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.16.webp new file mode 100755 index 0000000..3881acd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.17.webp new file mode 100755 index 0000000..4c3aedc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.18.webp new file mode 100755 index 0000000..2a0e81f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.19.webp new file mode 100755 index 0000000..b474a85 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.2.webp new file mode 100755 index 0000000..2322181 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.20.webp new file mode 100755 index 0000000..dac57fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.3.webp new file mode 100755 index 0000000..c4cc837 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.4.webp new file mode 100755 index 0000000..b2d7cc8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.5.webp new file mode 100755 index 0000000..84c2a15 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.6.webp new file mode 100755 index 0000000..3040bd9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.7.webp new file mode 100755 index 0000000..938bfdf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.8.webp new file mode 100755 index 0000000..e451ec0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.9.webp new file mode 100755 index 0000000..92281c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/f/human.mulan.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.0.webp new file mode 100755 index 0000000..e1aa968 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.1.webp new file mode 100755 index 0000000..175da80 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.10.webp new file mode 100755 index 0000000..4c493a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.11.webp new file mode 100755 index 0000000..ffae000 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.12.webp new file mode 100755 index 0000000..8231515 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.13.webp new file mode 100755 index 0000000..2f5f4b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.14.webp new file mode 100755 index 0000000..6ae25ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.15.webp new file mode 100755 index 0000000..d897329 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.16.webp new file mode 100755 index 0000000..0aa830e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.17.webp new file mode 100755 index 0000000..c77d4f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.18.webp new file mode 100755 index 0000000..077e53e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.19.webp new file mode 100755 index 0000000..f7fece3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.2.webp new file mode 100755 index 0000000..280d7fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.20.webp new file mode 100755 index 0000000..ba066d3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.21.webp new file mode 100755 index 0000000..9622202 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.22.webp new file mode 100755 index 0000000..4f1eeca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.23.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.23.webp new file mode 100755 index 0000000..0c2ec5a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.24.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.24.webp new file mode 100755 index 0000000..6e6e028 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.25.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.25.webp new file mode 100755 index 0000000..9ac05b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.3.webp new file mode 100755 index 0000000..9f3fe36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.4.webp new file mode 100755 index 0000000..a4a8dab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.5.webp new file mode 100755 index 0000000..b01b502 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.6.webp new file mode 100755 index 0000000..29940f7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.7.webp new file mode 100755 index 0000000..bd881ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.8.webp new file mode 100755 index 0000000..9126fc6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.9.webp new file mode 100755 index 0000000..1666927 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/adult/m/human.mulan.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.0.webp new file mode 100755 index 0000000..b899504 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.1.webp new file mode 100755 index 0000000..4558203 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.10.webp new file mode 100755 index 0000000..3564f89 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.11.webp new file mode 100755 index 0000000..0c956d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.12.webp new file mode 100755 index 0000000..0933567 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.13.webp new file mode 100755 index 0000000..51e927c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.14.webp new file mode 100755 index 0000000..dbcb1af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.15.webp new file mode 100755 index 0000000..9cbb163 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.16.webp new file mode 100755 index 0000000..970fc61 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.17.webp new file mode 100755 index 0000000..fcbcdf0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.18.webp new file mode 100755 index 0000000..572f2f6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.19.webp new file mode 100755 index 0000000..87753f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.2.webp new file mode 100755 index 0000000..117af18 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.20.webp new file mode 100755 index 0000000..ac64963 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.21.webp new file mode 100755 index 0000000..0d10166 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.22.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.22.webp new file mode 100755 index 0000000..3671170 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.3.webp new file mode 100755 index 0000000..29f80eb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.4.webp new file mode 100755 index 0000000..b4f02c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.5.webp new file mode 100755 index 0000000..858d53a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.6.webp new file mode 100755 index 0000000..5c86bca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.7.webp new file mode 100755 index 0000000..0f3071f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.8.webp new file mode 100755 index 0000000..d52e841 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.9.webp new file mode 100755 index 0000000..33daa08 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/f/human.mulan.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.0.webp new file mode 100755 index 0000000..0eaa4e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.1.webp new file mode 100755 index 0000000..88a7c80 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.10.webp new file mode 100755 index 0000000..9c802c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.11.webp new file mode 100755 index 0000000..5f25c07 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.12.webp new file mode 100755 index 0000000..05d0c50 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.13.webp new file mode 100755 index 0000000..18b87d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.14.webp new file mode 100755 index 0000000..4eaa5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.15.webp new file mode 100755 index 0000000..8c6f296 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.2.webp new file mode 100755 index 0000000..fbe5d0e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.3.webp new file mode 100755 index 0000000..f463ef1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.4.webp new file mode 100755 index 0000000..115161c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.5.webp new file mode 100755 index 0000000..debf59c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.6.webp new file mode 100755 index 0000000..9eab048 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.7.webp new file mode 100755 index 0000000..ce75ff7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.8.webp new file mode 100755 index 0000000..a02037b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.9.webp new file mode 100755 index 0000000..7ff4977 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/kid/m/human.mulan.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.0.webp new file mode 100755 index 0000000..8a5a710 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.1.webp new file mode 100755 index 0000000..3ddfbbb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.10.webp new file mode 100755 index 0000000..b38316b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.11.webp new file mode 100755 index 0000000..d3aed27 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.12.webp new file mode 100755 index 0000000..e69bc5c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.13.webp new file mode 100755 index 0000000..fbe41d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.14.webp new file mode 100755 index 0000000..0ed6647 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.15.webp new file mode 100755 index 0000000..965bb36 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.16.webp new file mode 100755 index 0000000..15d4396 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.17.webp new file mode 100755 index 0000000..543a774 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.18.webp new file mode 100755 index 0000000..df08f47 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.19.webp new file mode 100755 index 0000000..5adcd2c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.2.webp new file mode 100755 index 0000000..0e27a61 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.20.webp new file mode 100755 index 0000000..c467e7a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.21.webp new file mode 100755 index 0000000..99aaf5d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.3.webp new file mode 100755 index 0000000..d734771 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.4.webp new file mode 100755 index 0000000..b94974d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.5.webp new file mode 100755 index 0000000..bf7e87b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.6.webp new file mode 100755 index 0000000..faff10d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.7.webp new file mode 100755 index 0000000..66c21e0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.8.webp new file mode 100755 index 0000000..32d8e0f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.9.webp new file mode 100755 index 0000000..1c0fba4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/f/human.mulan.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.0.webp new file mode 100755 index 0000000..1398cba Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.1.webp new file mode 100755 index 0000000..9ece369 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.10.webp new file mode 100755 index 0000000..d9437da Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.11.webp new file mode 100755 index 0000000..bd5b2e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.12.webp new file mode 100755 index 0000000..daa1d9b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.13.webp new file mode 100755 index 0000000..9c5c347 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.14.webp new file mode 100755 index 0000000..2f62fda Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.15.webp new file mode 100755 index 0000000..f00c00b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.16.webp new file mode 100755 index 0000000..5f7829d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.17.webp new file mode 100755 index 0000000..9eaae41 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.18.webp new file mode 100755 index 0000000..72b3ed1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.19.webp new file mode 100755 index 0000000..4fff058 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.2.webp new file mode 100755 index 0000000..e48473a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.20.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.20.webp new file mode 100755 index 0000000..d143e57 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.21.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.21.webp new file mode 100755 index 0000000..db399d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.22.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.22.webp new file mode 100755 index 0000000..a1c2c71 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.23.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.23.webp new file mode 100755 index 0000000..1b874b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.24.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.24.webp new file mode 100755 index 0000000..9aff2b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.3.webp new file mode 100755 index 0000000..5d1d498 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.4.webp new file mode 100755 index 0000000..d71b696 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.5.webp new file mode 100755 index 0000000..c1742c5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.6.webp new file mode 100755 index 0000000..7456f47 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.7.webp new file mode 100755 index 0000000..1e182af Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.8.webp new file mode 100755 index 0000000..04643cd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.9.webp new file mode 100755 index 0000000..1f7fa98 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/mulan/old/m/human.mulan.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.0.webp new file mode 100755 index 0000000..4f8b4fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.1.webp new file mode 100755 index 0000000..fa8eaf1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.10.webp new file mode 100755 index 0000000..4478350 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.11.webp new file mode 100755 index 0000000..30203e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.12.webp new file mode 100755 index 0000000..c3fd17a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.13.webp new file mode 100755 index 0000000..e14b509 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.14.webp new file mode 100755 index 0000000..25e350b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.15.webp new file mode 100755 index 0000000..f592064 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.16.webp new file mode 100755 index 0000000..05aaeea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.17.webp new file mode 100755 index 0000000..ddf9ef1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.18.webp new file mode 100755 index 0000000..6b49a00 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.19.webp new file mode 100755 index 0000000..457e4be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.2.webp new file mode 100755 index 0000000..af6993f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.20.webp new file mode 100755 index 0000000..680961b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.3.webp new file mode 100755 index 0000000..4a3eb2d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.4.webp new file mode 100755 index 0000000..0e0dd72 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.5.webp new file mode 100755 index 0000000..2a8706e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.6.webp new file mode 100755 index 0000000..ed22ff0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.7.webp new file mode 100755 index 0000000..33e8b84 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.8.webp new file mode 100755 index 0000000..5fb9ebd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.9.webp new file mode 100755 index 0000000..8c39bc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/f/human.rashemi.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.0.webp new file mode 100755 index 0000000..ef8c398 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.1.webp new file mode 100755 index 0000000..b71168b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.10.webp new file mode 100755 index 0000000..4b69f15 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.11.webp new file mode 100755 index 0000000..41f0a9e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.12.webp new file mode 100755 index 0000000..485454d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.13.webp new file mode 100755 index 0000000..b6e868d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.14.webp new file mode 100755 index 0000000..f84062b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.15.webp new file mode 100755 index 0000000..871f80e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.16.webp new file mode 100755 index 0000000..16131a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.17.webp new file mode 100755 index 0000000..2305674 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.2.webp new file mode 100755 index 0000000..22b363b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.3.webp new file mode 100755 index 0000000..aab9e9a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.4.webp new file mode 100755 index 0000000..f9b0421 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.5.webp new file mode 100755 index 0000000..26415c1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.6.webp new file mode 100755 index 0000000..0d88ed4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.7.webp new file mode 100755 index 0000000..0591698 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.8.webp new file mode 100755 index 0000000..2e17f9b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.9.webp new file mode 100755 index 0000000..e4d9aa8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/adult/m/human.rashemi.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.0.webp new file mode 100755 index 0000000..bb3abcd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.1.webp new file mode 100755 index 0000000..8c53a43 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.10.webp new file mode 100755 index 0000000..b1b9a73 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.11.webp new file mode 100755 index 0000000..934ab41 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.12.webp new file mode 100755 index 0000000..9f0bb33 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.13.webp new file mode 100755 index 0000000..88ab321 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.14.webp new file mode 100755 index 0000000..0b447e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.15.webp new file mode 100755 index 0000000..540baf1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.16.webp new file mode 100755 index 0000000..5b42546 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.17.webp new file mode 100755 index 0000000..9859a55 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.2.webp new file mode 100755 index 0000000..dca3ea6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.3.webp new file mode 100755 index 0000000..a7ecf53 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.4.webp new file mode 100755 index 0000000..5a9cb9c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.5.webp new file mode 100755 index 0000000..a011f59 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.6.webp new file mode 100755 index 0000000..b720a0c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.7.webp new file mode 100755 index 0000000..4070dd5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.8.webp new file mode 100755 index 0000000..256c3e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.9.webp new file mode 100755 index 0000000..6a3456b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/f/human.rashemi.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.0.webp new file mode 100755 index 0000000..8b12155 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.1.webp new file mode 100755 index 0000000..9d7d855 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.10.webp new file mode 100755 index 0000000..3a91585 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.11.webp new file mode 100755 index 0000000..c7e02bd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.12.webp new file mode 100755 index 0000000..3fbbaaa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.13.webp new file mode 100755 index 0000000..4864dd7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.14.webp new file mode 100755 index 0000000..2b99ed8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.2.webp new file mode 100755 index 0000000..19b9d7f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.3.webp new file mode 100755 index 0000000..c52aeb5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.4.webp new file mode 100755 index 0000000..8647761 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.5.webp new file mode 100755 index 0000000..262d3e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.6.webp new file mode 100755 index 0000000..b35c9d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.7.webp new file mode 100755 index 0000000..0c65a6a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.8.webp new file mode 100755 index 0000000..254fabf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.9.webp new file mode 100755 index 0000000..ceda986 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/kid/m/human.rashemi.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.0.webp new file mode 100755 index 0000000..5d145b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.1.webp new file mode 100755 index 0000000..7215935 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.10.webp new file mode 100755 index 0000000..99e8361 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.11.webp new file mode 100755 index 0000000..18ad85e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.12.webp new file mode 100755 index 0000000..e5fc137 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.13.webp new file mode 100755 index 0000000..ca28fd8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.14.webp new file mode 100755 index 0000000..930d0ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.15.webp new file mode 100755 index 0000000..e333b3b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.16.webp new file mode 100755 index 0000000..5b9edff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.17.webp new file mode 100755 index 0000000..9ef4b9e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.18.webp new file mode 100755 index 0000000..30a8889 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.2.webp new file mode 100755 index 0000000..40d0a31 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.3.webp new file mode 100755 index 0000000..8d61408 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.4.webp new file mode 100755 index 0000000..ef850a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.5.webp new file mode 100755 index 0000000..f743147 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.6.webp new file mode 100755 index 0000000..05eb4a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.7.webp new file mode 100755 index 0000000..f87934b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.8.webp new file mode 100755 index 0000000..4d7a95b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.9.webp new file mode 100755 index 0000000..137dd00 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/f/human.rashemi.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.0.webp new file mode 100755 index 0000000..3857ddd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.1.webp new file mode 100755 index 0000000..a366039 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.10.webp new file mode 100755 index 0000000..3ae6cbc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.11.webp new file mode 100755 index 0000000..8f2a2e0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.12.webp new file mode 100755 index 0000000..cef90c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.13.webp new file mode 100755 index 0000000..c933530 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.14.webp new file mode 100755 index 0000000..37951b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.15.webp new file mode 100755 index 0000000..8cd1767 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.16.webp new file mode 100755 index 0000000..c29ab3b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.17.webp new file mode 100755 index 0000000..ce6f6e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.18.webp new file mode 100755 index 0000000..f6d1561 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.19.webp new file mode 100755 index 0000000..779fa06 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.2.webp new file mode 100755 index 0000000..2579c47 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.20.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.20.webp new file mode 100755 index 0000000..2e1c7ec Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.21.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.21.webp new file mode 100755 index 0000000..04c9d33 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.3.webp new file mode 100755 index 0000000..199a554 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.4.webp new file mode 100755 index 0000000..4b305c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.5.webp new file mode 100755 index 0000000..ee4c633 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.6.webp new file mode 100755 index 0000000..0ef051c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.7.webp new file mode 100755 index 0000000..d2e6619 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.8.webp new file mode 100755 index 0000000..de0f055 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.9.webp new file mode 100755 index 0000000..bdbaa79 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/rushemi/old/m/human.rashemi.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.0.webp new file mode 100755 index 0000000..c456506 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.1.webp new file mode 100755 index 0000000..2e9143c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.10.webp new file mode 100755 index 0000000..86e045e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.11.webp new file mode 100755 index 0000000..406247d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.12.webp new file mode 100755 index 0000000..cec1ef9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.13.webp new file mode 100755 index 0000000..d60ca8c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.14.webp new file mode 100755 index 0000000..0eded06 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.2.webp new file mode 100755 index 0000000..6265a3f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.3.webp new file mode 100755 index 0000000..66e9be6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.4.webp new file mode 100755 index 0000000..8de6f15 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.5.webp new file mode 100755 index 0000000..4731cbd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.6.webp new file mode 100755 index 0000000..baa4aaa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.7.webp new file mode 100755 index 0000000..ec0df7b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.8.webp new file mode 100755 index 0000000..dfdb31a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.9.webp new file mode 100755 index 0000000..b9227ef Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/f/human.terami.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.0.webp new file mode 100755 index 0000000..7fed721 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.1.webp new file mode 100755 index 0000000..0b3ff92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.10.webp new file mode 100755 index 0000000..b0ed212 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.11.webp new file mode 100755 index 0000000..35fdea5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.12.webp new file mode 100755 index 0000000..479d736 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.13.webp new file mode 100755 index 0000000..e0b0271 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.14.webp new file mode 100755 index 0000000..06bfca7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.15.webp new file mode 100755 index 0000000..daff027 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.16.webp new file mode 100755 index 0000000..f5221d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.17.webp new file mode 100755 index 0000000..8c3be14 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.2.webp new file mode 100755 index 0000000..60f4877 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.3.webp new file mode 100755 index 0000000..eabcb92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.4.webp new file mode 100755 index 0000000..f2d8b2c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.5.webp new file mode 100755 index 0000000..f56de5c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.6.webp new file mode 100755 index 0000000..67cd8f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.7.webp new file mode 100755 index 0000000..5c5e06c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.8.webp new file mode 100755 index 0000000..c07cd8c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.9.webp new file mode 100755 index 0000000..c129fe6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/adult/m/human.terami.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.0.webp new file mode 100755 index 0000000..5df0d84 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.1.webp new file mode 100755 index 0000000..852e13b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.10.webp new file mode 100755 index 0000000..d0a25df Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.11.webp new file mode 100755 index 0000000..98b5769 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.12.webp new file mode 100755 index 0000000..275c257 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.13.webp new file mode 100755 index 0000000..b751c75 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.14.webp new file mode 100755 index 0000000..1982db8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.15.webp new file mode 100755 index 0000000..89a8264 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.2.webp new file mode 100755 index 0000000..8132adb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.3.webp new file mode 100755 index 0000000..e9655e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.4.webp new file mode 100755 index 0000000..ebc53ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.5.webp new file mode 100755 index 0000000..dbc8b5f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.6.webp new file mode 100755 index 0000000..af0db16 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.7.webp new file mode 100755 index 0000000..a688598 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.8.webp new file mode 100755 index 0000000..ef146dc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.9.webp new file mode 100755 index 0000000..74fafce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/f/human.terami.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.0.webp new file mode 100755 index 0000000..6315112 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.1.webp new file mode 100755 index 0000000..2d0dec6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.10.webp new file mode 100755 index 0000000..a24e24c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.11.webp new file mode 100755 index 0000000..e7ff8f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.12.webp new file mode 100755 index 0000000..57e4d2f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.13.webp new file mode 100755 index 0000000..5b87ca1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.14.webp new file mode 100755 index 0000000..adbce9f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.2.webp new file mode 100755 index 0000000..f90ad30 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.3.webp new file mode 100755 index 0000000..28330a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.4.webp new file mode 100755 index 0000000..e4395dd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.5.webp new file mode 100755 index 0000000..dea1104 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.6.webp new file mode 100755 index 0000000..e2b2c4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.7.webp new file mode 100755 index 0000000..e927ccd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.8.webp new file mode 100755 index 0000000..6708b58 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.9.webp new file mode 100755 index 0000000..851157a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/kid/m/human.terami.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.0.webp new file mode 100755 index 0000000..9c62fa6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.1.webp new file mode 100755 index 0000000..40067b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.10.webp new file mode 100755 index 0000000..c0b8d1a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.11.webp new file mode 100755 index 0000000..7862e43 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.12.webp new file mode 100755 index 0000000..272a32e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.13.webp new file mode 100755 index 0000000..6c9f08a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.14.webp new file mode 100755 index 0000000..1263c09 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.15.webp new file mode 100755 index 0000000..485ce28 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.16.webp new file mode 100755 index 0000000..05376c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.17.webp new file mode 100755 index 0000000..d49739e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.18.webp new file mode 100755 index 0000000..c29e041 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.19.webp new file mode 100755 index 0000000..8c473cf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.2.webp new file mode 100755 index 0000000..8cc798b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.3.webp new file mode 100755 index 0000000..2ce5b92 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.4.webp new file mode 100755 index 0000000..721e76c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.5.webp new file mode 100755 index 0000000..4143a89 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.6.webp new file mode 100755 index 0000000..7870eff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.7.webp new file mode 100755 index 0000000..0e1565e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.8.webp new file mode 100755 index 0000000..151bfbc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.9.webp new file mode 100755 index 0000000..cd02e03 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/f/human.terami.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.0.webp new file mode 100755 index 0000000..786bde8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.1.webp new file mode 100755 index 0000000..8a0e893 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.10.webp new file mode 100755 index 0000000..fd2eb25 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.11.webp new file mode 100755 index 0000000..b1be1d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.12.webp new file mode 100755 index 0000000..6240155 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.13.webp new file mode 100755 index 0000000..125a7c1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.14.webp new file mode 100755 index 0000000..71e12b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.15.webp new file mode 100755 index 0000000..7bbdd00 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.16.webp new file mode 100755 index 0000000..78ec829 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.17.webp new file mode 100755 index 0000000..270344c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.18.webp new file mode 100755 index 0000000..594929c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.2.webp new file mode 100755 index 0000000..92ae3d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.3.webp new file mode 100755 index 0000000..152c5f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.4.webp new file mode 100755 index 0000000..918d3e2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.5.webp new file mode 100755 index 0000000..601c6ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.6.webp new file mode 100755 index 0000000..5d82e1c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.7.webp new file mode 100755 index 0000000..6c8a5ab Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.8.webp new file mode 100755 index 0000000..1f3a5e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.9.webp new file mode 100755 index 0000000..cec8f27 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/terami/old/m/human.terami.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.0.webp new file mode 100755 index 0000000..cf75955 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.1.webp new file mode 100755 index 0000000..e5c522b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.10.webp new file mode 100755 index 0000000..15dd893 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.11.webp new file mode 100755 index 0000000..5e0bf3c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.12.webp new file mode 100755 index 0000000..3e99402 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.13.webp new file mode 100755 index 0000000..bdebcce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.14.webp new file mode 100755 index 0000000..74548aa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.15.webp new file mode 100755 index 0000000..53880ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.16.webp new file mode 100755 index 0000000..32cbfac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.17.webp new file mode 100755 index 0000000..dc9c02b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.18.webp new file mode 100755 index 0000000..34eb587 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.19.webp new file mode 100755 index 0000000..acd2cf2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.2.webp new file mode 100755 index 0000000..f8459ce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.20.webp new file mode 100755 index 0000000..5c2d148 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.21.webp new file mode 100755 index 0000000..5a6a252 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.22.webp new file mode 100755 index 0000000..600edd7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.23.webp new file mode 100755 index 0000000..1bbdb6d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.24.webp new file mode 100755 index 0000000..5975afe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.25.webp new file mode 100755 index 0000000..40c9b02 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.26.webp new file mode 100755 index 0000000..5d24a27 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.3.webp new file mode 100755 index 0000000..8df5760 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.4.webp new file mode 100755 index 0000000..9133dbb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.5.webp new file mode 100755 index 0000000..d559bc5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.6.webp new file mode 100755 index 0000000..9be81ea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.7.webp new file mode 100755 index 0000000..e0df687 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.8.webp new file mode 100755 index 0000000..5016c5b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.9.webp new file mode 100755 index 0000000..9801b9a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.0.webp new file mode 100755 index 0000000..0f03c4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.1.webp new file mode 100755 index 0000000..2712548 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.10.webp new file mode 100755 index 0000000..26eef52 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.11.webp new file mode 100755 index 0000000..3eebc48 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.12.webp new file mode 100755 index 0000000..1259035 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.13.webp new file mode 100755 index 0000000..51677e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.14.webp new file mode 100755 index 0000000..8d853ba Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.15.webp new file mode 100755 index 0000000..aa184cf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.16.webp new file mode 100755 index 0000000..a17705a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.17.webp new file mode 100755 index 0000000..7ab9fb5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.18.webp new file mode 100755 index 0000000..f66f921 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.19.webp new file mode 100755 index 0000000..d9cb483 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.2.webp new file mode 100755 index 0000000..4b02ecf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.20.webp new file mode 100755 index 0000000..103a554 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.21.webp new file mode 100755 index 0000000..9ead10b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.22.webp new file mode 100755 index 0000000..47de785 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.3.webp new file mode 100755 index 0000000..9fa295b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.4.webp new file mode 100755 index 0000000..a773ce9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.5.webp new file mode 100755 index 0000000..02836e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.6.webp new file mode 100755 index 0000000..c884a8d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.7.webp new file mode 100755 index 0000000..48fbcee Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.8.webp new file mode 100755 index 0000000..3adc71e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.9.webp new file mode 100755 index 0000000..7540a3a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.0.webp new file mode 100755 index 0000000..506e5df Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.1.webp new file mode 100755 index 0000000..7029cc2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.10.webp new file mode 100755 index 0000000..742c3b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.11.webp new file mode 100755 index 0000000..0a70622 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.12.webp new file mode 100755 index 0000000..1349a4c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.2.webp new file mode 100755 index 0000000..de8cd4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.3.webp new file mode 100755 index 0000000..f71e2ba Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.4.webp new file mode 100755 index 0000000..1cfc2b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.5.webp new file mode 100755 index 0000000..317a136 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.6.webp new file mode 100755 index 0000000..6efbdaa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.7.webp new file mode 100755 index 0000000..80999c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.8.webp new file mode 100755 index 0000000..489a8d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.9.webp new file mode 100755 index 0000000..7cafd4d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.0.webp new file mode 100755 index 0000000..aafe8ae Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.1.webp new file mode 100755 index 0000000..5462f86 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.10.webp new file mode 100755 index 0000000..a8e1928 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.11.webp new file mode 100755 index 0000000..b749f13 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.12.webp new file mode 100755 index 0000000..166fcb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.2.webp new file mode 100755 index 0000000..05f74b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.3.webp new file mode 100755 index 0000000..f57ea15 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.4.webp new file mode 100755 index 0000000..adc8757 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.5.webp new file mode 100755 index 0000000..7465902 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.6.webp new file mode 100755 index 0000000..f28046a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.7.webp new file mode 100755 index 0000000..a16de94 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.8.webp new file mode 100755 index 0000000..4c7fcf9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.9.webp new file mode 100755 index 0000000..1c48c4b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.0.webp new file mode 100755 index 0000000..8cfd05b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.1.webp new file mode 100755 index 0000000..5c14e2c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.10.webp new file mode 100755 index 0000000..5081177 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.11.webp new file mode 100755 index 0000000..84e827a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.12.webp new file mode 100755 index 0000000..166317d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.13.webp new file mode 100755 index 0000000..d91415e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.14.webp new file mode 100755 index 0000000..5a44ea6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.15.webp new file mode 100755 index 0000000..112ca54 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.16.webp new file mode 100755 index 0000000..2f68a97 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.17.webp new file mode 100755 index 0000000..529dc1c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.18.webp new file mode 100755 index 0000000..9f84503 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.19.webp new file mode 100755 index 0000000..6f424d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.2.webp new file mode 100755 index 0000000..d799b67 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.20.webp new file mode 100755 index 0000000..651ee07 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.21.webp new file mode 100755 index 0000000..5f033b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.3.webp new file mode 100755 index 0000000..ad7cb3b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.4.webp new file mode 100755 index 0000000..5b9c634 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.5.webp new file mode 100755 index 0000000..56b8670 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.6.webp new file mode 100755 index 0000000..5df4248 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.7.webp new file mode 100755 index 0000000..08ad8ce Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.8.webp new file mode 100755 index 0000000..45f811f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.9.webp new file mode 100755 index 0000000..bef4d21 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/f/human.tethyrian.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.0.webp new file mode 100755 index 0000000..093d34d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.1.webp new file mode 100755 index 0000000..ed23822 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.10.webp new file mode 100755 index 0000000..9e7afb1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.11.webp new file mode 100755 index 0000000..6ee97de Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.12.webp new file mode 100755 index 0000000..0fd0ce1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.13.webp new file mode 100755 index 0000000..5696a52 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.14.webp new file mode 100755 index 0000000..d62467e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.15.webp new file mode 100755 index 0000000..7ea6289 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.16.webp new file mode 100755 index 0000000..9aad4f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.2.webp new file mode 100755 index 0000000..f1f420d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.3.webp new file mode 100755 index 0000000..b69b8b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.4.webp new file mode 100755 index 0000000..c4ca71f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.5.webp new file mode 100755 index 0000000..fb0e784 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.6.webp new file mode 100755 index 0000000..dc10d59 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.7.webp new file mode 100755 index 0000000..8d937c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.8.webp new file mode 100755 index 0000000..52a8711 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.9.webp new file mode 100755 index 0000000..2d04eca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/human/tethyrian/old/m/human.tethyrian.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.0.webp new file mode 100755 index 0000000..4033a26 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.1.webp new file mode 100755 index 0000000..fb97703 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.10.webp new file mode 100755 index 0000000..684dfea Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.11.webp new file mode 100755 index 0000000..8783f6d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.12.webp new file mode 100755 index 0000000..58f9c2b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.13.webp new file mode 100755 index 0000000..22fa836 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.14.webp new file mode 100755 index 0000000..66d3459 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.15.webp new file mode 100755 index 0000000..4e0f7cf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.16.webp new file mode 100755 index 0000000..6177a7f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.17.webp new file mode 100755 index 0000000..8b7b129 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.18.webp new file mode 100755 index 0000000..9623c10 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.19.webp new file mode 100755 index 0000000..026fcc9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.2.webp new file mode 100755 index 0000000..0857fc9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.20.webp new file mode 100755 index 0000000..b03c513 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.21.webp new file mode 100755 index 0000000..2f51d1d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.22.webp new file mode 100755 index 0000000..c755ce0 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.23.webp new file mode 100755 index 0000000..04a483e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.24.webp new file mode 100755 index 0000000..54f0e14 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.25.webp new file mode 100755 index 0000000..12dccda Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.26.webp new file mode 100755 index 0000000..bbf1d19 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.27.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.27.webp new file mode 100755 index 0000000..12bd3e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.27.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.28.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.28.webp new file mode 100755 index 0000000..c7218fc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.28.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.29.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.29.webp new file mode 100755 index 0000000..983ad9e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.29.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.3.webp new file mode 100755 index 0000000..9b0fd73 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.30.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.30.webp new file mode 100755 index 0000000..2ceaf74 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.30.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.31.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.31.webp new file mode 100755 index 0000000..f2e91fb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.31.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.32.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.32.webp new file mode 100755 index 0000000..15e69df Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.32.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.33.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.33.webp new file mode 100755 index 0000000..9f6549a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.33.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.34.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.34.webp new file mode 100755 index 0000000..6db4931 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.34.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.35.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.35.webp new file mode 100755 index 0000000..7c57233 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.35.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.4.webp new file mode 100755 index 0000000..18cbff6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.5.webp new file mode 100755 index 0000000..3a25ea4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.6.webp new file mode 100755 index 0000000..648f191 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.7.webp new file mode 100755 index 0000000..ab8c179 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.8.webp new file mode 100755 index 0000000..5ac4177 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.9.webp new file mode 100755 index 0000000..d9740a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/f/tiefling._.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.0.webp new file mode 100755 index 0000000..8e7f367 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.1.webp new file mode 100755 index 0000000..f6d1be2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.10.webp new file mode 100755 index 0000000..2d891db Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.11.webp new file mode 100755 index 0000000..f8e8f17 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.12.webp new file mode 100755 index 0000000..5be6772 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.13.webp new file mode 100755 index 0000000..d9ad5be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.14.webp new file mode 100755 index 0000000..44f0aa3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.15.webp new file mode 100755 index 0000000..3f682ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.16.webp new file mode 100755 index 0000000..3b2f1be Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.17.webp new file mode 100755 index 0000000..8d15597 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.18.webp new file mode 100755 index 0000000..1792310 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.19.webp new file mode 100755 index 0000000..8afc8e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.2.webp new file mode 100755 index 0000000..c92e1e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.20.webp new file mode 100755 index 0000000..b0422a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.21.webp new file mode 100755 index 0000000..86ab535 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.22.webp new file mode 100755 index 0000000..231350d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.23.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.23.webp new file mode 100755 index 0000000..93e9cfd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.3.webp new file mode 100755 index 0000000..00b6db3 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.4.webp new file mode 100755 index 0000000..e0f17ac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.5.webp new file mode 100755 index 0000000..a0574fe Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.6.webp new file mode 100755 index 0000000..789d320 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.7.webp new file mode 100755 index 0000000..d987048 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.8.webp new file mode 100755 index 0000000..b797276 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.9.webp new file mode 100755 index 0000000..9dcb79c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/adult/m/tiefling._.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.0.webp new file mode 100755 index 0000000..1810064 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.1.webp new file mode 100755 index 0000000..429a8c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.10.webp new file mode 100755 index 0000000..bef6cb7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.11.webp new file mode 100755 index 0000000..9e989d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.12.webp new file mode 100755 index 0000000..f1f3bcc Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.13.webp new file mode 100755 index 0000000..5efffac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.14.webp new file mode 100755 index 0000000..45a574a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.2.webp new file mode 100755 index 0000000..38e25a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.3.webp new file mode 100755 index 0000000..ef02f95 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.4.webp new file mode 100755 index 0000000..4b0b003 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.5.webp new file mode 100755 index 0000000..895b6ca Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.6.webp new file mode 100755 index 0000000..1a7175c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.7.webp new file mode 100755 index 0000000..786f991 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.8.webp new file mode 100755 index 0000000..886e63d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.9.webp new file mode 100755 index 0000000..e64475b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/f/tiefling._.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.0.webp new file mode 100755 index 0000000..ccbd0a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.1.webp new file mode 100755 index 0000000..306683e Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.10.webp new file mode 100755 index 0000000..fdadf9a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.11.webp new file mode 100755 index 0000000..4769858 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.2.webp new file mode 100755 index 0000000..b21f116 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.3.webp new file mode 100755 index 0000000..0c735f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.4.webp new file mode 100755 index 0000000..1e1abe6 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.5.webp new file mode 100755 index 0000000..c1103b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.6.webp new file mode 100755 index 0000000..cb73b9a Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.7.webp new file mode 100755 index 0000000..305d307 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.8.webp new file mode 100755 index 0000000..944e654 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.9.webp new file mode 100755 index 0000000..517154d Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/kid/m/tiefling._.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.0.webp new file mode 100755 index 0000000..f3500c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.1.webp new file mode 100755 index 0000000..0e9c2ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.10.webp new file mode 100755 index 0000000..49e5694 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.11.webp new file mode 100755 index 0000000..e216e28 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.12.webp new file mode 100755 index 0000000..b0119aa Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.13.webp new file mode 100755 index 0000000..1152c84 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.14.webp new file mode 100755 index 0000000..54f69a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.15.webp new file mode 100755 index 0000000..d5e0867 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.2.webp new file mode 100755 index 0000000..11106f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.3.webp new file mode 100755 index 0000000..9f47b1c Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.4.webp new file mode 100755 index 0000000..ee2ae68 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.5.webp new file mode 100755 index 0000000..5ffe7eb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.6.webp new file mode 100755 index 0000000..f6166e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.7.webp new file mode 100755 index 0000000..ca65b11 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.8.webp new file mode 100755 index 0000000..1ae217f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.9.webp new file mode 100755 index 0000000..8f631a4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/f/tiefling._.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.0.webp new file mode 100755 index 0000000..3689f9f Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.1.webp new file mode 100755 index 0000000..8128afd Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.10.webp new file mode 100755 index 0000000..384baaf Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.2.webp new file mode 100755 index 0000000..9fdc399 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.3.webp new file mode 100755 index 0000000..72557fb Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.4.webp new file mode 100755 index 0000000..615b8ff Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.5.webp new file mode 100755 index 0000000..337b7ac Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.6.webp new file mode 100755 index 0000000..ece0ae1 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.7.webp new file mode 100755 index 0000000..534eff4 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.8.webp new file mode 100755 index 0000000..6761364 Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.9.webp new file mode 100755 index 0000000..3808e3b Binary files /dev/null and b/test_tube_merchant/assets/traider/portrait/tiefling/normal/old/m/tiefling._.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (1).webp new file mode 100755 index 0000000..5afd635 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (2).webp new file mode 100755 index 0000000..8698ef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (3).webp new file mode 100755 index 0000000..65663e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraArcticTern (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (1).webp new file mode 100755 index 0000000..d378130 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (10).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (10).webp new file mode 100755 index 0000000..2de7a99 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (10).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (11).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (11).webp new file mode 100755 index 0000000..9a82a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (11).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (12).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (12).webp new file mode 100755 index 0000000..b0cd379 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (12).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (2).webp new file mode 100755 index 0000000..5333eac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (3).webp new file mode 100755 index 0000000..fa70379 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (4).webp new file mode 100755 index 0000000..308fd2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (5).webp new file mode 100755 index 0000000..0b324da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (6).webp new file mode 100755 index 0000000..ee93494 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (7).webp new file mode 100755 index 0000000..ff5fd55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (8).webp new file mode 100755 index 0000000..a2ebd36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (9).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (9).webp new file mode 100755 index 0000000..faf2217 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraBirdOfParadise (9).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (1).webp new file mode 100755 index 0000000..ab36815 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (2).webp new file mode 100755 index 0000000..e9e344e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (3).webp new file mode 100755 index 0000000..07a657e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraDove (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (1).webp new file mode 100755 index 0000000..a26f696 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (2).webp new file mode 100755 index 0000000..36a8b65 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (3).webp new file mode 100755 index 0000000..db6557f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHoopoe (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (1).webp new file mode 100755 index 0000000..4741edd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (2).webp new file mode 100755 index 0000000..d4a3434 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (3).webp new file mode 100755 index 0000000..396043f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (4).webp new file mode 100755 index 0000000..3a4bebb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (5).webp new file mode 100755 index 0000000..ebb7460 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (6).webp new file mode 100755 index 0000000..1274158 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraHummingbird (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (1).webp new file mode 100755 index 0000000..d95ab85 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (10).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (10).webp new file mode 100755 index 0000000..43960f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (10).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (11).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (11).webp new file mode 100755 index 0000000..42fbd5b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (11).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (2).webp new file mode 100755 index 0000000..1388cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (3).webp new file mode 100755 index 0000000..d3f1d17 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (4).webp new file mode 100755 index 0000000..a555c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (5).webp new file mode 100755 index 0000000..d965611 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (6).webp new file mode 100755 index 0000000..cc5f19d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (7).webp new file mode 100755 index 0000000..f97df74 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (8).webp new file mode 100755 index 0000000..6753f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (9).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (9).webp new file mode 100755 index 0000000..74abedb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraPuffin (9).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (1).webp new file mode 100755 index 0000000..0eccc7e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (2).webp new file mode 100755 index 0000000..5e1f5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (3).webp new file mode 100755 index 0000000..45b094f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (4).webp new file mode 100755 index 0000000..1199552 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (5).webp new file mode 100755 index 0000000..06e118a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (6).webp new file mode 100755 index 0000000..e2b1877 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (7).webp new file mode 100755 index 0000000..dd27eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (8).webp new file mode 100755 index 0000000..147494c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraToucan (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (1).webp new file mode 100755 index 0000000..8f00ee5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (2).webp new file mode 100755 index 0000000..4ed8cd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (3).webp new file mode 100755 index 0000000..3942806 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (4).webp new file mode 100755 index 0000000..6abc9f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (5).webp new file mode 100755 index 0000000..0553c42 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (6).webp new file mode 100755 index 0000000..cb30fc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (7).webp new file mode 100755 index 0000000..5011a37 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (8).webp new file mode 100755 index 0000000..f3da75d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/adult/u/AarakocraVulture (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (1).webp new file mode 100755 index 0000000..5afd635 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (2).webp new file mode 100755 index 0000000..8698ef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (3).webp new file mode 100755 index 0000000..65663e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraArcticTern (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (1).webp new file mode 100755 index 0000000..d378130 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (10).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (10).webp new file mode 100755 index 0000000..2de7a99 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (10).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (11).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (11).webp new file mode 100755 index 0000000..9a82a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (11).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (12).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (12).webp new file mode 100755 index 0000000..b0cd379 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (12).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (2).webp new file mode 100755 index 0000000..5333eac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (3).webp new file mode 100755 index 0000000..fa70379 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (4).webp new file mode 100755 index 0000000..308fd2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (5).webp new file mode 100755 index 0000000..0b324da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (6).webp new file mode 100755 index 0000000..ee93494 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (7).webp new file mode 100755 index 0000000..ff5fd55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (8).webp new file mode 100755 index 0000000..a2ebd36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (9).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (9).webp new file mode 100755 index 0000000..faf2217 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraBirdOfParadise (9).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (1).webp new file mode 100755 index 0000000..ab36815 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (2).webp new file mode 100755 index 0000000..e9e344e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (3).webp new file mode 100755 index 0000000..07a657e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraDove (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (1).webp new file mode 100755 index 0000000..a26f696 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (2).webp new file mode 100755 index 0000000..36a8b65 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (3).webp new file mode 100755 index 0000000..db6557f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHoopoe (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (1).webp new file mode 100755 index 0000000..4741edd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (2).webp new file mode 100755 index 0000000..d4a3434 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (3).webp new file mode 100755 index 0000000..396043f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (4).webp new file mode 100755 index 0000000..3a4bebb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (5).webp new file mode 100755 index 0000000..ebb7460 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (6).webp new file mode 100755 index 0000000..1274158 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraHummingbird (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (1).webp new file mode 100755 index 0000000..d95ab85 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (10).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (10).webp new file mode 100755 index 0000000..43960f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (10).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (11).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (11).webp new file mode 100755 index 0000000..42fbd5b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (11).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (2).webp new file mode 100755 index 0000000..1388cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (3).webp new file mode 100755 index 0000000..d3f1d17 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (4).webp new file mode 100755 index 0000000..a555c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (5).webp new file mode 100755 index 0000000..d965611 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (6).webp new file mode 100755 index 0000000..cc5f19d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (7).webp new file mode 100755 index 0000000..f97df74 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (8).webp new file mode 100755 index 0000000..6753f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (9).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (9).webp new file mode 100755 index 0000000..74abedb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraPuffin (9).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (1).webp new file mode 100755 index 0000000..0eccc7e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (2).webp new file mode 100755 index 0000000..5e1f5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (3).webp new file mode 100755 index 0000000..45b094f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (4).webp new file mode 100755 index 0000000..1199552 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (5).webp new file mode 100755 index 0000000..06e118a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (6).webp new file mode 100755 index 0000000..e2b1877 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (7).webp new file mode 100755 index 0000000..dd27eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (8).webp new file mode 100755 index 0000000..147494c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraToucan (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (1).webp new file mode 100755 index 0000000..8f00ee5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (2).webp new file mode 100755 index 0000000..4ed8cd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (3).webp new file mode 100755 index 0000000..3942806 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (4).webp new file mode 100755 index 0000000..6abc9f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (5).webp new file mode 100755 index 0000000..0553c42 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (6).webp new file mode 100755 index 0000000..cb30fc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (7).webp new file mode 100755 index 0000000..5011a37 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (8).webp new file mode 100755 index 0000000..f3da75d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/kid/u/AarakocraVulture (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (1).webp new file mode 100755 index 0000000..5afd635 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (2).webp new file mode 100755 index 0000000..8698ef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (3).webp new file mode 100755 index 0000000..65663e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraArcticTern (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (1).webp new file mode 100755 index 0000000..d378130 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (10).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (10).webp new file mode 100755 index 0000000..2de7a99 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (10).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (11).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (11).webp new file mode 100755 index 0000000..9a82a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (11).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (12).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (12).webp new file mode 100755 index 0000000..b0cd379 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (12).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (2).webp new file mode 100755 index 0000000..5333eac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (3).webp new file mode 100755 index 0000000..fa70379 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (4).webp new file mode 100755 index 0000000..308fd2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (5).webp new file mode 100755 index 0000000..0b324da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (6).webp new file mode 100755 index 0000000..ee93494 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (7).webp new file mode 100755 index 0000000..ff5fd55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (8).webp new file mode 100755 index 0000000..a2ebd36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (9).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (9).webp new file mode 100755 index 0000000..faf2217 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraBirdOfParadise (9).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (1).webp new file mode 100755 index 0000000..ab36815 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (2).webp new file mode 100755 index 0000000..e9e344e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (3).webp new file mode 100755 index 0000000..07a657e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraDove (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (1).webp new file mode 100755 index 0000000..a26f696 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (2).webp new file mode 100755 index 0000000..36a8b65 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (3).webp new file mode 100755 index 0000000..db6557f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHoopoe (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (1).webp new file mode 100755 index 0000000..4741edd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (2).webp new file mode 100755 index 0000000..d4a3434 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (3).webp new file mode 100755 index 0000000..396043f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (4).webp new file mode 100755 index 0000000..3a4bebb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (5).webp new file mode 100755 index 0000000..ebb7460 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (6).webp new file mode 100755 index 0000000..1274158 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraHummingbird (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (1).webp new file mode 100755 index 0000000..d95ab85 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (10).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (10).webp new file mode 100755 index 0000000..43960f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (10).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (11).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (11).webp new file mode 100755 index 0000000..42fbd5b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (11).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (2).webp new file mode 100755 index 0000000..1388cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (3).webp new file mode 100755 index 0000000..d3f1d17 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (4).webp new file mode 100755 index 0000000..a555c1b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (5).webp new file mode 100755 index 0000000..d965611 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (6).webp new file mode 100755 index 0000000..cc5f19d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (7).webp new file mode 100755 index 0000000..f97df74 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (8).webp new file mode 100755 index 0000000..6753f32 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (9).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (9).webp new file mode 100755 index 0000000..74abedb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraPuffin (9).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (1).webp new file mode 100755 index 0000000..0eccc7e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (2).webp new file mode 100755 index 0000000..5e1f5a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (3).webp new file mode 100755 index 0000000..45b094f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (4).webp new file mode 100755 index 0000000..1199552 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (5).webp new file mode 100755 index 0000000..06e118a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (6).webp new file mode 100755 index 0000000..e2b1877 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (7).webp new file mode 100755 index 0000000..dd27eb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (8).webp new file mode 100755 index 0000000..147494c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraToucan (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (1).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (1).webp new file mode 100755 index 0000000..8f00ee5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (1).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (2).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (2).webp new file mode 100755 index 0000000..4ed8cd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (2).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (3).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (3).webp new file mode 100755 index 0000000..3942806 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (3).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (4).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (4).webp new file mode 100755 index 0000000..6abc9f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (4).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (5).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (5).webp new file mode 100755 index 0000000..0553c42 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (5).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (6).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (6).webp new file mode 100755 index 0000000..cb30fc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (6).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (7).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (7).webp new file mode 100755 index 0000000..5011a37 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (7).webp differ diff --git a/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (8).webp b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (8).webp new file mode 100755 index 0000000..f3da75d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/aaracocra/normal/old/u/AarakocraVulture (8).webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.0.webp new file mode 100755 index 0000000..32d7015 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.1.webp new file mode 100755 index 0000000..ccd8a70 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.10.webp new file mode 100755 index 0000000..efcc477 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.11.webp new file mode 100755 index 0000000..e34b7fa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.12.webp new file mode 100755 index 0000000..c7a8d7d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.13.webp new file mode 100755 index 0000000..b7ca913 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.14.webp new file mode 100755 index 0000000..f82fa67 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.15.webp new file mode 100755 index 0000000..467b9cc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.16.webp new file mode 100755 index 0000000..213750d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.17.webp new file mode 100755 index 0000000..4f81392 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.18.webp new file mode 100755 index 0000000..ba744c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.19.webp new file mode 100755 index 0000000..7c6ceb3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.2.webp new file mode 100755 index 0000000..661de12 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.3.webp new file mode 100755 index 0000000..37a2f37 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.4.webp new file mode 100755 index 0000000..8e15925 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.5.webp new file mode 100755 index 0000000..d1b26dc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.6.webp new file mode 100755 index 0000000..3f0a792 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.7.webp new file mode 100755 index 0000000..ba9bdc6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.8.webp new file mode 100755 index 0000000..306cbb9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.9.webp new file mode 100755 index 0000000..684f733 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/f/dwarf.duergar.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.0.webp new file mode 100755 index 0000000..41cf8dd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.1.webp new file mode 100755 index 0000000..723eaf7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.10.webp new file mode 100755 index 0000000..047b396 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.11.webp new file mode 100755 index 0000000..f1b79b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.12.webp new file mode 100755 index 0000000..c391bfa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.13.webp new file mode 100755 index 0000000..1aecd3e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.14.webp new file mode 100755 index 0000000..b63877b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.15.webp new file mode 100755 index 0000000..fa92253 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.16.webp new file mode 100755 index 0000000..57b1844 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.17.webp new file mode 100755 index 0000000..93f78bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.18.webp new file mode 100755 index 0000000..0fa2fff Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.19.webp new file mode 100755 index 0000000..6d68d5e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.2.webp new file mode 100755 index 0000000..ad317fa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.3.webp new file mode 100755 index 0000000..00dd53f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.4.webp new file mode 100755 index 0000000..463441b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.5.webp new file mode 100755 index 0000000..682ce49 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.6.webp new file mode 100755 index 0000000..7de14af Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.7.webp new file mode 100755 index 0000000..c849cd2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.8.webp new file mode 100755 index 0000000..67a7c40 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.9.webp new file mode 100755 index 0000000..006f9de Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/adult/m/dwarf.duergar.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.0.webp new file mode 100755 index 0000000..b83e8f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.1.webp new file mode 100755 index 0000000..444f9c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.10.webp new file mode 100755 index 0000000..eba3ffc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.11.webp new file mode 100755 index 0000000..04d1474 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.12.webp new file mode 100755 index 0000000..4214a2b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.2.webp new file mode 100755 index 0000000..9f49740 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.3.webp new file mode 100755 index 0000000..844e71d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.4.webp new file mode 100755 index 0000000..a430bc7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.5.webp new file mode 100755 index 0000000..f63133e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.6.webp new file mode 100755 index 0000000..1ea1a0e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.7.webp new file mode 100755 index 0000000..67de270 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.8.webp new file mode 100755 index 0000000..4902145 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.9.webp new file mode 100755 index 0000000..bf5bf1d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/f/dwarf.duergar.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.0.webp new file mode 100755 index 0000000..70ee141 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.1.webp new file mode 100755 index 0000000..ecfd187 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.2.webp new file mode 100755 index 0000000..fbbca28 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.3.webp new file mode 100755 index 0000000..6794a2e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.4.webp new file mode 100755 index 0000000..428ebfb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/kid/m/dwarf.duergar.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.0.webp new file mode 100755 index 0000000..f3f9cf5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.1.webp new file mode 100755 index 0000000..ba78e3a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.2.webp new file mode 100755 index 0000000..8110f9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.3.webp new file mode 100755 index 0000000..9534a97 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.4.webp new file mode 100755 index 0000000..0df6f93 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/f/dwarf.duergar.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.0.webp new file mode 100755 index 0000000..e3ad75a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.1.webp new file mode 100755 index 0000000..a7f0b19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.2.webp new file mode 100755 index 0000000..21d9339 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.3.webp new file mode 100755 index 0000000..eb4f407 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.4.webp new file mode 100755 index 0000000..bb2b250 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.5.webp new file mode 100755 index 0000000..c374374 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/duergar/old/m/dwarf.duergar.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.0.webp new file mode 100755 index 0000000..b92129e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.1.webp new file mode 100755 index 0000000..365e07f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.10.webp new file mode 100755 index 0000000..f5152cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.11.webp new file mode 100755 index 0000000..78ef072 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.12.webp new file mode 100755 index 0000000..c80ae2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.13.webp new file mode 100755 index 0000000..eeb0084 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.2.webp new file mode 100755 index 0000000..8d835b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.3.webp new file mode 100755 index 0000000..0fc72ff Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.4.webp new file mode 100755 index 0000000..6dfc806 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.5.webp new file mode 100755 index 0000000..b77f9f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.6.webp new file mode 100755 index 0000000..229a178 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.7.webp new file mode 100755 index 0000000..68dfe52 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.8.webp new file mode 100755 index 0000000..44a0115 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.9.webp new file mode 100755 index 0000000..bb159be Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/f/dwarf.hill.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.0.webp new file mode 100755 index 0000000..ac8f94b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.1.webp new file mode 100755 index 0000000..b8048d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.10.webp new file mode 100755 index 0000000..6590970 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.11.webp new file mode 100755 index 0000000..632c6dc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.12.webp new file mode 100755 index 0000000..eb847aa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.13.webp new file mode 100755 index 0000000..66de369 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.14.webp new file mode 100755 index 0000000..772d17f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.15.webp new file mode 100755 index 0000000..55735cc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.16.webp new file mode 100755 index 0000000..02f911a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.17.webp new file mode 100755 index 0000000..411bd09 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.2.webp new file mode 100755 index 0000000..578bb49 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.3.webp new file mode 100755 index 0000000..27c9a16 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.4.webp new file mode 100755 index 0000000..5233e25 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.5.webp new file mode 100755 index 0000000..0067730 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.6.webp new file mode 100755 index 0000000..50634ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.7.webp new file mode 100755 index 0000000..4b57f46 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.8.webp new file mode 100755 index 0000000..cd13972 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.9.webp new file mode 100755 index 0000000..463dec1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/adult/m/dwarf.hill.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.0.webp new file mode 100755 index 0000000..28f4476 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.1.webp new file mode 100755 index 0000000..def4618 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.10.webp new file mode 100755 index 0000000..d757ea2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.11.webp new file mode 100755 index 0000000..127ee54 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.12.webp new file mode 100755 index 0000000..29bde8e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.13.webp new file mode 100755 index 0000000..129a400 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.14.webp new file mode 100755 index 0000000..6eb11f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.2.webp new file mode 100755 index 0000000..4e61d02 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.3.webp new file mode 100755 index 0000000..c1479b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.4.webp new file mode 100755 index 0000000..f49b934 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.5.webp new file mode 100755 index 0000000..4b9b1bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.6.webp new file mode 100755 index 0000000..d75bf8a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.7.webp new file mode 100755 index 0000000..ecc9ebf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.8.webp new file mode 100755 index 0000000..3d07b09 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.9.webp new file mode 100755 index 0000000..7a2837e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/f/dwarf.hill.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.0.webp new file mode 100755 index 0000000..ac2b5aa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.1.webp new file mode 100755 index 0000000..de6d35a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.10.webp new file mode 100755 index 0000000..45e9b9d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.11.webp new file mode 100755 index 0000000..106ab9f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.12.webp new file mode 100755 index 0000000..c861f33 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.13.webp new file mode 100755 index 0000000..bc23be3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.2.webp new file mode 100755 index 0000000..bbb2a39 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.3.webp new file mode 100755 index 0000000..3a15599 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.4.webp new file mode 100755 index 0000000..11577f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.5.webp new file mode 100755 index 0000000..476b330 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.6.webp new file mode 100755 index 0000000..bea3a51 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.7.webp new file mode 100755 index 0000000..017cc82 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.8.webp new file mode 100755 index 0000000..b8c146a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.9.webp new file mode 100755 index 0000000..3c3250c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/kid/m/dwarf.hill.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.0.webp new file mode 100755 index 0000000..a26648b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.1.webp new file mode 100755 index 0000000..baa583e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.10.webp new file mode 100755 index 0000000..d719ed4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.2.webp new file mode 100755 index 0000000..6c385c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.3.webp new file mode 100755 index 0000000..97f2d4c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.4.webp new file mode 100755 index 0000000..934b876 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.5.webp new file mode 100755 index 0000000..bc97c26 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.6.webp new file mode 100755 index 0000000..02e839c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.7.webp new file mode 100755 index 0000000..39c3b6e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.8.webp new file mode 100755 index 0000000..ca4e845 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.9.webp new file mode 100755 index 0000000..7a13050 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/f/dwarf.hill.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.0.webp new file mode 100755 index 0000000..cca9bbc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.1.webp new file mode 100755 index 0000000..07cf8cd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.10.webp new file mode 100755 index 0000000..6f0ef77 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.11.webp new file mode 100755 index 0000000..9e2a4b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.12.webp new file mode 100755 index 0000000..2e8e6ac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.13.webp new file mode 100755 index 0000000..e82d091 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.14.webp new file mode 100755 index 0000000..66d8079 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.15.webp new file mode 100755 index 0000000..3b9687d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.2.webp new file mode 100755 index 0000000..6b77298 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.3.webp new file mode 100755 index 0000000..abaa610 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.4.webp new file mode 100755 index 0000000..7c4ca47 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.5.webp new file mode 100755 index 0000000..dc40a7a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.6.webp new file mode 100755 index 0000000..06302a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.7.webp new file mode 100755 index 0000000..13ba443 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.8.webp new file mode 100755 index 0000000..de0344f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.9.webp new file mode 100755 index 0000000..234d9de Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/hill/old/m/dwarf.hill.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.0.webp new file mode 100755 index 0000000..e784b0c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.1.webp new file mode 100755 index 0000000..fd64a1f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.10.webp new file mode 100755 index 0000000..e2f8f6c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.11.webp new file mode 100755 index 0000000..cb0b6b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.12.webp new file mode 100755 index 0000000..f50ed34 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.13.webp new file mode 100755 index 0000000..8d16cce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.14.webp new file mode 100755 index 0000000..84b6b50 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.15.webp new file mode 100755 index 0000000..58bc3c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.16.webp new file mode 100755 index 0000000..c7afdef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.17.webp new file mode 100755 index 0000000..708bf68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.2.webp new file mode 100755 index 0000000..5f9912e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.3.webp new file mode 100755 index 0000000..9e0eebb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.4.webp new file mode 100755 index 0000000..92f06ca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.5.webp new file mode 100755 index 0000000..1e71465 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.6.webp new file mode 100755 index 0000000..20fe7d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.7.webp new file mode 100755 index 0000000..dec037d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.8.webp new file mode 100755 index 0000000..425483e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.9.webp new file mode 100755 index 0000000..a45c606 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/f/dwarf.mountain.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.0.webp new file mode 100755 index 0000000..f787b18 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.1.webp new file mode 100755 index 0000000..6b6867f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.10.webp new file mode 100755 index 0000000..8a8201d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.11.webp new file mode 100755 index 0000000..7fe5fe7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.12.webp new file mode 100755 index 0000000..43411f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.13.webp new file mode 100755 index 0000000..0719368 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.14.webp new file mode 100755 index 0000000..6b34272 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.2.webp new file mode 100755 index 0000000..2b37a82 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.3.webp new file mode 100755 index 0000000..19e5e00 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.4.webp new file mode 100755 index 0000000..2593f8c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.5.webp new file mode 100755 index 0000000..9e7ae3f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.6.webp new file mode 100755 index 0000000..a29fb78 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.7.webp new file mode 100755 index 0000000..bdbaccc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.8.webp new file mode 100755 index 0000000..fff0862 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.9.webp new file mode 100755 index 0000000..27d5623 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/adult/m/dwarf.mountain.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.0.webp new file mode 100755 index 0000000..9c4c821 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.1.webp new file mode 100755 index 0000000..f6d9ec1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.10.webp new file mode 100755 index 0000000..40f6016 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.11.webp new file mode 100755 index 0000000..f46840f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.12.webp new file mode 100755 index 0000000..cfad983 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.2.webp new file mode 100755 index 0000000..1699a22 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.3.webp new file mode 100755 index 0000000..b974ed1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.4.webp new file mode 100755 index 0000000..ed8afb3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.5.webp new file mode 100755 index 0000000..799c126 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.6.webp new file mode 100755 index 0000000..c5674cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.7.webp new file mode 100755 index 0000000..7ace8b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.8.webp new file mode 100755 index 0000000..0b1daeb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.9.webp new file mode 100755 index 0000000..9abdb02 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/f/dwarf.mountain.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.0.webp new file mode 100755 index 0000000..41e2ed2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.1.webp new file mode 100755 index 0000000..6dcecd4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.2.webp new file mode 100755 index 0000000..b15365f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.3.webp new file mode 100755 index 0000000..fd9dea9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.4.webp new file mode 100755 index 0000000..1c97678 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.5.webp new file mode 100755 index 0000000..80edb95 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.6.webp new file mode 100755 index 0000000..0376df1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.7.webp new file mode 100755 index 0000000..1320164 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.8.webp new file mode 100755 index 0000000..95eaa4e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.9.webp new file mode 100755 index 0000000..5b721cf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/kid/m/dwarf.mountain.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.0.webp new file mode 100755 index 0000000..0a3800d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.1.webp new file mode 100755 index 0000000..6d2609e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.10.webp new file mode 100755 index 0000000..d68eb5e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.11.webp new file mode 100755 index 0000000..c1c295d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.12.webp new file mode 100755 index 0000000..612ee78 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.13.webp new file mode 100755 index 0000000..35d25ae Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.2.webp new file mode 100755 index 0000000..d9b5ebe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.3.webp new file mode 100755 index 0000000..4841d68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.4.webp new file mode 100755 index 0000000..d4366f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.5.webp new file mode 100755 index 0000000..28cbcfa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.6.webp new file mode 100755 index 0000000..3eea39f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.7.webp new file mode 100755 index 0000000..c019ea6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.8.webp new file mode 100755 index 0000000..236f593 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.9.webp new file mode 100755 index 0000000..4b9171c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/f/dwarf.mountain.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.0.webp new file mode 100755 index 0000000..0d59eb2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.1.webp new file mode 100755 index 0000000..5653d47 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.2.webp new file mode 100755 index 0000000..fa8a7a2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.3.webp new file mode 100755 index 0000000..86621cc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.4.webp new file mode 100755 index 0000000..7d10d7a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.5.webp new file mode 100755 index 0000000..5a01229 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.6.webp new file mode 100755 index 0000000..57fd243 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.7.webp new file mode 100755 index 0000000..7875d6d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.8.webp new file mode 100755 index 0000000..5eb4e0d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/dwarf/mountain/old/m/dwarf.mountain.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.0.webp new file mode 100755 index 0000000..60a7dee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.1.webp new file mode 100755 index 0000000..873c2db Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.10.webp new file mode 100755 index 0000000..72e3470 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.11.webp new file mode 100755 index 0000000..f4bde6a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.12.webp new file mode 100755 index 0000000..36ed522 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.13.webp new file mode 100755 index 0000000..2cd567e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.14.webp new file mode 100755 index 0000000..63652f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.15.webp new file mode 100755 index 0000000..eea8522 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.16.webp new file mode 100755 index 0000000..b2f193d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.17.webp new file mode 100755 index 0000000..9b5e5af Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.18.webp new file mode 100755 index 0000000..faa3774 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.19.webp new file mode 100755 index 0000000..cee86e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.2.webp new file mode 100755 index 0000000..b5d4f50 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.20.webp new file mode 100755 index 0000000..2be15b6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.21.webp new file mode 100755 index 0000000..5a42740 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.22.webp new file mode 100755 index 0000000..69023d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.23.webp new file mode 100755 index 0000000..cf733ab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.24.webp new file mode 100755 index 0000000..c7ee5a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.25.webp new file mode 100755 index 0000000..2d7222e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.3.webp new file mode 100755 index 0000000..48cb2d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.4.webp new file mode 100755 index 0000000..3add9ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.5.webp new file mode 100755 index 0000000..99a8bda Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.6.webp new file mode 100755 index 0000000..50a81a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.7.webp new file mode 100755 index 0000000..55622e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.8.webp new file mode 100755 index 0000000..d10bd1e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.9.webp new file mode 100755 index 0000000..7a3527b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/f/elf.drow.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.0.webp new file mode 100755 index 0000000..434ee78 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.1.webp new file mode 100755 index 0000000..2980816 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.10.webp new file mode 100755 index 0000000..0dddf68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.11.webp new file mode 100755 index 0000000..6b1ef78 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.12.webp new file mode 100755 index 0000000..2025b71 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.13.webp new file mode 100755 index 0000000..1d2e94a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.14.webp new file mode 100755 index 0000000..6e7d824 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.15.webp new file mode 100755 index 0000000..3477eb3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.16.webp new file mode 100755 index 0000000..69aaa76 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.17.webp new file mode 100755 index 0000000..a50f342 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.18.webp new file mode 100755 index 0000000..0327d72 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.2.webp new file mode 100755 index 0000000..b6250f6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.3.webp new file mode 100755 index 0000000..270f926 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.4.webp new file mode 100755 index 0000000..9b79784 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.5.webp new file mode 100755 index 0000000..b50bba5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.6.webp new file mode 100755 index 0000000..c7acda6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.7.webp new file mode 100755 index 0000000..6cac43f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.8.webp new file mode 100755 index 0000000..ac7d87a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.9.webp new file mode 100755 index 0000000..87208b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/adult/m/elf.drow.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.0.webp new file mode 100755 index 0000000..f42638d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.1.webp new file mode 100755 index 0000000..ac51a73 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.2.webp new file mode 100755 index 0000000..72f726f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.3.webp new file mode 100755 index 0000000..f8415f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.4.webp new file mode 100755 index 0000000..92eb224 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.5.webp new file mode 100755 index 0000000..0db3f2d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.6.webp new file mode 100755 index 0000000..31bea32 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.7.webp new file mode 100755 index 0000000..726804b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/f/elf.drow.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.0.webp new file mode 100755 index 0000000..cc76a26 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.1.webp new file mode 100755 index 0000000..51fa0c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.10.webp new file mode 100755 index 0000000..5008b13 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.2.webp new file mode 100755 index 0000000..74746a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.3.webp new file mode 100755 index 0000000..ee9d124 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.4.webp new file mode 100755 index 0000000..3b2df77 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.5.webp new file mode 100755 index 0000000..72383fd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.6.webp new file mode 100755 index 0000000..6ca2788 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.7.webp new file mode 100755 index 0000000..128c45d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.8.webp new file mode 100755 index 0000000..718735a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.9.webp new file mode 100755 index 0000000..d920649 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/kid/m/elf.drow.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.0.webp new file mode 100755 index 0000000..d2ae7cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.1.webp new file mode 100755 index 0000000..4c872f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.2.webp new file mode 100755 index 0000000..a3f6ed4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.3.webp new file mode 100755 index 0000000..61b39ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.4.webp new file mode 100755 index 0000000..c9c9650 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.5.webp new file mode 100755 index 0000000..f7751b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.6.webp new file mode 100755 index 0000000..2a5868d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.7.webp new file mode 100755 index 0000000..33d0b26 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.8.webp new file mode 100755 index 0000000..9e7903e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.9.webp new file mode 100755 index 0000000..337711e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/f/elf.drow.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.0.webp new file mode 100755 index 0000000..bd3e25a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.1.webp new file mode 100755 index 0000000..3aea6ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.2.webp new file mode 100755 index 0000000..7f95c6d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.3.webp new file mode 100755 index 0000000..d34005b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.4.webp new file mode 100755 index 0000000..75224ae Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.5.webp new file mode 100755 index 0000000..6efae75 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.6.webp new file mode 100755 index 0000000..fec21f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.7.webp new file mode 100755 index 0000000..f57a179 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.8.webp new file mode 100755 index 0000000..66d53c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/drow/old/m/elf.drow.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.0.webp new file mode 100755 index 0000000..bdf4d59 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.1.webp new file mode 100755 index 0000000..84f4f3e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.10.webp new file mode 100755 index 0000000..4dd1d4b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.11.webp new file mode 100755 index 0000000..0d98b54 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.2.webp new file mode 100755 index 0000000..35b9b6c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.3.webp new file mode 100755 index 0000000..f6aa629 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.4.webp new file mode 100755 index 0000000..8334628 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.5.webp new file mode 100755 index 0000000..ddf95d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.6.webp new file mode 100755 index 0000000..62c70f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.7.webp new file mode 100755 index 0000000..142b05e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.8.webp new file mode 100755 index 0000000..4bda024 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.9.webp new file mode 100755 index 0000000..c158e19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/f/elf.high-sun.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.0.webp new file mode 100755 index 0000000..274f1e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.1.webp new file mode 100755 index 0000000..b720cd2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.10.webp new file mode 100755 index 0000000..9f56a13 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.11.webp new file mode 100755 index 0000000..d50b69c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.12.webp new file mode 100755 index 0000000..6546cf8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.2.webp new file mode 100755 index 0000000..c7361b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.3.webp new file mode 100755 index 0000000..d174765 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.4.webp new file mode 100755 index 0000000..9e695fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.5.webp new file mode 100755 index 0000000..9ace172 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.6.webp new file mode 100755 index 0000000..ad0dafe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.7.webp new file mode 100755 index 0000000..38e5ea4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.8.webp new file mode 100755 index 0000000..8f486ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.9.webp new file mode 100755 index 0000000..47e7bcb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/adult/m/elf.high-sun.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.0.webp new file mode 100755 index 0000000..fdd3e36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.1.webp new file mode 100755 index 0000000..e8d4571 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.2.webp new file mode 100755 index 0000000..96d2ecb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.3.webp new file mode 100755 index 0000000..a3b4293 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.4.webp new file mode 100755 index 0000000..0b64270 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.5.webp new file mode 100755 index 0000000..fe4b676 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.6.webp new file mode 100755 index 0000000..4ac682f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.7.webp new file mode 100755 index 0000000..64c1497 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/f/elf.high-sun.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.0.webp new file mode 100755 index 0000000..2c36c1f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.1.webp new file mode 100755 index 0000000..c43fdca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.2.webp new file mode 100755 index 0000000..bae1738 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.3.webp new file mode 100755 index 0000000..4961e30 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.4.webp new file mode 100755 index 0000000..d69a4f7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.5.webp new file mode 100755 index 0000000..b5e2f19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.6.webp new file mode 100755 index 0000000..cb2c246 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/kid/m/elf.high-sun.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.0.webp new file mode 100755 index 0000000..5ce6371 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.1.webp new file mode 100755 index 0000000..371f627 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.2.webp new file mode 100755 index 0000000..7806c21 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.3.webp new file mode 100755 index 0000000..a479fb3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.4.webp new file mode 100755 index 0000000..cdf94d3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.5.webp new file mode 100755 index 0000000..9d855e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.6.webp new file mode 100755 index 0000000..270aac1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.7.webp new file mode 100755 index 0000000..07a9b5c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.8.webp new file mode 100755 index 0000000..ed87ed0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.9.webp new file mode 100755 index 0000000..06c576e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/f/elf.high-sun.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.0.webp new file mode 100755 index 0000000..d16aef5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.1.webp new file mode 100755 index 0000000..5038ee6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.10.webp new file mode 100755 index 0000000..f1b81fc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.11.webp new file mode 100755 index 0000000..4ac2672 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.12.webp new file mode 100755 index 0000000..251e6d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.13.webp new file mode 100755 index 0000000..359aab8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.14.webp new file mode 100755 index 0000000..77ca6ad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.2.webp new file mode 100755 index 0000000..5273e94 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.3.webp new file mode 100755 index 0000000..5cbab64 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.4.webp new file mode 100755 index 0000000..2dddd74 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.5.webp new file mode 100755 index 0000000..934d30b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.6.webp new file mode 100755 index 0000000..64e2660 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.7.webp new file mode 100755 index 0000000..780d9a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.8.webp new file mode 100755 index 0000000..889bbd3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.9.webp new file mode 100755 index 0000000..d77385d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high sun/old/m/elf.high-sun.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.0.webp new file mode 100755 index 0000000..b3728e0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.1.webp new file mode 100755 index 0000000..233e9f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.10.webp new file mode 100755 index 0000000..78cf3d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.11.webp new file mode 100755 index 0000000..0e0ca83 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.12.webp new file mode 100755 index 0000000..00f9728 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.13.webp new file mode 100755 index 0000000..7d0260d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.14.webp new file mode 100755 index 0000000..dc9a8f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.15.webp new file mode 100755 index 0000000..50f2a7e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.16.webp new file mode 100755 index 0000000..2af59cd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.17.webp new file mode 100755 index 0000000..784596f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.18.webp new file mode 100755 index 0000000..11fa7f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.2.webp new file mode 100755 index 0000000..5e4d044 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.3.webp new file mode 100755 index 0000000..df485d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.4.webp new file mode 100755 index 0000000..585921c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.5.webp new file mode 100755 index 0000000..f194d1c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.6.webp new file mode 100755 index 0000000..9d2da18 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.7.webp new file mode 100755 index 0000000..2921eea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.8.webp new file mode 100755 index 0000000..e40e6e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.9.webp new file mode 100755 index 0000000..30a1ab8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/f/elf.high-moon.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.0.webp new file mode 100755 index 0000000..8e6fd60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.1.webp new file mode 100755 index 0000000..3feddb4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.10.webp new file mode 100755 index 0000000..fb7eec3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.11.webp new file mode 100755 index 0000000..4a85bce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.2.webp new file mode 100755 index 0000000..b38563c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.3.webp new file mode 100755 index 0000000..76a9aa9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.4.webp new file mode 100755 index 0000000..7545aea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.5.webp new file mode 100755 index 0000000..41451e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.6.webp new file mode 100755 index 0000000..31d85dc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.7.webp new file mode 100755 index 0000000..f73b2e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.8.webp new file mode 100755 index 0000000..027e88e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.9.webp new file mode 100755 index 0000000..0c2b27d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/adult/m/elf.high-moon.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.0.webp new file mode 100755 index 0000000..0753a3d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.1.webp new file mode 100755 index 0000000..3e661c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.10.webp new file mode 100755 index 0000000..c6f920a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.11.webp new file mode 100755 index 0000000..ab4bdaf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.2.webp new file mode 100755 index 0000000..528f3eb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.3.webp new file mode 100755 index 0000000..fc996fd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.4.webp new file mode 100755 index 0000000..c2868b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.5.webp new file mode 100755 index 0000000..c5b2044 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.6.webp new file mode 100755 index 0000000..b77691e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.7.webp new file mode 100755 index 0000000..f0dba29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.8.webp new file mode 100755 index 0000000..8361710 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.9.webp new file mode 100755 index 0000000..3c21e93 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/f/elf.high-moon.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.0.webp new file mode 100755 index 0000000..b43f5a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.1.webp new file mode 100755 index 0000000..95922c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.10.webp new file mode 100755 index 0000000..a66b159 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.11.webp new file mode 100755 index 0000000..174ec6a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.12.webp new file mode 100755 index 0000000..ab07374 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.2.webp new file mode 100755 index 0000000..6b12eba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.3.webp new file mode 100755 index 0000000..79165ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.4.webp new file mode 100755 index 0000000..40cb7ae Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.5.webp new file mode 100755 index 0000000..7aae78c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.6.webp new file mode 100755 index 0000000..961dc38 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.7.webp new file mode 100755 index 0000000..3834668 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.8.webp new file mode 100755 index 0000000..86e286a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.9.webp new file mode 100755 index 0000000..e502434 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/kid/m/elf.high-moon.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.0.webp new file mode 100755 index 0000000..28e273f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.1.webp new file mode 100755 index 0000000..35cc291 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.10.webp new file mode 100755 index 0000000..4caa986 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.11.webp new file mode 100755 index 0000000..32391a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.12.webp new file mode 100755 index 0000000..4a74628 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.13.webp new file mode 100755 index 0000000..c4f2aad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.14.webp new file mode 100755 index 0000000..0630790 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.15.webp new file mode 100755 index 0000000..6332d4c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.16.webp new file mode 100755 index 0000000..251eb2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.17.webp new file mode 100755 index 0000000..544bda7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.18.webp new file mode 100755 index 0000000..2b22fab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.19.webp new file mode 100755 index 0000000..4f37a22 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.2.webp new file mode 100755 index 0000000..a2263b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.20.webp new file mode 100755 index 0000000..07171f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.21.webp new file mode 100755 index 0000000..31763fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.3.webp new file mode 100755 index 0000000..08f80e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.4.webp new file mode 100755 index 0000000..a5f2546 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.5.webp new file mode 100755 index 0000000..c44ec0f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.6.webp new file mode 100755 index 0000000..baa409b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.7.webp new file mode 100755 index 0000000..c9fa644 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.8.webp new file mode 100755 index 0000000..048d29b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.9.webp new file mode 100755 index 0000000..9e4d106 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/f/elf.high-moon.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.0.webp new file mode 100755 index 0000000..0759ba7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.1.webp new file mode 100755 index 0000000..b806c29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.2.webp new file mode 100755 index 0000000..0db402f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.3.webp new file mode 100755 index 0000000..d3febd6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.4.webp new file mode 100755 index 0000000..b6f50ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.5.webp new file mode 100755 index 0000000..c88e606 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.6.webp new file mode 100755 index 0000000..52c9590 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.7.webp new file mode 100755 index 0000000..de16515 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/high_moon/old/m/elf.high-moon.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.0.webp new file mode 100755 index 0000000..74ff920 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.1.webp new file mode 100755 index 0000000..fab158b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.10.webp new file mode 100755 index 0000000..065b03e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.11.webp new file mode 100755 index 0000000..e869310 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.12.webp new file mode 100755 index 0000000..f48fbd5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.13.webp new file mode 100755 index 0000000..af18edf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.14.webp new file mode 100755 index 0000000..20272d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.15.webp new file mode 100755 index 0000000..255638c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.16.webp new file mode 100755 index 0000000..90dc45a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.17.webp new file mode 100755 index 0000000..4f8d793 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.18.webp new file mode 100755 index 0000000..fc783c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.19.webp new file mode 100755 index 0000000..e171e8a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.2.webp new file mode 100755 index 0000000..fead3f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.20.webp new file mode 100755 index 0000000..67a7fd1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.21.webp new file mode 100755 index 0000000..971371a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.22.webp new file mode 100755 index 0000000..dc64eed Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.3.webp new file mode 100755 index 0000000..fcbc5ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.4.webp new file mode 100755 index 0000000..d91bab4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.5.webp new file mode 100755 index 0000000..f1ec91a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.6.webp new file mode 100755 index 0000000..10f144a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.7.webp new file mode 100755 index 0000000..3123bfa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.8.webp new file mode 100755 index 0000000..ebca760 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.9.webp new file mode 100755 index 0000000..159acf6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/f/elf.wood.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.0.webp new file mode 100755 index 0000000..9eb4464 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.1.webp new file mode 100755 index 0000000..2a09113 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.10.webp new file mode 100755 index 0000000..3bdfc60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.11.webp new file mode 100755 index 0000000..817da92 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.12.webp new file mode 100755 index 0000000..9f804fa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.13.webp new file mode 100755 index 0000000..57db75e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.14.webp new file mode 100755 index 0000000..7ce10ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.15.webp new file mode 100755 index 0000000..99a32dc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.16.webp new file mode 100755 index 0000000..8f7b41c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.17.webp new file mode 100755 index 0000000..bfbb3ed Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.2.webp new file mode 100755 index 0000000..a10ac55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.3.webp new file mode 100755 index 0000000..21b87c1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.4.webp new file mode 100755 index 0000000..823fffa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.5.webp new file mode 100755 index 0000000..6e55338 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.6.webp new file mode 100755 index 0000000..ea5c28d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.7.webp new file mode 100755 index 0000000..cabe135 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.8.webp new file mode 100755 index 0000000..5059f4d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.9.webp new file mode 100755 index 0000000..bdbe157 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/adult/m/elf.wood.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.0.webp new file mode 100755 index 0000000..5e1ee85 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.1.webp new file mode 100755 index 0000000..1b3e05d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.10.webp new file mode 100755 index 0000000..472c262 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.11.webp new file mode 100755 index 0000000..519761f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.12.webp new file mode 100755 index 0000000..94e7fb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.2.webp new file mode 100755 index 0000000..5fbca53 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.3.webp new file mode 100755 index 0000000..ba21e7f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.4.webp new file mode 100755 index 0000000..ab51660 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.5.webp new file mode 100755 index 0000000..64930f6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.6.webp new file mode 100755 index 0000000..fc8a869 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.7.webp new file mode 100755 index 0000000..305cc53 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.8.webp new file mode 100755 index 0000000..5d0d974 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.9.webp new file mode 100755 index 0000000..6be007d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/f/elf.wood.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.0.webp new file mode 100755 index 0000000..b9a5600 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.1.webp new file mode 100755 index 0000000..b96989c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.2.webp new file mode 100755 index 0000000..4482590 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.3.webp new file mode 100755 index 0000000..0e001b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.4.webp new file mode 100755 index 0000000..011581e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.5.webp new file mode 100755 index 0000000..76b51d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.6.webp new file mode 100755 index 0000000..dffd0e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.7.webp new file mode 100755 index 0000000..c678a1e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.8.webp new file mode 100755 index 0000000..d84dea6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/kid/m/elf.wood.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.0.webp new file mode 100755 index 0000000..f38138f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.1.webp new file mode 100755 index 0000000..287883d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.2.webp new file mode 100755 index 0000000..3320f90 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.3.webp new file mode 100755 index 0000000..f257e2f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.4.webp new file mode 100755 index 0000000..f6d8c29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.5.webp new file mode 100755 index 0000000..9135ab2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.6.webp new file mode 100755 index 0000000..78c3814 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.7.webp new file mode 100755 index 0000000..c495f29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/f/elf.wood.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.0.webp new file mode 100755 index 0000000..81e4470 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.1.webp new file mode 100755 index 0000000..68843a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.2.webp new file mode 100755 index 0000000..ba9aa55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.3.webp new file mode 100755 index 0000000..7e88739 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.4.webp new file mode 100755 index 0000000..fd2cd25 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.5.webp new file mode 100755 index 0000000..252dd4a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.6.webp new file mode 100755 index 0000000..29021c1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.7.webp new file mode 100755 index 0000000..e242ca2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/elf/wood/old/m/elf.wood.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.0.webp new file mode 100755 index 0000000..f45cdc7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.1.webp new file mode 100755 index 0000000..5d2fb68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.10.webp new file mode 100755 index 0000000..dfab54e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.11.webp new file mode 100755 index 0000000..50a782b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.12.webp new file mode 100755 index 0000000..e654f9c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.13.webp new file mode 100755 index 0000000..8fa91d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.14.webp new file mode 100755 index 0000000..5cff028 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.15.webp new file mode 100755 index 0000000..7bb8aea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.16.webp new file mode 100755 index 0000000..ac9418a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.17.webp new file mode 100755 index 0000000..f1f0e19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.18.webp new file mode 100755 index 0000000..e488462 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.19.webp new file mode 100755 index 0000000..18c0e88 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.2.webp new file mode 100755 index 0000000..e6874bf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.20.webp new file mode 100755 index 0000000..9b1b51f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.3.webp new file mode 100755 index 0000000..ba86cd8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.4.webp new file mode 100755 index 0000000..18bd458 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.5.webp new file mode 100755 index 0000000..c61869a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.6.webp new file mode 100755 index 0000000..4af5efa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.7.webp new file mode 100755 index 0000000..0288267 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.8.webp new file mode 100755 index 0000000..ec86018 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.9.webp new file mode 100755 index 0000000..75a51d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/f/gnome.forest.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.0.webp new file mode 100755 index 0000000..2a81172 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.1.webp new file mode 100755 index 0000000..7d3f113 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.10.webp new file mode 100755 index 0000000..1ca8650 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.11.webp new file mode 100755 index 0000000..c3a121e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.12.webp new file mode 100755 index 0000000..6957b0c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.13.webp new file mode 100755 index 0000000..b99ceab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.14.webp new file mode 100755 index 0000000..38b5d29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.15.webp new file mode 100755 index 0000000..454458d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.16.webp new file mode 100755 index 0000000..22c6c39 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.17.webp new file mode 100755 index 0000000..0af6d7b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.18.webp new file mode 100755 index 0000000..5a1e73d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.19.webp new file mode 100755 index 0000000..67bc41b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.2.webp new file mode 100755 index 0000000..e0d189e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.3.webp new file mode 100755 index 0000000..ab6f3c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.4.webp new file mode 100755 index 0000000..08f5d90 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.5.webp new file mode 100755 index 0000000..46aaf04 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.6.webp new file mode 100755 index 0000000..5220100 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.7.webp new file mode 100755 index 0000000..70d1a95 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.8.webp new file mode 100755 index 0000000..1af1e30 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.9.webp new file mode 100755 index 0000000..84b2eb4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/adult/m/gnome.forest.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.0.webp new file mode 100755 index 0000000..c04500f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.1.webp new file mode 100755 index 0000000..cee92fd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.2.webp new file mode 100755 index 0000000..fe5f1cf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.3.webp new file mode 100755 index 0000000..0a0b63e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.4.webp new file mode 100755 index 0000000..6c2cdef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.5.webp new file mode 100755 index 0000000..f7a8696 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/f/gnome.forest.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.0.webp new file mode 100755 index 0000000..a32b65c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.1.webp new file mode 100755 index 0000000..7832295 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.10.webp new file mode 100755 index 0000000..6431f96 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.11.webp new file mode 100755 index 0000000..c34640a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.2.webp new file mode 100755 index 0000000..c201c82 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.3.webp new file mode 100755 index 0000000..54e4ee3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.4.webp new file mode 100755 index 0000000..75850ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.5.webp new file mode 100755 index 0000000..a9f3d92 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.6.webp new file mode 100755 index 0000000..e342e9c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.7.webp new file mode 100755 index 0000000..0a4f1bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.8.webp new file mode 100755 index 0000000..6df44f8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.9.webp new file mode 100755 index 0000000..a2a3016 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/kid/m/gnome.forest.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.0.webp new file mode 100755 index 0000000..fb80c3c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.1.webp new file mode 100755 index 0000000..fcba81b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.10.webp new file mode 100755 index 0000000..6a2e929 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.11.webp new file mode 100755 index 0000000..33edda8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.12.webp new file mode 100755 index 0000000..24646df Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.2.webp new file mode 100755 index 0000000..88ec684 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.3.webp new file mode 100755 index 0000000..5ce86e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.4.webp new file mode 100755 index 0000000..9a44df5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.5.webp new file mode 100755 index 0000000..8bfee56 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.6.webp new file mode 100755 index 0000000..9b1fe72 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.7.webp new file mode 100755 index 0000000..dc8b41a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.8.webp new file mode 100755 index 0000000..b43eae8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.9.webp new file mode 100755 index 0000000..31263d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/f/gnome.forest.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.0.webp new file mode 100755 index 0000000..c377ddb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.1.webp new file mode 100755 index 0000000..df3003f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.10.webp new file mode 100755 index 0000000..fd6f974 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.11.webp new file mode 100755 index 0000000..3dbce52 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.12.webp new file mode 100755 index 0000000..c37d4ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.2.webp new file mode 100755 index 0000000..9e2dab2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.3.webp new file mode 100755 index 0000000..b27aace Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.4.webp new file mode 100755 index 0000000..291063e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.5.webp new file mode 100755 index 0000000..300be9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.6.webp new file mode 100755 index 0000000..d2734cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.7.webp new file mode 100755 index 0000000..16bdbf1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.8.webp new file mode 100755 index 0000000..96ebee8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.9.webp new file mode 100755 index 0000000..1d4eded Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Forest/old/m/gnome.forest.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.0.webp new file mode 100755 index 0000000..f26dccf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.1.webp new file mode 100755 index 0000000..7454589 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.10.webp new file mode 100755 index 0000000..0449214 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.11.webp new file mode 100755 index 0000000..9baa783 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.12.webp new file mode 100755 index 0000000..c0c4e7a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.13.webp new file mode 100755 index 0000000..49409d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.14.webp new file mode 100755 index 0000000..60f009b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.15.webp new file mode 100755 index 0000000..71c5c20 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.16.webp new file mode 100755 index 0000000..ca79fd0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.17.webp new file mode 100755 index 0000000..64bd913 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.18.webp new file mode 100755 index 0000000..97ab1e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.19.webp new file mode 100755 index 0000000..3b8b2fa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.2.webp new file mode 100755 index 0000000..195b7a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.3.webp new file mode 100755 index 0000000..9a0df1b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.4.webp new file mode 100755 index 0000000..915d4a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.5.webp new file mode 100755 index 0000000..f4b30fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.6.webp new file mode 100755 index 0000000..6a12cce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.7.webp new file mode 100755 index 0000000..36ac067 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.8.webp new file mode 100755 index 0000000..10f42a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.9.webp new file mode 100755 index 0000000..7682512 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/f/gnome.rock.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.0.webp new file mode 100755 index 0000000..8adc90b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.1.webp new file mode 100755 index 0000000..718c764 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.10.webp new file mode 100755 index 0000000..bf1d74f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.11.webp new file mode 100755 index 0000000..7544ec0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.12.webp new file mode 100755 index 0000000..02353b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.13.webp new file mode 100755 index 0000000..1a8a6a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.14.webp new file mode 100755 index 0000000..b0735a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.15.webp new file mode 100755 index 0000000..d662b75 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.16.webp new file mode 100755 index 0000000..9145627 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.17.webp new file mode 100755 index 0000000..e917d0c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.18.webp new file mode 100755 index 0000000..529c47c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.19.webp new file mode 100755 index 0000000..bc7d233 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.2.webp new file mode 100755 index 0000000..e193f99 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.20.webp new file mode 100755 index 0000000..cb932b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.3.webp new file mode 100755 index 0000000..939e9ac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.4.webp new file mode 100755 index 0000000..6f0524c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.5.webp new file mode 100755 index 0000000..a86ca30 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.6.webp new file mode 100755 index 0000000..88ab43c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.7.webp new file mode 100755 index 0000000..78477ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.8.webp new file mode 100755 index 0000000..f6db47a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.9.webp new file mode 100755 index 0000000..c9a9712 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/adult/m/gnome.rock.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.0.webp new file mode 100755 index 0000000..2c5ed4e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.1.webp new file mode 100755 index 0000000..67647cc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.2.webp new file mode 100755 index 0000000..fc004f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.3.webp new file mode 100755 index 0000000..49cdd8b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.4.webp new file mode 100755 index 0000000..f04db96 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.5.webp new file mode 100755 index 0000000..d203aec Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.6.webp new file mode 100755 index 0000000..000edea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/f/gnome.rock.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.0.webp new file mode 100755 index 0000000..deee816 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.1.webp new file mode 100755 index 0000000..a0b415b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.10.webp new file mode 100755 index 0000000..3a33a5f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.11.webp new file mode 100755 index 0000000..a177351 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.2.webp new file mode 100755 index 0000000..1370a5d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.3.webp new file mode 100755 index 0000000..8d6a0f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.4.webp new file mode 100755 index 0000000..e3f3605 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.5.webp new file mode 100755 index 0000000..3466f5e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.6.webp new file mode 100755 index 0000000..43e1e5a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.7.webp new file mode 100755 index 0000000..8903d62 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.8.webp new file mode 100755 index 0000000..2931aba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.9.webp new file mode 100755 index 0000000..c362f36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/kid/m/gnome.rock.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.0.webp new file mode 100755 index 0000000..bc2180a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.1.webp new file mode 100755 index 0000000..938f079 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.10.webp new file mode 100755 index 0000000..59ea624 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.11.webp new file mode 100755 index 0000000..e533144 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.12.webp new file mode 100755 index 0000000..6b9be2b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.13.webp new file mode 100755 index 0000000..1e2cc9a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.14.webp new file mode 100755 index 0000000..61633d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.15.webp new file mode 100755 index 0000000..cfd167e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.2.webp new file mode 100755 index 0000000..4b1b461 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.3.webp new file mode 100755 index 0000000..ba2de4b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.4.webp new file mode 100755 index 0000000..d5f1413 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.5.webp new file mode 100755 index 0000000..1d76ce1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.6.webp new file mode 100755 index 0000000..0d2dc12 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.7.webp new file mode 100755 index 0000000..029dce7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.8.webp new file mode 100755 index 0000000..8cf0d8e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.9.webp new file mode 100755 index 0000000..c5813b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/f/gnome.rock.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.0.webp new file mode 100755 index 0000000..c8bb340 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.1.webp new file mode 100755 index 0000000..402db91 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.10.webp new file mode 100755 index 0000000..88648b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.11.webp new file mode 100755 index 0000000..bd7dc18 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.12.webp new file mode 100755 index 0000000..62cb702 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.13.webp new file mode 100755 index 0000000..4721a80 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.2.webp new file mode 100755 index 0000000..a13831a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.3.webp new file mode 100755 index 0000000..984fdab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.4.webp new file mode 100755 index 0000000..d463929 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.5.webp new file mode 100755 index 0000000..11181df Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.6.webp new file mode 100755 index 0000000..87672d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.7.webp new file mode 100755 index 0000000..0c773f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.8.webp new file mode 100755 index 0000000..bb82da5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.9.webp new file mode 100755 index 0000000..65dcec9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/gnome/Rock/old/m/gnome.rock.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.0.webp new file mode 100755 index 0000000..ef3694b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.1.webp new file mode 100755 index 0000000..5002eec Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.10.webp new file mode 100755 index 0000000..7407173 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.11.webp new file mode 100755 index 0000000..551acf0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.12.webp new file mode 100755 index 0000000..451bb9b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.13.webp new file mode 100755 index 0000000..874cb0c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.14.webp new file mode 100755 index 0000000..66ccc6f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.15.webp new file mode 100755 index 0000000..4a59ead Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.16.webp new file mode 100755 index 0000000..4d9bab4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.17.webp new file mode 100755 index 0000000..1b71926 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.2.webp new file mode 100755 index 0000000..c4a6579 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.3.webp new file mode 100755 index 0000000..7618fde Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.4.webp new file mode 100755 index 0000000..32af19f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.5.webp new file mode 100755 index 0000000..e79cfd9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.6.webp new file mode 100755 index 0000000..d2ad502 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.7.webp new file mode 100755 index 0000000..0fcf4b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.8.webp new file mode 100755 index 0000000..6b2641f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.9.webp new file mode 100755 index 0000000..c2f67d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/f/halfling.lightfoot.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.0.webp new file mode 100755 index 0000000..16182fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.1.webp new file mode 100755 index 0000000..a123e13 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.10.webp new file mode 100755 index 0000000..08b3a9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.11.webp new file mode 100755 index 0000000..03fdb60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.12.webp new file mode 100755 index 0000000..902c9d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.13.webp new file mode 100755 index 0000000..5568212 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.14.webp new file mode 100755 index 0000000..a6a0e88 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.15.webp new file mode 100755 index 0000000..b65520a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.16.webp new file mode 100755 index 0000000..924e86d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.17.webp new file mode 100755 index 0000000..b66f0c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.18.webp new file mode 100755 index 0000000..6605e74 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.19.webp new file mode 100755 index 0000000..53f73d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.2.webp new file mode 100755 index 0000000..2152190 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.20.webp new file mode 100755 index 0000000..f524bc5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.21.webp new file mode 100755 index 0000000..6808fdc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.3.webp new file mode 100755 index 0000000..8e14041 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.4.webp new file mode 100755 index 0000000..3527df6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.5.webp new file mode 100755 index 0000000..8a8e08b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.6.webp new file mode 100755 index 0000000..e56a91c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.7.webp new file mode 100755 index 0000000..5af103a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.8.webp new file mode 100755 index 0000000..1cbcd1a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.9.webp new file mode 100755 index 0000000..397dc98 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/adult/m/halfling.lightfoot.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.0.webp new file mode 100755 index 0000000..16ac78e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.1.webp new file mode 100755 index 0000000..ff9326e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.10.webp new file mode 100755 index 0000000..d2defe8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.11.webp new file mode 100755 index 0000000..1a876ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.2.webp new file mode 100755 index 0000000..dd88e47 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.3.webp new file mode 100755 index 0000000..5ed9328 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.4.webp new file mode 100755 index 0000000..43fb5b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.5.webp new file mode 100755 index 0000000..9a8624f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.6.webp new file mode 100755 index 0000000..f29037e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.7.webp new file mode 100755 index 0000000..444bb9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.8.webp new file mode 100755 index 0000000..82b07ba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.9.webp new file mode 100755 index 0000000..41f264f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/f/halfling.lightfoot.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.0.webp new file mode 100755 index 0000000..a1dc35c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.1.webp new file mode 100755 index 0000000..4377051 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.2.webp new file mode 100755 index 0000000..97d39df Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.3.webp new file mode 100755 index 0000000..7633228 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.4.webp new file mode 100755 index 0000000..dd038aa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.5.webp new file mode 100755 index 0000000..c976dc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.6.webp new file mode 100755 index 0000000..eaa4fbd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.7.webp new file mode 100755 index 0000000..023e7a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/kid/m/halfling.lightfoot.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.0.webp new file mode 100755 index 0000000..05ec3e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.1.webp new file mode 100755 index 0000000..4f0daa0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.10.webp new file mode 100755 index 0000000..457f8cf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.11.webp new file mode 100755 index 0000000..117150d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.12.webp new file mode 100755 index 0000000..66f9c6a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.13.webp new file mode 100755 index 0000000..13940a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.14.webp new file mode 100755 index 0000000..71e0b16 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.15.webp new file mode 100755 index 0000000..8ae45ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.2.webp new file mode 100755 index 0000000..eaee0b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.3.webp new file mode 100755 index 0000000..f009b1a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.4.webp new file mode 100755 index 0000000..33ab991 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.5.webp new file mode 100755 index 0000000..ca723e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.6.webp new file mode 100755 index 0000000..32bc77d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.7.webp new file mode 100755 index 0000000..99c57d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.8.webp new file mode 100755 index 0000000..5718224 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.9.webp new file mode 100755 index 0000000..7f852ec Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/f/halfling.lightfoot.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.0.webp new file mode 100755 index 0000000..5c07905 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.1.webp new file mode 100755 index 0000000..19fc0ab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.10.webp new file mode 100755 index 0000000..8979767 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.11.webp new file mode 100755 index 0000000..3cbdf00 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.12.webp new file mode 100755 index 0000000..f45f9f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.2.webp new file mode 100755 index 0000000..d9e6fbf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.3.webp new file mode 100755 index 0000000..04524ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.4.webp new file mode 100755 index 0000000..63c56a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.5.webp new file mode 100755 index 0000000..8d9d6cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.6.webp new file mode 100755 index 0000000..da85ab9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.7.webp new file mode 100755 index 0000000..78bacca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.8.webp new file mode 100755 index 0000000..38c5237 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.9.webp new file mode 100755 index 0000000..81d67ab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Lightfoot/old/m/halfling.lightfoot.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.0.webp new file mode 100755 index 0000000..dbebb10 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.1.webp new file mode 100755 index 0000000..736cd6a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.10.webp new file mode 100755 index 0000000..34b9ffb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.11.webp new file mode 100755 index 0000000..844b530 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.12.webp new file mode 100755 index 0000000..3584355 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.13.webp new file mode 100755 index 0000000..f36ed32 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.14.webp new file mode 100755 index 0000000..c61db7d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.15.webp new file mode 100755 index 0000000..4277545 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.16.webp new file mode 100755 index 0000000..720bd50 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.17.webp new file mode 100755 index 0000000..75900b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.2.webp new file mode 100755 index 0000000..4c1f062 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.3.webp new file mode 100755 index 0000000..d77f414 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.4.webp new file mode 100755 index 0000000..8b49d48 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.5.webp new file mode 100755 index 0000000..637b457 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.6.webp new file mode 100755 index 0000000..346aed7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.7.webp new file mode 100755 index 0000000..afe0ab3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.8.webp new file mode 100755 index 0000000..c637265 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.9.webp new file mode 100755 index 0000000..be1191f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/f/halfling.stout.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.0.webp new file mode 100755 index 0000000..274076b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.1.webp new file mode 100755 index 0000000..bfa4ccf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.10.webp new file mode 100755 index 0000000..c12e9b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.11.webp new file mode 100755 index 0000000..c65e924 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.12.webp new file mode 100755 index 0000000..3bf5881 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.13.webp new file mode 100755 index 0000000..55683d9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.14.webp new file mode 100755 index 0000000..ca6926b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.15.webp new file mode 100755 index 0000000..b09e980 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.16.webp new file mode 100755 index 0000000..20f49e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.17.webp new file mode 100755 index 0000000..ceea2d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.18.webp new file mode 100755 index 0000000..81329e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.19.webp new file mode 100755 index 0000000..8435a88 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.2.webp new file mode 100755 index 0000000..206b3fa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.20.webp new file mode 100755 index 0000000..6c70df4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.21.webp new file mode 100755 index 0000000..fe42269 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.22.webp new file mode 100755 index 0000000..e2d4d2c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.3.webp new file mode 100755 index 0000000..ac49b86 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.4.webp new file mode 100755 index 0000000..d337de1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.5.webp new file mode 100755 index 0000000..45481df Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.6.webp new file mode 100755 index 0000000..85fba49 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.7.webp new file mode 100755 index 0000000..c1612d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.8.webp new file mode 100755 index 0000000..af0cfbb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.9.webp new file mode 100755 index 0000000..90b7da7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/adult/m/halfling.stout.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.0.webp new file mode 100755 index 0000000..c4c7dd5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.1.webp new file mode 100755 index 0000000..9e142dd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.10.webp new file mode 100755 index 0000000..25ffb6c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.2.webp new file mode 100755 index 0000000..5229251 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.3.webp new file mode 100755 index 0000000..f5f803b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.4.webp new file mode 100755 index 0000000..cd36aa0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.5.webp new file mode 100755 index 0000000..c461ed6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.6.webp new file mode 100755 index 0000000..e130c60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.7.webp new file mode 100755 index 0000000..4ad966f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.8.webp new file mode 100755 index 0000000..66bc3c1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.9.webp new file mode 100755 index 0000000..0c366e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/f/halfling.stout.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.0.webp new file mode 100755 index 0000000..90a6b9f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.1.webp new file mode 100755 index 0000000..4e0456f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.2.webp new file mode 100755 index 0000000..32dc47e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.3.webp new file mode 100755 index 0000000..ee308b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.4.webp new file mode 100755 index 0000000..304bc1b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.5.webp new file mode 100755 index 0000000..dd04c27 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.6.webp new file mode 100755 index 0000000..47b7898 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.7.webp new file mode 100755 index 0000000..75e6aaa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.8.webp new file mode 100755 index 0000000..b52d872 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/kid/m/halfling.stout.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.0.webp new file mode 100755 index 0000000..cc42e80 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.1.webp new file mode 100755 index 0000000..611de3a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.10.webp new file mode 100755 index 0000000..04a1a83 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.11.webp new file mode 100755 index 0000000..8d3022f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.12.webp new file mode 100755 index 0000000..b135ecf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.13.webp new file mode 100755 index 0000000..563f413 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.14.webp new file mode 100755 index 0000000..2ffb18a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.15.webp new file mode 100755 index 0000000..48aea55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.16.webp new file mode 100755 index 0000000..22350b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.2.webp new file mode 100755 index 0000000..0710af3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.3.webp new file mode 100755 index 0000000..09186e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.4.webp new file mode 100755 index 0000000..dd1b7b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.5.webp new file mode 100755 index 0000000..d952b15 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.6.webp new file mode 100755 index 0000000..3f38a8c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.7.webp new file mode 100755 index 0000000..64f8736 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.8.webp new file mode 100755 index 0000000..9750577 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.9.webp new file mode 100755 index 0000000..7ee2cde Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/f/halfling.stout.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.0.webp new file mode 100755 index 0000000..0b4f00d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.1.webp new file mode 100755 index 0000000..43f0d2c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.10.webp new file mode 100755 index 0000000..6d29eda Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.11.webp new file mode 100755 index 0000000..e7222b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.12.webp new file mode 100755 index 0000000..7396742 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.2.webp new file mode 100755 index 0000000..1c88bbd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.3.webp new file mode 100755 index 0000000..b4678c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.4.webp new file mode 100755 index 0000000..2b6b0b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.5.webp new file mode 100755 index 0000000..2b8ff14 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.6.webp new file mode 100755 index 0000000..49839ac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.7.webp new file mode 100755 index 0000000..e5e8791 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.8.webp new file mode 100755 index 0000000..4ca247a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.9.webp new file mode 100755 index 0000000..e571485 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/halfling/Stout/old/m/halfling.stout.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.0.webp new file mode 100755 index 0000000..fcd74d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.1.webp new file mode 100755 index 0000000..3a0487b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.10.webp new file mode 100755 index 0000000..32143eb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.11.webp new file mode 100755 index 0000000..51843b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.12.webp new file mode 100755 index 0000000..1ca4b19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.13.webp new file mode 100755 index 0000000..11a0076 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.14.webp new file mode 100755 index 0000000..8f509e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.15.webp new file mode 100755 index 0000000..0ae8a43 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.16.webp new file mode 100755 index 0000000..ddeae82 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.17.webp new file mode 100755 index 0000000..411d796 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.18.webp new file mode 100755 index 0000000..4a34490 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.19.webp new file mode 100755 index 0000000..9709a81 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.2.webp new file mode 100755 index 0000000..4073780 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.20.webp new file mode 100755 index 0000000..98f729d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.3.webp new file mode 100755 index 0000000..75de5c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.4.webp new file mode 100755 index 0000000..67cf607 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.5.webp new file mode 100755 index 0000000..b15e0d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.6.webp new file mode 100755 index 0000000..f47dad4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.7.webp new file mode 100755 index 0000000..008c6f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.8.webp new file mode 100755 index 0000000..5bcc4c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.9.webp new file mode 100755 index 0000000..8dc9094 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/f/human.calishite.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.0.webp new file mode 100755 index 0000000..73d710c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.1.webp new file mode 100755 index 0000000..00b7154 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.10.webp new file mode 100755 index 0000000..406c11c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.11.webp new file mode 100755 index 0000000..4bb38b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.12.webp new file mode 100755 index 0000000..1be6a4f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.13.webp new file mode 100755 index 0000000..70bb783 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.14.webp new file mode 100755 index 0000000..5d01293 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.15.webp new file mode 100755 index 0000000..cf6bdb0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.16.webp new file mode 100755 index 0000000..92989a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.17.webp new file mode 100755 index 0000000..9b70766 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.2.webp new file mode 100755 index 0000000..b4e353b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.3.webp new file mode 100755 index 0000000..811ab87 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.4.webp new file mode 100755 index 0000000..e6234c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.5.webp new file mode 100755 index 0000000..9ebb87d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.6.webp new file mode 100755 index 0000000..9d0ece1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.7.webp new file mode 100755 index 0000000..9a882e2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.8.webp new file mode 100755 index 0000000..12c5e01 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.9.webp new file mode 100755 index 0000000..8b6fae9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/adult/m/human.calishite.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.0.webp new file mode 100755 index 0000000..ab725fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.1.webp new file mode 100755 index 0000000..b372b03 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.10.webp new file mode 100755 index 0000000..229e502 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.11.webp new file mode 100755 index 0000000..66b28f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.12.webp new file mode 100755 index 0000000..76f6332 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.13.webp new file mode 100755 index 0000000..8bd766e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.14.webp new file mode 100755 index 0000000..c52d6d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.15.webp new file mode 100755 index 0000000..417f5b7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.16.webp new file mode 100755 index 0000000..bf62708 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.2.webp new file mode 100755 index 0000000..58860fd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.3.webp new file mode 100755 index 0000000..cb9f245 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.4.webp new file mode 100755 index 0000000..ee33b91 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.5.webp new file mode 100755 index 0000000..b499e7d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.6.webp new file mode 100755 index 0000000..2bd3a92 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.7.webp new file mode 100755 index 0000000..083cd47 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.8.webp new file mode 100755 index 0000000..4d1f173 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.9.webp new file mode 100755 index 0000000..d18d983 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/f/human.calishite.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.0.webp new file mode 100755 index 0000000..14bd502 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.1.webp new file mode 100755 index 0000000..60edc57 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.10.webp new file mode 100755 index 0000000..1fccad0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.11.webp new file mode 100755 index 0000000..153190c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.12.webp new file mode 100755 index 0000000..a50ca67 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.13.webp new file mode 100755 index 0000000..5e2f734 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.14.webp new file mode 100755 index 0000000..b0fc4a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.15.webp new file mode 100755 index 0000000..1e0762a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.16.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.16.webp new file mode 100755 index 0000000..b3bd7be Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.17.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.17.webp new file mode 100755 index 0000000..c483f18 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.2.webp new file mode 100755 index 0000000..f29ca69 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.3.webp new file mode 100755 index 0000000..5bd4138 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.4.webp new file mode 100755 index 0000000..2fd8120 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.5.webp new file mode 100755 index 0000000..9d823f0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.6.webp new file mode 100755 index 0000000..2f2c4a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.7.webp new file mode 100755 index 0000000..7baeaba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.8.webp new file mode 100755 index 0000000..9c209db Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.9.webp new file mode 100755 index 0000000..98d93bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/kid/m/human.calishite.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.0.webp new file mode 100755 index 0000000..5a83b42 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.1.webp new file mode 100755 index 0000000..d9fa67c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.10.webp new file mode 100755 index 0000000..f1c87a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.11.webp new file mode 100755 index 0000000..e52f460 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.12.webp new file mode 100755 index 0000000..aaf228a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.13.webp new file mode 100755 index 0000000..08befd5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.14.webp new file mode 100755 index 0000000..10d187d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.15.webp new file mode 100755 index 0000000..9b9ef39 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.16.webp new file mode 100755 index 0000000..af4e1ae Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.17.webp new file mode 100755 index 0000000..fc21da3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.18.webp new file mode 100755 index 0000000..1c28893 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.19.webp new file mode 100755 index 0000000..4eb0ead Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.2.webp new file mode 100755 index 0000000..c91181c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.20.webp new file mode 100755 index 0000000..d7ca9d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.21.webp new file mode 100755 index 0000000..2a3ac35 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.3.webp new file mode 100755 index 0000000..cc23da2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.4.webp new file mode 100755 index 0000000..341cb32 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.5.webp new file mode 100755 index 0000000..89f7ce3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.6.webp new file mode 100755 index 0000000..409f5e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.7.webp new file mode 100755 index 0000000..fb2627e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.8.webp new file mode 100755 index 0000000..3462097 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.9.webp new file mode 100755 index 0000000..3aa93ba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/f/human.calishite.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.0.webp new file mode 100755 index 0000000..f05407e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.1.webp new file mode 100755 index 0000000..b916ccf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.10.webp new file mode 100755 index 0000000..10b0e9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.11.webp new file mode 100755 index 0000000..adfd49e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.12.webp new file mode 100755 index 0000000..f0549ec Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.13.webp new file mode 100755 index 0000000..65f387b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.14.webp new file mode 100755 index 0000000..9536ebf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.15.webp new file mode 100755 index 0000000..dad5ce7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.16.webp new file mode 100755 index 0000000..9988d8a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.17.webp new file mode 100755 index 0000000..90620ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.18.webp new file mode 100755 index 0000000..3b6460e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.19.webp new file mode 100755 index 0000000..f85b4f2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.2.webp new file mode 100755 index 0000000..0305216 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.3.webp new file mode 100755 index 0000000..7b0d23d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.4.webp new file mode 100755 index 0000000..6d451f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.5.webp new file mode 100755 index 0000000..f90c06a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.6.webp new file mode 100755 index 0000000..641ba17 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.7.webp new file mode 100755 index 0000000..0cb4277 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.8.webp new file mode 100755 index 0000000..17ecaa4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.9.webp new file mode 100755 index 0000000..b16d5b4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/calishite/old/m/human.calishite.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.0.webp new file mode 100755 index 0000000..895648a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.1.webp new file mode 100755 index 0000000..9f86ff9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.10.webp new file mode 100755 index 0000000..9e47ada Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.11.webp new file mode 100755 index 0000000..dc77ace Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.12.webp new file mode 100755 index 0000000..d82c528 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.13.webp new file mode 100755 index 0000000..0ad3f34 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.14.webp new file mode 100755 index 0000000..b1d76cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.15.webp new file mode 100755 index 0000000..d77faab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.16.webp new file mode 100755 index 0000000..72a62d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.17.webp new file mode 100755 index 0000000..ec0f419 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.18.webp new file mode 100755 index 0000000..25a529b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.19.webp new file mode 100755 index 0000000..9121846 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.2.webp new file mode 100755 index 0000000..e7769ed Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.20.webp new file mode 100755 index 0000000..92d4e86 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.21.webp new file mode 100755 index 0000000..f8c4050 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.3.webp new file mode 100755 index 0000000..a50dcab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.4.webp new file mode 100755 index 0000000..f198b3b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.5.webp new file mode 100755 index 0000000..3c029ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.6.webp new file mode 100755 index 0000000..23a5d09 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.7.webp new file mode 100755 index 0000000..6fbcbd8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.8.webp new file mode 100755 index 0000000..53cc6e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.9.webp new file mode 100755 index 0000000..9aeb19b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/f/human.chondathan.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.0.webp new file mode 100755 index 0000000..54a28bf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.1.webp new file mode 100755 index 0000000..a292de7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.10.webp new file mode 100755 index 0000000..a95a78b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.11.webp new file mode 100755 index 0000000..12dcac5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.12.webp new file mode 100755 index 0000000..e2de407 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.13.webp new file mode 100755 index 0000000..d05daaa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.14.webp new file mode 100755 index 0000000..2faf7c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.15.webp new file mode 100755 index 0000000..de3beef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.16.webp new file mode 100755 index 0000000..b34a53e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.2.webp new file mode 100755 index 0000000..432dd19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.3.webp new file mode 100755 index 0000000..3315734 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.4.webp new file mode 100755 index 0000000..9c7a712 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.5.webp new file mode 100755 index 0000000..447b5ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.6.webp new file mode 100755 index 0000000..c50a32d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.7.webp new file mode 100755 index 0000000..1339d3d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.8.webp new file mode 100755 index 0000000..935f75a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.9.webp new file mode 100755 index 0000000..e1a229f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/adult/m/human.chondathan.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.0.webp new file mode 100755 index 0000000..be2ddc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.1.webp new file mode 100755 index 0000000..ac7538f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.10.webp new file mode 100755 index 0000000..0a17136 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.11.webp new file mode 100755 index 0000000..7942489 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.12.webp new file mode 100755 index 0000000..e22a3d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.13.webp new file mode 100755 index 0000000..f715b3e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.14.webp new file mode 100755 index 0000000..6597dd5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.2.webp new file mode 100755 index 0000000..8f54615 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.3.webp new file mode 100755 index 0000000..90c4474 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.4.webp new file mode 100755 index 0000000..ec35ba3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.5.webp new file mode 100755 index 0000000..3a66f5a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.6.webp new file mode 100755 index 0000000..e17e087 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.7.webp new file mode 100755 index 0000000..d8f7b64 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.8.webp new file mode 100755 index 0000000..6746302 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.9.webp new file mode 100755 index 0000000..21718c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/f/human.chondathan.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.0.webp new file mode 100755 index 0000000..713c8c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.1.webp new file mode 100755 index 0000000..954c1cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.10.webp new file mode 100755 index 0000000..ee2dd3b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.11.webp new file mode 100755 index 0000000..032d690 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.2.webp new file mode 100755 index 0000000..b1535e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.3.webp new file mode 100755 index 0000000..59151b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.4.webp new file mode 100755 index 0000000..a60d6d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.5.webp new file mode 100755 index 0000000..d899f6e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.6.webp new file mode 100755 index 0000000..076752f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.7.webp new file mode 100755 index 0000000..6adff10 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.8.webp new file mode 100755 index 0000000..32d3b03 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.9.webp new file mode 100755 index 0000000..d4c7939 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/kid/m/human.chondathan.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.0.webp new file mode 100755 index 0000000..849a816 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.1.webp new file mode 100755 index 0000000..e0e334f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.10.webp new file mode 100755 index 0000000..d13a891 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.11.webp new file mode 100755 index 0000000..c5c378f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.12.webp new file mode 100755 index 0000000..64fa05d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.13.webp new file mode 100755 index 0000000..bc51b41 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.14.webp new file mode 100755 index 0000000..c0cb877 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.15.webp new file mode 100755 index 0000000..783b52d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.16.webp new file mode 100755 index 0000000..6170f07 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.17.webp new file mode 100755 index 0000000..427a917 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.2.webp new file mode 100755 index 0000000..b241d09 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.3.webp new file mode 100755 index 0000000..e4e9c39 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.4.webp new file mode 100755 index 0000000..5297d88 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.5.webp new file mode 100755 index 0000000..74e8e3d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.6.webp new file mode 100755 index 0000000..cc20123 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.7.webp new file mode 100755 index 0000000..31b7030 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.8.webp new file mode 100755 index 0000000..9a9dbb3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.9.webp new file mode 100755 index 0000000..0db66e0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/f/human.chondathan.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.0.webp new file mode 100755 index 0000000..63fed89 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.1.webp new file mode 100755 index 0000000..65e59ba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.10.webp new file mode 100755 index 0000000..e305f45 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.11.webp new file mode 100755 index 0000000..1b0e4c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.12.webp new file mode 100755 index 0000000..fc1f18f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.13.webp new file mode 100755 index 0000000..f8284ca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.14.webp new file mode 100755 index 0000000..6ef7067 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.15.webp new file mode 100755 index 0000000..ec0cbf3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.16.webp new file mode 100755 index 0000000..c5a388a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.17.webp new file mode 100755 index 0000000..999caa9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.18.webp new file mode 100755 index 0000000..6e77967 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.19.webp new file mode 100755 index 0000000..0c74ca4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.2.webp new file mode 100755 index 0000000..dd89884 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.3.webp new file mode 100755 index 0000000..1f6c276 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.4.webp new file mode 100755 index 0000000..693ca57 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.5.webp new file mode 100755 index 0000000..e124ecd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.6.webp new file mode 100755 index 0000000..c316c2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.7.webp new file mode 100755 index 0000000..e23ea2c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.8.webp new file mode 100755 index 0000000..c62b915 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.9.webp new file mode 100755 index 0000000..2778dad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/chondathan/old/m/human.chondathan.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.0.webp new file mode 100755 index 0000000..74d65c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.1.webp new file mode 100755 index 0000000..0486955 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.10.webp new file mode 100755 index 0000000..2a662a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.11.webp new file mode 100755 index 0000000..64857b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.12.webp new file mode 100755 index 0000000..10cbee4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.13.webp new file mode 100755 index 0000000..15d0807 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.14.webp new file mode 100755 index 0000000..6f28028 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.15.webp new file mode 100755 index 0000000..d82ed84 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.16.webp new file mode 100755 index 0000000..5315331 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.17.webp new file mode 100755 index 0000000..c9af6ff Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.18.webp new file mode 100755 index 0000000..181a72a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.19.webp new file mode 100755 index 0000000..7000ab8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.2.webp new file mode 100755 index 0000000..7ccc6ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.20.webp new file mode 100755 index 0000000..1d23bb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.21.webp new file mode 100755 index 0000000..669515e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.22.webp new file mode 100755 index 0000000..4705df7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.23.webp new file mode 100755 index 0000000..833bcc4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.24.webp new file mode 100755 index 0000000..4a60567 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.25.webp new file mode 100755 index 0000000..5f99e9b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.26.webp new file mode 100755 index 0000000..4b7fe1c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.27.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.27.webp new file mode 100755 index 0000000..da5dcfc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.27.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.3.webp new file mode 100755 index 0000000..4ec9657 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.4.webp new file mode 100755 index 0000000..d446a7f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.5.webp new file mode 100755 index 0000000..5ac3fbd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.6.webp new file mode 100755 index 0000000..eecc672 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.7.webp new file mode 100755 index 0000000..d12c459 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.8.webp new file mode 100755 index 0000000..9fdfef2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.9.webp new file mode 100755 index 0000000..ecf859a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/f/human.damaran.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.0.webp new file mode 100755 index 0000000..6b73cfd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.1.webp new file mode 100755 index 0000000..4c9eeeb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.10.webp new file mode 100755 index 0000000..00b8c1e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.11.webp new file mode 100755 index 0000000..ce4ad39 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.12.webp new file mode 100755 index 0000000..0a34817 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.13.webp new file mode 100755 index 0000000..3b82cff Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.14.webp new file mode 100755 index 0000000..8d8490c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.15.webp new file mode 100755 index 0000000..92bb9fe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.16.webp new file mode 100755 index 0000000..289ce20 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.17.webp new file mode 100755 index 0000000..2ae2c68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.18.webp new file mode 100755 index 0000000..43c57ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.19.webp new file mode 100755 index 0000000..e72c97e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.2.webp new file mode 100755 index 0000000..7094a46 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.20.webp new file mode 100755 index 0000000..7ef8024 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.3.webp new file mode 100755 index 0000000..4d10bf1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.4.webp new file mode 100755 index 0000000..7b439ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.5.webp new file mode 100755 index 0000000..4f3f31a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.6.webp new file mode 100755 index 0000000..401d474 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.7.webp new file mode 100755 index 0000000..680d9b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.8.webp new file mode 100755 index 0000000..f169d10 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.9.webp new file mode 100755 index 0000000..de7f581 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/adult/m/human.damaran.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.0.webp new file mode 100755 index 0000000..2cb56cd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.1.webp new file mode 100755 index 0000000..813011c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.10.webp new file mode 100755 index 0000000..3108c4c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.11.webp new file mode 100755 index 0000000..93221cd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.12.webp new file mode 100755 index 0000000..248bc25 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.13.webp new file mode 100755 index 0000000..1e237d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.14.webp new file mode 100755 index 0000000..88457e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.15.webp new file mode 100755 index 0000000..a635970 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.16.webp new file mode 100755 index 0000000..75e0277 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.2.webp new file mode 100755 index 0000000..4ddb06e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.3.webp new file mode 100755 index 0000000..c70a373 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.4.webp new file mode 100755 index 0000000..22b840c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.5.webp new file mode 100755 index 0000000..99d3ec8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.6.webp new file mode 100755 index 0000000..9065c3d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.7.webp new file mode 100755 index 0000000..9304a4d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.8.webp new file mode 100755 index 0000000..a45d217 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.9.webp new file mode 100755 index 0000000..facabf9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/f/human.damaran.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.0.webp new file mode 100755 index 0000000..7283e0e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.1.webp new file mode 100755 index 0000000..4857296 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.10.webp new file mode 100755 index 0000000..229d4b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.11.webp new file mode 100755 index 0000000..79d01b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.12.webp new file mode 100755 index 0000000..9719df7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.13.webp new file mode 100755 index 0000000..3fc3603 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.14.webp new file mode 100755 index 0000000..ceac0af Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.15.webp new file mode 100755 index 0000000..d955a63 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.16.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.16.webp new file mode 100755 index 0000000..48d6641 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.17.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.17.webp new file mode 100755 index 0000000..3f3a2bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.18.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.18.webp new file mode 100755 index 0000000..b0c773e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.19.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.19.webp new file mode 100755 index 0000000..b11eda3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.2.webp new file mode 100755 index 0000000..859109b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.3.webp new file mode 100755 index 0000000..f1816d4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.4.webp new file mode 100755 index 0000000..b2279ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.5.webp new file mode 100755 index 0000000..189b42f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.6.webp new file mode 100755 index 0000000..05e289c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.7.webp new file mode 100755 index 0000000..975afa3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.8.webp new file mode 100755 index 0000000..00fbb43 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.9.webp new file mode 100755 index 0000000..5cd19c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/kid/m/human.damaran.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.0.webp new file mode 100755 index 0000000..d18b91e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.1.webp new file mode 100755 index 0000000..77be6a6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.10.webp new file mode 100755 index 0000000..2ffea64 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.11.webp new file mode 100755 index 0000000..a47e681 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.12.webp new file mode 100755 index 0000000..4075f5a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.13.webp new file mode 100755 index 0000000..0783f36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.14.webp new file mode 100755 index 0000000..8768726 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.2.webp new file mode 100755 index 0000000..7abdb20 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.3.webp new file mode 100755 index 0000000..b445b8d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.4.webp new file mode 100755 index 0000000..d2addb0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.5.webp new file mode 100755 index 0000000..614a760 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.6.webp new file mode 100755 index 0000000..3fe9e75 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.7.webp new file mode 100755 index 0000000..4e27363 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.8.webp new file mode 100755 index 0000000..d2f12ae Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.9.webp new file mode 100755 index 0000000..2fb2260 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/f/human.damaran.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.0.webp new file mode 100755 index 0000000..cf71974 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.1.webp new file mode 100755 index 0000000..f2c0f4e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.10.webp new file mode 100755 index 0000000..4e9298e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.11.webp new file mode 100755 index 0000000..3fb053b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.12.webp new file mode 100755 index 0000000..1506aed Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.13.webp new file mode 100755 index 0000000..f5539ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.14.webp new file mode 100755 index 0000000..547bca3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.15.webp new file mode 100755 index 0000000..5ab338d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.16.webp new file mode 100755 index 0000000..6b2c47a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.17.webp new file mode 100755 index 0000000..40e4e28 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.18.webp new file mode 100755 index 0000000..34e1e04 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.19.webp new file mode 100755 index 0000000..77fe5ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.2.webp new file mode 100755 index 0000000..0fb3b60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.3.webp new file mode 100755 index 0000000..44a43fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.4.webp new file mode 100755 index 0000000..98e6a9d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.5.webp new file mode 100755 index 0000000..bc4bb89 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.6.webp new file mode 100755 index 0000000..466875f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.7.webp new file mode 100755 index 0000000..6a73828 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.8.webp new file mode 100755 index 0000000..ee46bfc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.9.webp new file mode 100755 index 0000000..426d4fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/damaran/old/m/human.damaran.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.0.webp new file mode 100755 index 0000000..c0248f7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.1.webp new file mode 100755 index 0000000..00eaa91 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.10.webp new file mode 100755 index 0000000..f6c5d94 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.11.webp new file mode 100755 index 0000000..4b887bb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.12.webp new file mode 100755 index 0000000..34c392f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.13.webp new file mode 100755 index 0000000..027eda2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.14.webp new file mode 100755 index 0000000..8d9d516 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.15.webp new file mode 100755 index 0000000..ffc1c38 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.16.webp new file mode 100755 index 0000000..aaa7dde Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.17.webp new file mode 100755 index 0000000..c46d9c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.18.webp new file mode 100755 index 0000000..8c24deb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.19.webp new file mode 100755 index 0000000..a244dec Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.2.webp new file mode 100755 index 0000000..df05257 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.20.webp new file mode 100755 index 0000000..9a4b95f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.21.webp new file mode 100755 index 0000000..4136abb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.22.webp new file mode 100755 index 0000000..54d8120 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.23.webp new file mode 100755 index 0000000..48bd01f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.24.webp new file mode 100755 index 0000000..de082b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.25.webp new file mode 100755 index 0000000..018e4da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.26.webp new file mode 100755 index 0000000..b5a6932 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.27.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.27.webp new file mode 100755 index 0000000..e2dca05 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.27.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.28.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.28.webp new file mode 100755 index 0000000..8e30ee8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.28.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.29.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.29.webp new file mode 100755 index 0000000..3cd14ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.29.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.3.webp new file mode 100755 index 0000000..09c3fbb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.30.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.30.webp new file mode 100755 index 0000000..84f6c12 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.30.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.31.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.31.webp new file mode 100755 index 0000000..fcc7450 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.31.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.32.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.32.webp new file mode 100755 index 0000000..9e1d746 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.32.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.4.webp new file mode 100755 index 0000000..946a835 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.5.webp new file mode 100755 index 0000000..c3af393 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.6.webp new file mode 100755 index 0000000..e0819ad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.7.webp new file mode 100755 index 0000000..2a7e450 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.8.webp new file mode 100755 index 0000000..f0dcde1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.9.webp new file mode 100755 index 0000000..3524b6f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/f/human.illuskan.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.0.webp new file mode 100755 index 0000000..541f161 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.1.webp new file mode 100755 index 0000000..a00c467 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.10.webp new file mode 100755 index 0000000..775ef83 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.11.webp new file mode 100755 index 0000000..5442528 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.12.webp new file mode 100755 index 0000000..1aa23c0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.13.webp new file mode 100755 index 0000000..2ac4053 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.14.webp new file mode 100755 index 0000000..d2fd41f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.15.webp new file mode 100755 index 0000000..2d21f50 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.16.webp new file mode 100755 index 0000000..1ab5475 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.17.webp new file mode 100755 index 0000000..317ab46 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.2.webp new file mode 100755 index 0000000..792aaa7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.3.webp new file mode 100755 index 0000000..c1efd7e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.4.webp new file mode 100755 index 0000000..6466dcf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.5.webp new file mode 100755 index 0000000..1ceab2e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.6.webp new file mode 100755 index 0000000..0037e93 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.7.webp new file mode 100755 index 0000000..838ad38 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.8.webp new file mode 100755 index 0000000..83fb403 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.9.webp new file mode 100755 index 0000000..e7c0e98 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/adult/m/human.illuskan.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.0.webp new file mode 100755 index 0000000..c76533c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.1.webp new file mode 100755 index 0000000..4e6144f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.10.webp new file mode 100755 index 0000000..283dc84 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.11.webp new file mode 100755 index 0000000..56ae1d0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.12.webp new file mode 100755 index 0000000..0427bc6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.13.webp new file mode 100755 index 0000000..1779bb8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.14.webp new file mode 100755 index 0000000..2d06020 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.15.webp new file mode 100755 index 0000000..6629f6e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.16.webp new file mode 100755 index 0000000..1378f2d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.17.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.17.webp new file mode 100755 index 0000000..b1a4600 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.18.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.18.webp new file mode 100755 index 0000000..fec9f6a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.19.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.19.webp new file mode 100755 index 0000000..4cfa261 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.2.webp new file mode 100755 index 0000000..c09669d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.20.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.20.webp new file mode 100755 index 0000000..2719d5a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.21.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.21.webp new file mode 100755 index 0000000..ce6b81c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.3.webp new file mode 100755 index 0000000..18b3198 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.4.webp new file mode 100755 index 0000000..45bfd45 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.5.webp new file mode 100755 index 0000000..feda4c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.6.webp new file mode 100755 index 0000000..713bc87 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.7.webp new file mode 100755 index 0000000..e31ddd3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.8.webp new file mode 100755 index 0000000..ea93bdf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.9.webp new file mode 100755 index 0000000..51f7083 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/f/human.illuskan.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.0.webp new file mode 100755 index 0000000..e07c76e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.1.webp new file mode 100755 index 0000000..ed0f315 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.10.webp new file mode 100755 index 0000000..707d94b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.11.webp new file mode 100755 index 0000000..75bf864 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.12.webp new file mode 100755 index 0000000..acde49a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.13.webp new file mode 100755 index 0000000..1836c06 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.14.webp new file mode 100755 index 0000000..df00547 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.15.webp new file mode 100755 index 0000000..e75ec6e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.16.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.16.webp new file mode 100755 index 0000000..9668bfd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.17.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.17.webp new file mode 100755 index 0000000..99a2a7d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.2.webp new file mode 100755 index 0000000..82f2cc2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.3.webp new file mode 100755 index 0000000..a682942 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.4.webp new file mode 100755 index 0000000..d62f3d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.5.webp new file mode 100755 index 0000000..37ca406 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.6.webp new file mode 100755 index 0000000..8dda491 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.7.webp new file mode 100755 index 0000000..539e307 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.8.webp new file mode 100755 index 0000000..e017e9f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.9.webp new file mode 100755 index 0000000..64b34d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/kid/m/human.illuskan.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.0.webp new file mode 100755 index 0000000..5b076a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.1.webp new file mode 100755 index 0000000..db85cc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.10.webp new file mode 100755 index 0000000..f7e3a6c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.11.webp new file mode 100755 index 0000000..ab09049 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.12.webp new file mode 100755 index 0000000..d23adbe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.13.webp new file mode 100755 index 0000000..f3b4abf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.14.webp new file mode 100755 index 0000000..29e543c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.15.webp new file mode 100755 index 0000000..1b4b128 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.16.webp new file mode 100755 index 0000000..d306ff2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.17.webp new file mode 100755 index 0000000..2186d86 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.2.webp new file mode 100755 index 0000000..4966cad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.3.webp new file mode 100755 index 0000000..4ba644e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.4.webp new file mode 100755 index 0000000..638651f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.5.webp new file mode 100755 index 0000000..54c0bab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.6.webp new file mode 100755 index 0000000..895ecbf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.7.webp new file mode 100755 index 0000000..1bdf896 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.8.webp new file mode 100755 index 0000000..a89b17d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.9.webp new file mode 100755 index 0000000..ca3c448 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/f/human.illuskan.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.0.webp new file mode 100755 index 0000000..54f2ece Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.1.webp new file mode 100755 index 0000000..cb4420a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.10.webp new file mode 100755 index 0000000..d9c243b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.11.webp new file mode 100755 index 0000000..0f9420d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.12.webp new file mode 100755 index 0000000..b7c0d86 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.13.webp new file mode 100755 index 0000000..389fd60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.14.webp new file mode 100755 index 0000000..5f66e49 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.15.webp new file mode 100755 index 0000000..62448a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.16.webp new file mode 100755 index 0000000..4323fc3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.17.webp new file mode 100755 index 0000000..7889bb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.18.webp new file mode 100755 index 0000000..f9cd1a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.19.webp new file mode 100755 index 0000000..26f103a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.2.webp new file mode 100755 index 0000000..1e44330 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.20.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.20.webp new file mode 100755 index 0000000..7908da1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.21.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.21.webp new file mode 100755 index 0000000..9a85f2c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.22.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.22.webp new file mode 100755 index 0000000..64389e4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.23.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.23.webp new file mode 100755 index 0000000..b7bb480 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.24.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.24.webp new file mode 100755 index 0000000..4baa712 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.25.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.25.webp new file mode 100755 index 0000000..014f07f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.3.webp new file mode 100755 index 0000000..3a01332 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.4.webp new file mode 100755 index 0000000..5e9f468 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.5.webp new file mode 100755 index 0000000..38d0eb7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.6.webp new file mode 100755 index 0000000..e3d27f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.7.webp new file mode 100755 index 0000000..cdfc6ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.8.webp new file mode 100755 index 0000000..c024090 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.9.webp new file mode 100755 index 0000000..a45f973 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/illuskan/old/m/human.illuskan.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.0.webp new file mode 100755 index 0000000..e9fa2ca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.1.webp new file mode 100755 index 0000000..f2ca65a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.10.webp new file mode 100755 index 0000000..860fe67 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.11.webp new file mode 100755 index 0000000..6337be4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.12.webp new file mode 100755 index 0000000..1dd2c11 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.13.webp new file mode 100755 index 0000000..46b0817 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.14.webp new file mode 100755 index 0000000..f404dc4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.15.webp new file mode 100755 index 0000000..125c339 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.16.webp new file mode 100755 index 0000000..4799baf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.17.webp new file mode 100755 index 0000000..2a9d45d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.18.webp new file mode 100755 index 0000000..6f669f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.19.webp new file mode 100755 index 0000000..ccc24e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.2.webp new file mode 100755 index 0000000..6a5aa0a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.20.webp new file mode 100755 index 0000000..0be66b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.3.webp new file mode 100755 index 0000000..16e2366 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.4.webp new file mode 100755 index 0000000..c684786 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.5.webp new file mode 100755 index 0000000..78cad0d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.6.webp new file mode 100755 index 0000000..34dea89 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.7.webp new file mode 100755 index 0000000..ef6e89a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.8.webp new file mode 100755 index 0000000..322cd81 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.9.webp new file mode 100755 index 0000000..2f0930f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/f/human.mulan.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.0.webp new file mode 100755 index 0000000..f712293 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.1.webp new file mode 100755 index 0000000..7feec1c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.10.webp new file mode 100755 index 0000000..a87ec9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.11.webp new file mode 100755 index 0000000..4bb500d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.12.webp new file mode 100755 index 0000000..2b9e4fd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.13.webp new file mode 100755 index 0000000..a44ac2d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.14.webp new file mode 100755 index 0000000..09b4f00 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.15.webp new file mode 100755 index 0000000..0cc4317 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.16.webp new file mode 100755 index 0000000..09a0b2a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.17.webp new file mode 100755 index 0000000..4e9e3a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.18.webp new file mode 100755 index 0000000..20589af Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.19.webp new file mode 100755 index 0000000..f910711 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.2.webp new file mode 100755 index 0000000..f765543 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.20.webp new file mode 100755 index 0000000..3b93d6e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.21.webp new file mode 100755 index 0000000..2b51c1d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.22.webp new file mode 100755 index 0000000..061cd3e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.23.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.23.webp new file mode 100755 index 0000000..6e1150e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.24.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.24.webp new file mode 100755 index 0000000..07d548a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.25.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.25.webp new file mode 100755 index 0000000..9bfd0e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.3.webp new file mode 100755 index 0000000..c0ef2fc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.4.webp new file mode 100755 index 0000000..a567d8d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.5.webp new file mode 100755 index 0000000..6f27559 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.6.webp new file mode 100755 index 0000000..2a49c47 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.7.webp new file mode 100755 index 0000000..7af6474 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.8.webp new file mode 100755 index 0000000..334ac00 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.9.webp new file mode 100755 index 0000000..d1dd5c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/adult/m/human.mulan.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.0.webp new file mode 100755 index 0000000..fa3629d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.1.webp new file mode 100755 index 0000000..ac97e9a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.10.webp new file mode 100755 index 0000000..88dd95b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.11.webp new file mode 100755 index 0000000..c0eb915 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.12.webp new file mode 100755 index 0000000..df0edce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.13.webp new file mode 100755 index 0000000..ec54454 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.14.webp new file mode 100755 index 0000000..8534dc3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.15.webp new file mode 100755 index 0000000..b60e96b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.16.webp new file mode 100755 index 0000000..19790fc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.17.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.17.webp new file mode 100755 index 0000000..7b39bc7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.18.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.18.webp new file mode 100755 index 0000000..6d12f55 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.19.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.19.webp new file mode 100755 index 0000000..0cc4559 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.2.webp new file mode 100755 index 0000000..433928a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.20.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.20.webp new file mode 100755 index 0000000..e14f150 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.21.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.21.webp new file mode 100755 index 0000000..a7865b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.22.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.22.webp new file mode 100755 index 0000000..c2a002b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.3.webp new file mode 100755 index 0000000..6566b12 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.4.webp new file mode 100755 index 0000000..be98394 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.5.webp new file mode 100755 index 0000000..dede1e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.6.webp new file mode 100755 index 0000000..9abfa73 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.7.webp new file mode 100755 index 0000000..a5766d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.8.webp new file mode 100755 index 0000000..b8cf174 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.9.webp new file mode 100755 index 0000000..dd29a29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/f/human.mulan.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.0.webp new file mode 100755 index 0000000..890b019 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.1.webp new file mode 100755 index 0000000..1918785 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.10.webp new file mode 100755 index 0000000..c2e3ffc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.11.webp new file mode 100755 index 0000000..57ad6bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.12.webp new file mode 100755 index 0000000..b0f3e99 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.13.webp new file mode 100755 index 0000000..b3180be Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.14.webp new file mode 100755 index 0000000..00ae933 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.15.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.15.webp new file mode 100755 index 0000000..ad98a39 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.2.webp new file mode 100755 index 0000000..271a935 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.3.webp new file mode 100755 index 0000000..5aad8a7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.4.webp new file mode 100755 index 0000000..795c1d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.5.webp new file mode 100755 index 0000000..6646995 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.6.webp new file mode 100755 index 0000000..8f18387 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.7.webp new file mode 100755 index 0000000..6ef3e19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.8.webp new file mode 100755 index 0000000..70f5a17 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.9.webp new file mode 100755 index 0000000..200d800 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/kid/m/human.mulan.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.0.webp new file mode 100755 index 0000000..e77f890 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.1.webp new file mode 100755 index 0000000..05df4e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.10.webp new file mode 100755 index 0000000..88ab9c4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.11.webp new file mode 100755 index 0000000..1e2470c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.12.webp new file mode 100755 index 0000000..c96ae9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.13.webp new file mode 100755 index 0000000..6ad1f1d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.14.webp new file mode 100755 index 0000000..551b57b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.15.webp new file mode 100755 index 0000000..b2e40e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.16.webp new file mode 100755 index 0000000..83b3684 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.17.webp new file mode 100755 index 0000000..066da99 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.18.webp new file mode 100755 index 0000000..07a2766 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.19.webp new file mode 100755 index 0000000..8b34b18 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.2.webp new file mode 100755 index 0000000..23bff37 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.20.webp new file mode 100755 index 0000000..2d5edb6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.21.webp new file mode 100755 index 0000000..8fe13d7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.3.webp new file mode 100755 index 0000000..0e3fe74 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.4.webp new file mode 100755 index 0000000..192d6e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.5.webp new file mode 100755 index 0000000..c7cc313 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.6.webp new file mode 100755 index 0000000..a53d5db Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.7.webp new file mode 100755 index 0000000..3783bfd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.8.webp new file mode 100755 index 0000000..1583758 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.9.webp new file mode 100755 index 0000000..579b205 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/f/human.mulan.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.0.webp new file mode 100755 index 0000000..b117354 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.1.webp new file mode 100755 index 0000000..14c6613 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.10.webp new file mode 100755 index 0000000..e228f06 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.11.webp new file mode 100755 index 0000000..234d08c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.12.webp new file mode 100755 index 0000000..32504ea Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.13.webp new file mode 100755 index 0000000..0fe83ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.14.webp new file mode 100755 index 0000000..275e48d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.15.webp new file mode 100755 index 0000000..9cbcec0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.16.webp new file mode 100755 index 0000000..a3a72e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.17.webp new file mode 100755 index 0000000..a8c9632 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.18.webp new file mode 100755 index 0000000..e7946c1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.19.webp new file mode 100755 index 0000000..53b2407 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.2.webp new file mode 100755 index 0000000..5314f45 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.20.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.20.webp new file mode 100755 index 0000000..07ee7ad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.21.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.21.webp new file mode 100755 index 0000000..2fa9b51 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.22.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.22.webp new file mode 100755 index 0000000..9af2a98 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.23.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.23.webp new file mode 100755 index 0000000..af2f6e9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.24.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.24.webp new file mode 100755 index 0000000..25e3312 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.3.webp new file mode 100755 index 0000000..7e130b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.4.webp new file mode 100755 index 0000000..6b4a586 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.5.webp new file mode 100755 index 0000000..fd131ab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.6.webp new file mode 100755 index 0000000..cb92727 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.7.webp new file mode 100755 index 0000000..7dcb042 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.8.webp new file mode 100755 index 0000000..f7331c8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.9.webp new file mode 100755 index 0000000..a33d140 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/mulan/old/m/human.mulan.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.0.webp new file mode 100755 index 0000000..94ed040 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.1.webp new file mode 100755 index 0000000..1e602e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.10.webp new file mode 100755 index 0000000..436b01b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.11.webp new file mode 100755 index 0000000..292a83e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.12.webp new file mode 100755 index 0000000..01c6f9e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.13.webp new file mode 100755 index 0000000..f2f94a9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.14.webp new file mode 100755 index 0000000..7b61a48 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.15.webp new file mode 100755 index 0000000..a5197af Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.16.webp new file mode 100755 index 0000000..55bc6a2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.17.webp new file mode 100755 index 0000000..756a730 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.18.webp new file mode 100755 index 0000000..022348d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.19.webp new file mode 100755 index 0000000..34192ab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.2.webp new file mode 100755 index 0000000..a9da454 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.20.webp new file mode 100755 index 0000000..45aa00d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.3.webp new file mode 100755 index 0000000..7df74a8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.4.webp new file mode 100755 index 0000000..7e1cc4d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.5.webp new file mode 100755 index 0000000..23a6c78 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.6.webp new file mode 100755 index 0000000..e1c219e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.7.webp new file mode 100755 index 0000000..23382e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.8.webp new file mode 100755 index 0000000..d9c63d8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.9.webp new file mode 100755 index 0000000..efee649 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/f/human.rashemi.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.0.webp new file mode 100755 index 0000000..b636276 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.1.webp new file mode 100755 index 0000000..88e5bfa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.10.webp new file mode 100755 index 0000000..eb2e8a3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.11.webp new file mode 100755 index 0000000..6f4d6de Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.12.webp new file mode 100755 index 0000000..f19f2d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.13.webp new file mode 100755 index 0000000..b0c089c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.14.webp new file mode 100755 index 0000000..ed5611e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.15.webp new file mode 100755 index 0000000..7c8c50d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.16.webp new file mode 100755 index 0000000..9e3897a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.17.webp new file mode 100755 index 0000000..2a14833 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.2.webp new file mode 100755 index 0000000..a84bcd6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.3.webp new file mode 100755 index 0000000..e709150 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.4.webp new file mode 100755 index 0000000..337a960 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.5.webp new file mode 100755 index 0000000..b19c14d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.6.webp new file mode 100755 index 0000000..7809965 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.7.webp new file mode 100755 index 0000000..e30badc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.8.webp new file mode 100755 index 0000000..826d874 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.9.webp new file mode 100755 index 0000000..cec5cdb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/adult/m/human.rashemi.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.0.webp new file mode 100755 index 0000000..d6222aa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.1.webp new file mode 100755 index 0000000..e55a56e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.10.webp new file mode 100755 index 0000000..afd8fda Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.11.webp new file mode 100755 index 0000000..1cfedcf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.12.webp new file mode 100755 index 0000000..c2e1d81 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.13.webp new file mode 100755 index 0000000..9ecbbde Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.14.webp new file mode 100755 index 0000000..389c6ec Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.15.webp new file mode 100755 index 0000000..1baf131 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.16.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.16.webp new file mode 100755 index 0000000..9bcd7a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.17.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.17.webp new file mode 100755 index 0000000..7ba1fce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.2.webp new file mode 100755 index 0000000..683d36e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.3.webp new file mode 100755 index 0000000..4e16e85 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.4.webp new file mode 100755 index 0000000..7692990 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.5.webp new file mode 100755 index 0000000..a8d7e1b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.6.webp new file mode 100755 index 0000000..2e659d1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.7.webp new file mode 100755 index 0000000..de4231c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.8.webp new file mode 100755 index 0000000..a719453 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.9.webp new file mode 100755 index 0000000..900cfc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/f/human.rashemi.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.0.webp new file mode 100755 index 0000000..ddcdcd2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.1.webp new file mode 100755 index 0000000..593bbfa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.10.webp new file mode 100755 index 0000000..923dfad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.11.webp new file mode 100755 index 0000000..ffecabe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.12.webp new file mode 100755 index 0000000..c741fe3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.13.webp new file mode 100755 index 0000000..63ca88d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.14.webp new file mode 100755 index 0000000..9160520 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.2.webp new file mode 100755 index 0000000..25db8f5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.3.webp new file mode 100755 index 0000000..ad6272b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.4.webp new file mode 100755 index 0000000..575372b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.5.webp new file mode 100755 index 0000000..04578f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.6.webp new file mode 100755 index 0000000..47a9aaa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.7.webp new file mode 100755 index 0000000..fd8aabd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.8.webp new file mode 100755 index 0000000..20d44f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.9.webp new file mode 100755 index 0000000..824656b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/kid/m/human.rashemi.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.0.webp new file mode 100755 index 0000000..5318fa7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.1.webp new file mode 100755 index 0000000..838c0bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.10.webp new file mode 100755 index 0000000..7e6ad53 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.11.webp new file mode 100755 index 0000000..a517cce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.12.webp new file mode 100755 index 0000000..0fc22ee Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.13.webp new file mode 100755 index 0000000..624bb8b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.14.webp new file mode 100755 index 0000000..88624af Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.15.webp new file mode 100755 index 0000000..88749db Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.16.webp new file mode 100755 index 0000000..2fbded3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.17.webp new file mode 100755 index 0000000..6970cb3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.18.webp new file mode 100755 index 0000000..1d22c38 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.2.webp new file mode 100755 index 0000000..d88f10a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.3.webp new file mode 100755 index 0000000..6439e4a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.4.webp new file mode 100755 index 0000000..61cee44 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.5.webp new file mode 100755 index 0000000..2230008 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.6.webp new file mode 100755 index 0000000..bfd30ac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.7.webp new file mode 100755 index 0000000..faef643 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.8.webp new file mode 100755 index 0000000..d25ed83 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.9.webp new file mode 100755 index 0000000..63549bd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/f/human.rashemi.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.0.webp new file mode 100755 index 0000000..90e0d68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.1.webp new file mode 100755 index 0000000..f6de91a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.10.webp new file mode 100755 index 0000000..704e3c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.11.webp new file mode 100755 index 0000000..cb19588 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.12.webp new file mode 100755 index 0000000..97640c6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.13.webp new file mode 100755 index 0000000..dad7120 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.14.webp new file mode 100755 index 0000000..ef84ff3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.15.webp new file mode 100755 index 0000000..2339b84 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.16.webp new file mode 100755 index 0000000..e8cd946 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.17.webp new file mode 100755 index 0000000..e16eb36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.18.webp new file mode 100755 index 0000000..33cc3b8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.19.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.19.webp new file mode 100755 index 0000000..bc960b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.2.webp new file mode 100755 index 0000000..a1290ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.20.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.20.webp new file mode 100755 index 0000000..5726d8f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.21.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.21.webp new file mode 100755 index 0000000..6400a24 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.3.webp new file mode 100755 index 0000000..d441f9d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.4.webp new file mode 100755 index 0000000..959a098 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.5.webp new file mode 100755 index 0000000..d431912 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.6.webp new file mode 100755 index 0000000..56de078 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.7.webp new file mode 100755 index 0000000..d40aba7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.8.webp new file mode 100755 index 0000000..bf26d93 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.9.webp new file mode 100755 index 0000000..a2c1f30 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/rushemi/old/m/human.rashemi.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.0.webp new file mode 100755 index 0000000..9459b3b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.1.webp new file mode 100755 index 0000000..ce2d01c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.10.webp new file mode 100755 index 0000000..bf603f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.11.webp new file mode 100755 index 0000000..8591afb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.12.webp new file mode 100755 index 0000000..8efecab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.13.webp new file mode 100755 index 0000000..b9053bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.14.webp new file mode 100755 index 0000000..2f50501 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.2.webp new file mode 100755 index 0000000..26c421b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.3.webp new file mode 100755 index 0000000..906c20b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.4.webp new file mode 100755 index 0000000..b0d2a5b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.5.webp new file mode 100755 index 0000000..3809402 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.6.webp new file mode 100755 index 0000000..fb1d4d3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.7.webp new file mode 100755 index 0000000..356e659 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.8.webp new file mode 100755 index 0000000..a5e1c60 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.9.webp new file mode 100755 index 0000000..d8add78 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/f/human.terami.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.0.webp new file mode 100755 index 0000000..33d25be Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.1.webp new file mode 100755 index 0000000..d3c14da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.10.webp new file mode 100755 index 0000000..2053e9a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.11.webp new file mode 100755 index 0000000..1e10507 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.12.webp new file mode 100755 index 0000000..21e4ceb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.13.webp new file mode 100755 index 0000000..3686bdb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.14.webp new file mode 100755 index 0000000..3a5e2b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.15.webp new file mode 100755 index 0000000..8d505a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.16.webp new file mode 100755 index 0000000..453a7ac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.17.webp new file mode 100755 index 0000000..cd25377 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.2.webp new file mode 100755 index 0000000..5fb6b19 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.3.webp new file mode 100755 index 0000000..4190c51 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.4.webp new file mode 100755 index 0000000..cbc0542 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.5.webp new file mode 100755 index 0000000..75dfb4c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.6.webp new file mode 100755 index 0000000..df21cda Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.7.webp new file mode 100755 index 0000000..ccc60cf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.8.webp new file mode 100755 index 0000000..3a09050 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.9.webp new file mode 100755 index 0000000..1c407a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/adult/m/human.terami.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.0.webp new file mode 100755 index 0000000..59f3a70 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.1.webp new file mode 100755 index 0000000..937902d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.10.webp new file mode 100755 index 0000000..0664468 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.11.webp new file mode 100755 index 0000000..4ac6389 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.12.webp new file mode 100755 index 0000000..da1954b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.13.webp new file mode 100755 index 0000000..bb05508 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.14.webp new file mode 100755 index 0000000..922d249 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.15.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.15.webp new file mode 100755 index 0000000..b337779 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.2.webp new file mode 100755 index 0000000..64c1e70 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.3.webp new file mode 100755 index 0000000..eeb42d2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.4.webp new file mode 100755 index 0000000..f01abd4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.5.webp new file mode 100755 index 0000000..3710ecb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.6.webp new file mode 100755 index 0000000..2793b29 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.7.webp new file mode 100755 index 0000000..843a2ba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.8.webp new file mode 100755 index 0000000..f380cfe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.9.webp new file mode 100755 index 0000000..a477c21 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/f/human.terami.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.0.webp new file mode 100755 index 0000000..b434a44 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.1.webp new file mode 100755 index 0000000..f7f9fd3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.10.webp new file mode 100755 index 0000000..fb0d289 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.11.webp new file mode 100755 index 0000000..21cf897 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.12.webp new file mode 100755 index 0000000..216400b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.13.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.13.webp new file mode 100755 index 0000000..2583c4d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.14.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.14.webp new file mode 100755 index 0000000..6a51e7d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.2.webp new file mode 100755 index 0000000..07ad5da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.3.webp new file mode 100755 index 0000000..0b18024 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.4.webp new file mode 100755 index 0000000..1fc0a35 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.5.webp new file mode 100755 index 0000000..6e53971 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.6.webp new file mode 100755 index 0000000..a0edc08 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.7.webp new file mode 100755 index 0000000..b2b05ed Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.8.webp new file mode 100755 index 0000000..2d2e67c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.9.webp new file mode 100755 index 0000000..db523e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/kid/m/human.terami.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.0.webp new file mode 100755 index 0000000..71c304c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.1.webp new file mode 100755 index 0000000..51ab3b3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.10.webp new file mode 100755 index 0000000..712f92a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.11.webp new file mode 100755 index 0000000..9c40c02 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.12.webp new file mode 100755 index 0000000..d20a9fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.13.webp new file mode 100755 index 0000000..95faf13 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.14.webp new file mode 100755 index 0000000..370d56b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.15.webp new file mode 100755 index 0000000..8cde937 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.16.webp new file mode 100755 index 0000000..12d5937 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.17.webp new file mode 100755 index 0000000..154329f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.18.webp new file mode 100755 index 0000000..a19aa0c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.19.webp new file mode 100755 index 0000000..0a0ccc9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.2.webp new file mode 100755 index 0000000..96bb32d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.3.webp new file mode 100755 index 0000000..ffdc4ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.4.webp new file mode 100755 index 0000000..ab2bd72 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.5.webp new file mode 100755 index 0000000..7050039 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.6.webp new file mode 100755 index 0000000..d3af537 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.7.webp new file mode 100755 index 0000000..b620b9b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.8.webp new file mode 100755 index 0000000..aedb95c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.9.webp new file mode 100755 index 0000000..30aec80 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/f/human.terami.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.0.webp new file mode 100755 index 0000000..7d75723 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.1.webp new file mode 100755 index 0000000..ea41cad Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.10.webp new file mode 100755 index 0000000..84bac45 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.11.webp new file mode 100755 index 0000000..9588623 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.12.webp new file mode 100755 index 0000000..7c11fa2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.13.webp new file mode 100755 index 0000000..c850840 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.14.webp new file mode 100755 index 0000000..af877c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.15.webp new file mode 100755 index 0000000..fd5642f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.16.webp new file mode 100755 index 0000000..8e882cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.17.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.17.webp new file mode 100755 index 0000000..8d4b13d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.18.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.18.webp new file mode 100755 index 0000000..0c77c58 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.2.webp new file mode 100755 index 0000000..a9d556e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.3.webp new file mode 100755 index 0000000..dd2bb53 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.4.webp new file mode 100755 index 0000000..5091f65 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.5.webp new file mode 100755 index 0000000..7e2cbbc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.6.webp new file mode 100755 index 0000000..21008c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.7.webp new file mode 100755 index 0000000..08545c7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.8.webp new file mode 100755 index 0000000..d85f816 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.9.webp new file mode 100755 index 0000000..1a1b426 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/terami/old/m/human.terami.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.0.webp new file mode 100755 index 0000000..cf3a218 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.1.webp new file mode 100755 index 0000000..97c2331 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.10.webp new file mode 100755 index 0000000..bce667f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.11.webp new file mode 100755 index 0000000..4d9aee8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.12.webp new file mode 100755 index 0000000..885dd45 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.13.webp new file mode 100755 index 0000000..5a443eb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.14.webp new file mode 100755 index 0000000..8c790d5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.15.webp new file mode 100755 index 0000000..9faa625 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.16.webp new file mode 100755 index 0000000..b65e1e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.17.webp new file mode 100755 index 0000000..6d3d27c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.18.webp new file mode 100755 index 0000000..0a5b6ca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.19.webp new file mode 100755 index 0000000..4631e2b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.2.webp new file mode 100755 index 0000000..5c7abfa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.20.webp new file mode 100755 index 0000000..e122391 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.21.webp new file mode 100755 index 0000000..e7c418f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.22.webp new file mode 100755 index 0000000..d155612 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.23.webp new file mode 100755 index 0000000..d83ce59 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.24.webp new file mode 100755 index 0000000..761ad68 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.25.webp new file mode 100755 index 0000000..b58a971 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.26.webp new file mode 100755 index 0000000..56bcf35 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.3.webp new file mode 100755 index 0000000..8cc30ba Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.4.webp new file mode 100755 index 0000000..391e641 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.5.webp new file mode 100755 index 0000000..526de01 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.6.webp new file mode 100755 index 0000000..a7e957e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.7.webp new file mode 100755 index 0000000..ef3bed7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.8.webp new file mode 100755 index 0000000..d2fdb7e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.9.webp new file mode 100755 index 0000000..48fff11 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/f/human.tethyrian.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.0.webp new file mode 100755 index 0000000..73deda6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.1.webp new file mode 100755 index 0000000..7717553 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.10.webp new file mode 100755 index 0000000..8d304ff Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.11.webp new file mode 100755 index 0000000..3c89e2c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.12.webp new file mode 100755 index 0000000..f4c79cc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.13.webp new file mode 100755 index 0000000..1d17e8e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.14.webp new file mode 100755 index 0000000..9490f84 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.15.webp new file mode 100755 index 0000000..4434e31 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.16.webp new file mode 100755 index 0000000..1a23b82 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.17.webp new file mode 100755 index 0000000..cf6dbe5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.18.webp new file mode 100755 index 0000000..0baa4b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.19.webp new file mode 100755 index 0000000..6aff381 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.2.webp new file mode 100755 index 0000000..0653767 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.20.webp new file mode 100755 index 0000000..e0e4a20 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.21.webp new file mode 100755 index 0000000..ad88be8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.22.webp new file mode 100755 index 0000000..eceec6d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.3.webp new file mode 100755 index 0000000..055ffab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.4.webp new file mode 100755 index 0000000..87549bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.5.webp new file mode 100755 index 0000000..ee85585 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.6.webp new file mode 100755 index 0000000..38b2a46 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.7.webp new file mode 100755 index 0000000..76f98c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.8.webp new file mode 100755 index 0000000..3515073 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.9.webp new file mode 100755 index 0000000..88a0d3c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/adult/m/human.tethyrian.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.0.webp new file mode 100755 index 0000000..15e152b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.1.webp new file mode 100755 index 0000000..dfc5301 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.10.webp new file mode 100755 index 0000000..abaf571 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.11.webp new file mode 100755 index 0000000..ed4d277 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.12.webp new file mode 100755 index 0000000..eb66a1e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.2.webp new file mode 100755 index 0000000..7956463 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.3.webp new file mode 100755 index 0000000..f914a0a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.4.webp new file mode 100755 index 0000000..1d9c1b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.5.webp new file mode 100755 index 0000000..02b89fa Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.6.webp new file mode 100755 index 0000000..a0af3da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.7.webp new file mode 100755 index 0000000..8ef049a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.8.webp new file mode 100755 index 0000000..b07e986 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.9.webp new file mode 100755 index 0000000..e2ecc44 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/f/human.tethyrian.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.0.webp new file mode 100755 index 0000000..f0d348a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.1.webp new file mode 100755 index 0000000..a2926ef Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.10.webp new file mode 100755 index 0000000..6238dca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.11.webp new file mode 100755 index 0000000..2adb4a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.12.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.12.webp new file mode 100755 index 0000000..96310a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.2.webp new file mode 100755 index 0000000..1534425 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.3.webp new file mode 100755 index 0000000..22ae1cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.4.webp new file mode 100755 index 0000000..2725465 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.5.webp new file mode 100755 index 0000000..365fcca Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.6.webp new file mode 100755 index 0000000..e141eeb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.7.webp new file mode 100755 index 0000000..16662b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.8.webp new file mode 100755 index 0000000..f5e3816 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.9.webp new file mode 100755 index 0000000..3ff71ed Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/kid/m/human.tethyrian.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.0.webp new file mode 100755 index 0000000..c044c21 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.1.webp new file mode 100755 index 0000000..e1dfd88 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.10.webp new file mode 100755 index 0000000..805ec06 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.11.webp new file mode 100755 index 0000000..7f590a4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.12.webp new file mode 100755 index 0000000..a580951 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.13.webp new file mode 100755 index 0000000..a5dd689 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.14.webp new file mode 100755 index 0000000..d1873a2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.15.webp new file mode 100755 index 0000000..263ae8d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.16.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.16.webp new file mode 100755 index 0000000..27fbfbe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.17.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.17.webp new file mode 100755 index 0000000..e09e234 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.18.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.18.webp new file mode 100755 index 0000000..07e786f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.19.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.19.webp new file mode 100755 index 0000000..ef835e6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.2.webp new file mode 100755 index 0000000..f2726e8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.20.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.20.webp new file mode 100755 index 0000000..57c7319 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.21.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.21.webp new file mode 100755 index 0000000..618e7a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.3.webp new file mode 100755 index 0000000..3afd557 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.4.webp new file mode 100755 index 0000000..9c0f2e3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.5.webp new file mode 100755 index 0000000..f56d9d6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.6.webp new file mode 100755 index 0000000..9116769 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.7.webp new file mode 100755 index 0000000..1832985 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.8.webp new file mode 100755 index 0000000..757a36a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.9.webp new file mode 100755 index 0000000..ab3a890 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/f/human.tethyrian.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.0.webp new file mode 100755 index 0000000..5e8003b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.1.webp new file mode 100755 index 0000000..709b892 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.10.webp new file mode 100755 index 0000000..6484ddd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.11.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.11.webp new file mode 100755 index 0000000..f16ff20 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.12.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.12.webp new file mode 100755 index 0000000..4f6fe9b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.13.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.13.webp new file mode 100755 index 0000000..fbf52c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.14.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.14.webp new file mode 100755 index 0000000..6dd418a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.15.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.15.webp new file mode 100755 index 0000000..8443161 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.16.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.16.webp new file mode 100755 index 0000000..0e65ca0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.2.webp new file mode 100755 index 0000000..f20ed3b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.3.webp new file mode 100755 index 0000000..78a23f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.4.webp new file mode 100755 index 0000000..dfe3557 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.5.webp new file mode 100755 index 0000000..99e3b89 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.6.webp new file mode 100755 index 0000000..3499836 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.7.webp new file mode 100755 index 0000000..698bb40 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.8.webp new file mode 100755 index 0000000..20662fd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.9.webp new file mode 100755 index 0000000..4aecc8e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/human/tethyrian/old/m/human.tethyrian.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.0.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.0.webp new file mode 100755 index 0000000..b7b1780 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.1.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.1.webp new file mode 100755 index 0000000..fb7a7b0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.10.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.10.webp new file mode 100755 index 0000000..14dc149 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.11.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.11.webp new file mode 100755 index 0000000..481e5fb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.12.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.12.webp new file mode 100755 index 0000000..7d486c2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.13.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.13.webp new file mode 100755 index 0000000..97be6b2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.14.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.14.webp new file mode 100755 index 0000000..a46e861 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.15.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.15.webp new file mode 100755 index 0000000..4c7993e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.16.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.16.webp new file mode 100755 index 0000000..7740081 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.17.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.17.webp new file mode 100755 index 0000000..8fbb264 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.18.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.18.webp new file mode 100755 index 0000000..4e4a1ac Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.19.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.19.webp new file mode 100755 index 0000000..abc513a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.2.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.2.webp new file mode 100755 index 0000000..5053da8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.20.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.20.webp new file mode 100755 index 0000000..9b9683b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.21.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.21.webp new file mode 100755 index 0000000..9ad1f62 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.22.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.22.webp new file mode 100755 index 0000000..704a98c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.23.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.23.webp new file mode 100755 index 0000000..ba8db30 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.24.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.24.webp new file mode 100755 index 0000000..407a5b1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.24.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.25.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.25.webp new file mode 100755 index 0000000..ac3991e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.25.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.26.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.26.webp new file mode 100755 index 0000000..3486e71 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.26.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.27.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.27.webp new file mode 100755 index 0000000..7b6f066 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.27.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.28.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.28.webp new file mode 100755 index 0000000..4006dc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.28.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.29.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.29.webp new file mode 100755 index 0000000..3d18750 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.29.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.3.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.3.webp new file mode 100755 index 0000000..2fde4a5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.30.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.30.webp new file mode 100755 index 0000000..c306181 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.30.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.31.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.31.webp new file mode 100755 index 0000000..9cd1c75 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.31.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.32.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.32.webp new file mode 100755 index 0000000..e7e01f1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.32.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.33.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.33.webp new file mode 100755 index 0000000..8665a63 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.33.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.34.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.34.webp new file mode 100755 index 0000000..157ec20 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.34.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.35.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.35.webp new file mode 100755 index 0000000..dafcf4a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.35.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.4.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.4.webp new file mode 100755 index 0000000..59cfe56 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.5.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.5.webp new file mode 100755 index 0000000..9f5da82 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.6.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.6.webp new file mode 100755 index 0000000..a22fb79 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.7.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.7.webp new file mode 100755 index 0000000..33fccab Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.8.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.8.webp new file mode 100755 index 0000000..37a03c3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.9.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.9.webp new file mode 100755 index 0000000..9ef7843 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/f/tiefling._.commoner.a.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.0.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.0.webp new file mode 100755 index 0000000..81db383 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.1.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.1.webp new file mode 100755 index 0000000..a244ee8 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.10.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.10.webp new file mode 100755 index 0000000..2c8bd7c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.11.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.11.webp new file mode 100755 index 0000000..f587ead Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.12.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.12.webp new file mode 100755 index 0000000..905ce16 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.13.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.13.webp new file mode 100755 index 0000000..68278de Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.14.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.14.webp new file mode 100755 index 0000000..7d1a439 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.15.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.15.webp new file mode 100755 index 0000000..c43fe13 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.16.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.16.webp new file mode 100755 index 0000000..21761bc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.16.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.17.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.17.webp new file mode 100755 index 0000000..4346bc7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.17.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.18.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.18.webp new file mode 100755 index 0000000..13741f4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.18.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.19.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.19.webp new file mode 100755 index 0000000..9a5f1a1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.19.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.2.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.2.webp new file mode 100755 index 0000000..5d29b63 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.20.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.20.webp new file mode 100755 index 0000000..c7fedfd Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.20.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.21.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.21.webp new file mode 100755 index 0000000..2123d6b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.21.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.22.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.22.webp new file mode 100755 index 0000000..fff7bbf Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.22.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.23.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.23.webp new file mode 100755 index 0000000..bd08ea7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.23.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.3.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.3.webp new file mode 100755 index 0000000..03d2d36 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.4.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.4.webp new file mode 100755 index 0000000..46fce8c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.5.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.5.webp new file mode 100755 index 0000000..7832c8e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.6.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.6.webp new file mode 100755 index 0000000..4cb5911 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.7.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.7.webp new file mode 100755 index 0000000..e85c13f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.8.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.8.webp new file mode 100755 index 0000000..770fb0b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.9.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.9.webp new file mode 100755 index 0000000..39efbda Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/adult/m/tiefling._.commoner.a.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.0.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.0.webp new file mode 100755 index 0000000..5143cc1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.1.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.1.webp new file mode 100755 index 0000000..bfee5da Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.10.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.10.webp new file mode 100755 index 0000000..55303f9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.11.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.11.webp new file mode 100755 index 0000000..d865482 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.12.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.12.webp new file mode 100755 index 0000000..f4b1f0e Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.13.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.13.webp new file mode 100755 index 0000000..4379304 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.14.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.14.webp new file mode 100755 index 0000000..0d24e13 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.2.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.2.webp new file mode 100755 index 0000000..be90cfe Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.3.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.3.webp new file mode 100755 index 0000000..9d9a9e5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.4.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.4.webp new file mode 100755 index 0000000..29b949f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.5.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.5.webp new file mode 100755 index 0000000..3bb51b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.6.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.6.webp new file mode 100755 index 0000000..53e6f00 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.7.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.7.webp new file mode 100755 index 0000000..f4a1f5a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.8.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.8.webp new file mode 100755 index 0000000..dd428b5 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.9.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.9.webp new file mode 100755 index 0000000..7a9fb30 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/f/tiefling._.commoner.c.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.0.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.0.webp new file mode 100755 index 0000000..8d8a5e2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.1.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.1.webp new file mode 100755 index 0000000..781aab2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.10.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.10.webp new file mode 100755 index 0000000..1ce08a6 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.11.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.11.webp new file mode 100755 index 0000000..050c2dc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.2.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.2.webp new file mode 100755 index 0000000..90059f3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.3.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.3.webp new file mode 100755 index 0000000..1bc1b47 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.4.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.4.webp new file mode 100755 index 0000000..aec26ce Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.5.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.5.webp new file mode 100755 index 0000000..2171cd2 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.6.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.6.webp new file mode 100755 index 0000000..4757363 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.7.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.7.webp new file mode 100755 index 0000000..e603acb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.8.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.8.webp new file mode 100755 index 0000000..99ccea3 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.9.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.9.webp new file mode 100755 index 0000000..cef3822 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/kid/m/tiefling._.commoner.c.m.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.0.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.0.webp new file mode 100755 index 0000000..17d4af4 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.1.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.1.webp new file mode 100755 index 0000000..45b2680 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.10.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.10.webp new file mode 100755 index 0000000..562b63f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.11.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.11.webp new file mode 100755 index 0000000..90d99dc Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.11.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.12.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.12.webp new file mode 100755 index 0000000..41bf64a Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.12.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.13.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.13.webp new file mode 100755 index 0000000..d15bc81 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.13.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.14.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.14.webp new file mode 100755 index 0000000..23dba18 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.14.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.15.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.15.webp new file mode 100755 index 0000000..fade2e1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.15.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.2.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.2.webp new file mode 100755 index 0000000..8464d61 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.3.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.3.webp new file mode 100755 index 0000000..648af02 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.4.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.4.webp new file mode 100755 index 0000000..4bd4753 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.5.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.5.webp new file mode 100755 index 0000000..ee7771c Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.6.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.6.webp new file mode 100755 index 0000000..ab908c9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.7.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.7.webp new file mode 100755 index 0000000..84783b9 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.8.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.8.webp new file mode 100755 index 0000000..b99127d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.9.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.9.webp new file mode 100755 index 0000000..469004b Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/f/tiefling._.commoner.o.f.9.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.0.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.0.webp new file mode 100755 index 0000000..fae1db1 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.0.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.1.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.1.webp new file mode 100755 index 0000000..aee1a6f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.1.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.10.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.10.webp new file mode 100755 index 0000000..90a8d6d Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.10.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.2.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.2.webp new file mode 100755 index 0000000..53012e7 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.2.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.3.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.3.webp new file mode 100755 index 0000000..75ce65f Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.3.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.4.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.4.webp new file mode 100755 index 0000000..b63b5a0 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.4.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.5.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.5.webp new file mode 100755 index 0000000..ced6f50 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.5.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.6.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.6.webp new file mode 100755 index 0000000..2f63232 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.6.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.7.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.7.webp new file mode 100755 index 0000000..46146cb Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.7.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.8.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.8.webp new file mode 100755 index 0000000..a1c2296 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.8.webp differ diff --git a/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.9.webp b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.9.webp new file mode 100755 index 0000000..49eec75 Binary files /dev/null and b/test_tube_merchant/assets/traider/token/tiefling/normal/old/m/tiefling._.commoner.o.m.9.webp differ diff --git a/test_tube_merchant/assets/ui/Allecks_logo.png b/test_tube_merchant/assets/ui/Allecks_logo.png new file mode 100755 index 0000000..86c0735 Binary files /dev/null and b/test_tube_merchant/assets/ui/Allecks_logo.png differ diff --git a/test_tube_merchant/assets/ui/logo.png b/test_tube_merchant/assets/ui/logo.png new file mode 100755 index 0000000..48b0670 Binary files /dev/null and b/test_tube_merchant/assets/ui/logo.png differ diff --git a/test_tube_merchant/black_border.png b/test_tube_merchant/black_border.png new file mode 100755 index 0000000..a43defc Binary files /dev/null and b/test_tube_merchant/black_border.png differ diff --git a/test_tube_merchant/items/bad/animals/fvtt-Item-korm-dlya-zhivotnyh-a1PHqy8kndpsTtE4.json b/test_tube_merchant/items/bad/animals/fvtt-Item-korm-dlya-zhivotnyh-a1PHqy8kndpsTtE4.json new file mode 100755 index 0000000..b349a85 --- /dev/null +++ b/test_tube_merchant/items/bad/animals/fvtt-Item-korm-dlya-zhivotnyh-a1PHqy8kndpsTtE4.json @@ -0,0 +1,116 @@ +{ + "name": "Корм для животных", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/Animal_food.png", + "system": { + "description": { + "value": "
Корм примерно на один день
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "potion", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "exportSource": { + "world": "test", + "system": "dnd5e", + "coreVersion": "12.327", + "systemVersion": "3.3.1" + } + }, + "_stats": { + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1723736743874, + "modifiedTime": 1723737684483, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/cheshujchatyj-dospeh-_-scale-mail.json b/test_tube_merchant/items/bad/armor/cheshujchatyj-dospeh-_-scale-mail.json new file mode 100755 index 0000000..e49cb10 --- /dev/null +++ b/test_tube_merchant/items/bad/armor/cheshujchatyj-dospeh-_-scale-mail.json @@ -0,0 +1,131 @@ +{ + "name": "Чешуйчатый доспех / Scale Mail", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Scale_mail-5e.webp", + "system": { + "description": { + "value": "Состоит из кожаной куртки и штанов (а иногда и отдельной юбки), покрытых внахлёст чешуйками из металла, похожими на рыбьи. Доспех включает и рукавицы.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 45, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 14, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "scalemail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Scale Mail" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/kol�chatyj-dospeh-_-ring-mail.json b/test_tube_merchant/items/bad/armor/kol�chatyj-dospeh-_-ring-mail.json new file mode 100755 index 0000000..277f5f4 --- /dev/null +++ b/test_tube_merchant/items/bad/armor/kol�chatyj-dospeh-_-ring-mail.json @@ -0,0 +1,131 @@ +{ + "name": "Кольчатый доспех / Ring Mail", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Ringmail-5e.webp", + "system": { + "description": { + "value": "Сделан из кожи, на которую нашиты толстые металлические кольца. Они защищают броню от ударов мечей и топоров. Кольчатый доспех похуже кольчуги, его, как правила, носят лишь те, кто не может себе позволить хорошую броню.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 30, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 14, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "ringmail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ring Mail" + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/kol�chuga-_-chain-mail.json b/test_tube_merchant/items/bad/armor/kol�chuga-_-chain-mail.json new file mode 100755 index 0000000..7b6e33d --- /dev/null +++ b/test_tube_merchant/items/bad/armor/kol�chuga-_-chain-mail.json @@ -0,0 +1,131 @@ +{ + "name": "Кольчуга / Chain Mail", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Chain_shirt-5e.webp", + "system": { + "description": { + "value": "Сделана из переплетённых металлических колец, её носят поверх стёганой ткани, чтобы она не звенела и чтобы смягчить удары. Доспех включает и рукавицы.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 55, + "units": "lb" + }, + "price": { + "value": 75, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 16, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 13, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "chainmail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Chain Mail" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/kol�chuzhnaya-rubaha-_-chain-shirt.json b/test_tube_merchant/items/bad/armor/kol�chuzhnaya-rubaha-_-chain-shirt.json new file mode 100755 index 0000000..b39bcfe --- /dev/null +++ b/test_tube_merchant/items/bad/armor/kol�chuzhnaya-rubaha-_-chain-shirt.json @@ -0,0 +1,124 @@ +{ + "name": "Кольчужная рубаха / Chain Shirt", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-scale-grey.webp", + "system": { + "description": { + "value": "Сделана из переплетённых металлических колец, её обычно носят между слоями одежды. Она худо-бедно защищает торс носителя и позволяет приглушить звон колец друг об друга благодаря внешним слоям одежды.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 20, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 13, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "chainshirt" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Chain Shirt" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/med�.json b/test_tube_merchant/items/bad/armor/med�.json new file mode 100755 index 0000000..df8b12b --- /dev/null +++ b/test_tube_merchant/items/bad/armor/med�.json @@ -0,0 +1,40 @@ +{ + "name": "Медь", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Copper.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/shit-_-shield.json b/test_tube_merchant/items/bad/armor/shit-_-shield.json new file mode 100755 index 0000000..018a1a5 --- /dev/null +++ b/test_tube_merchant/items/bad/armor/shit-_-shield.json @@ -0,0 +1,124 @@ +{ + "name": "Щит / Shield", + "type": "equipment", + "img": "icons/equipment/shield/round-wooden-boss-steel-brown.webp", + "system": { + "description": { + "value": "Щит из дерева или металла носят в одной руке. Использование щита увеличивает ваш класс брони на 2. Ношение более чем одного щита не принесёт дополнительной пользы.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 2, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "shield", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shield" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/armor/zhelezo.json b/test_tube_merchant/items/bad/armor/zhelezo.json new file mode 100755 index 0000000..bfd9bce --- /dev/null +++ b/test_tube_merchant/items/bad/armor/zhelezo.json @@ -0,0 +1,40 @@ +{ + "name": "Железо", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Iron.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/bars/flyaga.json b/test_tube_merchant/items/bad/bars/flyaga.json new file mode 100755 index 0000000..2819aa4 --- /dev/null +++ b/test_tube_merchant/items/bad/bars/flyaga.json @@ -0,0 +1,41 @@ +{ + "name": "Фляга", + "type": "loot", + "img": "icons/consumables/drinks/tea-jug-gourd-brown.webp", + "system": { + "description": { + "value": "Изготовлена из олова или дерева
", + "chat": "" + }, + "source": { + "custom": "WBW" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/books/bumaga-_-paper.json b/test_tube_merchant/items/bad/books/bumaga-_-paper.json new file mode 100755 index 0000000..f5bf391 --- /dev/null +++ b/test_tube_merchant/items/bad/books/bumaga-_-paper.json @@ -0,0 +1,41 @@ +{ + "name": "Бумага / Paper", + "type": "loot", + "img": "icons/sundries/documents/paper-plain-white.webp", + "system": { + "description": { + "value": "Один лист бумаги.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/books/mel-_-chalk.json b/test_tube_merchant/items/bad/books/mel-_-chalk.json new file mode 100755 index 0000000..5055cc4 --- /dev/null +++ b/test_tube_merchant/items/bad/books/mel-_-chalk.json @@ -0,0 +1,41 @@ +{ + "name": "Мел / Chalk", + "type": "loot", + "img": "icons/commodities/stone/ore-chunk-white.webp", + "system": { + "description": { + "value": "Это мягкая белая пористая карбонатная порода, разновидность известняка, состоящая из минерала кальцита. Может использоваться для рисования.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/books/pergament-_-parchment.json b/test_tube_merchant/items/bad/books/pergament-_-parchment.json new file mode 100755 index 0000000..662b1bb --- /dev/null +++ b/test_tube_merchant/items/bad/books/pergament-_-parchment.json @@ -0,0 +1,41 @@ +{ + "name": "Пергамент / Parchment", + "type": "loot", + "img": "icons/sundries/documents/paper-plain-white.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "system": { + "description": { + "value": "Один лист плотной пергаментной бумаги.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/books/pischee-pero-_-scribe's-pen.json b/test_tube_merchant/items/bad/books/pischee-pero-_-scribe's-pen.json new file mode 100755 index 0000000..fcbc85b --- /dev/null +++ b/test_tube_merchant/items/bad/books/pischee-pero-_-scribe's-pen.json @@ -0,0 +1,119 @@ +{ + "name": "Писчее перо / Scribe's Pen", + "type": "equipment", + "system": { + "description": { + "value": "Требуется настроенность существом с Меткой Письма
Этим пером можно писать на любой поверхности. Вы сами решаете, является ли надпись видимой или @UUID[Compendium.laaru-dnd5-hw.conditions.z03U5lNQtd71dWJT]{невидимой}, но надпись всегда видна носителю Метки Письма.
Любой носитель Метки Письма может действием коснуться невидимой надписи, сделав её видимой для всех.
Если вы используете перо, чтобы писать на существе, которое не является конструкцией, то надпись исчезает через 7 дней.
", + "chat": "" + }, + "source": { + "custom": "ERLW" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "attunement": "required", + "equipped": true, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "img": "icons/tools/scribal/ink-quill-pink.webp", + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/books/svincovye-chernila-(10-zm).json b/test_tube_merchant/items/bad/books/svincovye-chernila-(10-zm).json new file mode 100755 index 0000000..82fea7d --- /dev/null +++ b/test_tube_merchant/items/bad/books/svincovye-chernila-(10-zm).json @@ -0,0 +1,41 @@ +{ + "name": "Свинцовые чернила (10 зм)", + "type": "loot", + "img": "icons/tools/scribal/ink-quill-red.webp", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.06, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/fashion/mantiya-_-robes.json b/test_tube_merchant/items/bad/fashion/mantiya-_-robes.json new file mode 100755 index 0000000..1b920db --- /dev/null +++ b/test_tube_merchant/items/bad/fashion/mantiya-_-robes.json @@ -0,0 +1,124 @@ +{ + "name": "Мантия / Robes", + "type": "equipment", + "img": "icons/equipment/back/cloak-collared-pink.webp", + "system": { + "description": { + "value": "Простая или церемониальная одежда, часто используемая священниками и другими религиозными деятелями.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Robes" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/fashion/odezhda-puteshestvennika-_-traveler's-clothes.json b/test_tube_merchant/items/bad/fashion/odezhda-puteshestvennika-_-traveler's-clothes.json new file mode 100755 index 0000000..709c0c5 --- /dev/null +++ b/test_tube_merchant/items/bad/fashion/odezhda-puteshestvennika-_-traveler's-clothes.json @@ -0,0 +1,121 @@ +{ + "name": "Одежда путешественника / Traveler's Clothes", + "type": "equipment", + "img": "icons/equipment/chest/shirt-collared-brown.webp", + "system": { + "description": { + "value": "Комплект одежды которую обычно носят путешественники.
", + "chat": "" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Traveler's Clothes" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/fashion/povsednevnaya-odezhda-_-common-clothes.json b/test_tube_merchant/items/bad/fashion/povsednevnaya-odezhda-_-common-clothes.json new file mode 100755 index 0000000..c178a8c --- /dev/null +++ b/test_tube_merchant/items/bad/fashion/povsednevnaya-odezhda-_-common-clothes.json @@ -0,0 +1,121 @@ +{ + "name": "Повседневная одежда / Common Clothes", + "type": "equipment", + "img": "icons/equipment/chest/vest-leather-tattered-white.webp", + "system": { + "description": { + "value": "Одежда, которую носит большинство простолюдинов.
", + "chat": "" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Common Clothes" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/fashion/shapka,-chepchik.json b/test_tube_merchant/items/bad/fashion/shapka,-chepchik.json new file mode 100755 index 0000000..cbd6ab8 --- /dev/null +++ b/test_tube_merchant/items/bad/fashion/shapka,-chepchik.json @@ -0,0 +1,144 @@ +{ + "name": "Шапка, чепчик", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/cap.png", + "system": { + "description": { + "value": "Головной убор домработницы.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "scene-packer": { + "hash": "f10771f8e6dbc38868f5b27986ebda1f063f4374", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/fashion/shapka,-chulok.json b/test_tube_merchant/items/bad/fashion/shapka,-chulok.json new file mode 100755 index 0000000..84842d7 --- /dev/null +++ b/test_tube_merchant/items/bad/fashion/shapka,-chulok.json @@ -0,0 +1,144 @@ +{ + "name": "Шапка, чулок", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/cap_2.png", + "system": { + "description": { + "value": "Длинная и заостренная шапка, предназначенная для зимних ночей.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "scene-packer": { + "hash": "bcd0dfc973e317b15f5b95b2903762c667815fe9", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/fashion/shapka,-kozhanaya.json b/test_tube_merchant/items/bad/fashion/shapka,-kozhanaya.json new file mode 100755 index 0000000..4cf5f9e --- /dev/null +++ b/test_tube_merchant/items/bad/fashion/shapka,-kozhanaya.json @@ -0,0 +1,141 @@ +{ + "name": "Шапка, кожаная", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/skin_helm.png", + "system": { + "description": { + "value": "Уродливая кожаная шапка, но помогает держать голову сухой.", + "chat": "" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "scene-packer": { + "hash": "12c6798099f11727df4ad76f5b24f6f8a0382401", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/flowers/pobeg-omely-_-sprig-of-mistletoe.json b/test_tube_merchant/items/bad/flowers/pobeg-omely-_-sprig-of-mistletoe.json new file mode 100755 index 0000000..443af79 --- /dev/null +++ b/test_tube_merchant/items/bad/flowers/pobeg-omely-_-sprig-of-mistletoe.json @@ -0,0 +1,117 @@ +{ + "name": "Побег омелы / Sprig of Mistletoe", + "type": "weapon", + "img": "icons/consumables/plants/fern-lady-green.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Живая веточка омелы, остролиста или какого-нибудь другого священного листа, сорванная с дерева, корни которого глубоко погружены в линию сил. Те, кто прислушивается к зову природы, способны использовать эту связь, чтобы вызвать невероятную силу природы.
\nФокусирующий предмет друида. Это особый предмет, предназначенный для направления энергии заклинаний из списка заклинаний друида. Друид может использовать этот предмет вместо любых реагентов для заклинаний, кроме тех, для которых указана стоимость.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 151" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "foc", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "natural", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/flowers/raznye-cvety.json b/test_tube_merchant/items/bad/flowers/raznye-cvety.json new file mode 100755 index 0000000..0909c1d --- /dev/null +++ b/test_tube_merchant/items/bad/flowers/raznye-cvety.json @@ -0,0 +1,105 @@ +{ + "name": "Разные цветы", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/any_flowers.png", + "system": { + "description": { + "value": "Некачественный букет из дикорастущих цветов
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "trinket", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/flowers/semena-—-polevye.json b/test_tube_merchant/items/bad/flowers/semena-—-polevye.json new file mode 100755 index 0000000..a2437c3 --- /dev/null +++ b/test_tube_merchant/items/bad/flowers/semena-—-polevye.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Полевые цветы", + "type": "loot", + "system": { + "description": { + "value": "Вырастет до 60 полевых цветов. Вырастают за 100 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/wild_flowers.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/flowers/semena-—-pshenica.json b/test_tube_merchant/items/bad/flowers/semena-—-pshenica.json new file mode 100755 index 0000000..fd92535 --- /dev/null +++ b/test_tube_merchant/items/bad/flowers/semena-—-pshenica.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Пшеница", + "type": "loot", + "system": { + "description": { + "value": "Семена пшеницы — это маленькие коричневые семена, которые получают из колоса пшеницы. Они используются для выращивания пшеницы — зерна, которое после помола используется для приготовления хлеба, пасты и других хлебобулочных изделий. Это один из самых продаваемых товаров, наряду с семенами кукурузы.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "icons/consumables/grains/wheat-yellow.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/abrikos.json b/test_tube_merchant/items/bad/food/abrikos.json new file mode 100755 index 0000000..3e0356f --- /dev/null +++ b/test_tube_merchant/items/bad/food/abrikos.json @@ -0,0 +1,41 @@ +{ + "name": "Абрикос", + "type": "loot", + "img": "icons/consumables/fruit/apricot-ripe-orange.webp", + "system": { + "description": { + "value": "Один из немногих фруктов, который также сушат, чтобы он был съедобен в межсезонье. Его также используют в различных блюдах, летних салатах, джемах, соках и даже в алкоголе.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.1, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/hleb.json b/test_tube_merchant/items/bad/food/hleb.json new file mode 100755 index 0000000..6fd9240 --- /dev/null +++ b/test_tube_merchant/items/bad/food/hleb.json @@ -0,0 +1,41 @@ +{ + "name": "Хлеб", + "type": "loot", + "img": "icons/consumables/grains/bread-loaf-orange.webp", + "system": { + "description": { + "value": "Хлеб — это один из важнейших продуктов питания, приготовленный из теста, которое было испечено. Он бывает разных форм, размеров и вкусов. В большинстве таверн и трактиров его часто продают в качестве гарнира к любому из основных блюд, которые там готовят.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.08, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/maslo.json b/test_tube_merchant/items/bad/food/maslo.json new file mode 100755 index 0000000..a218ea0 --- /dev/null +++ b/test_tube_merchant/items/bad/food/maslo.json @@ -0,0 +1,41 @@ +{ + "name": "Масло", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/butter.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/moloko.json b/test_tube_merchant/items/bad/food/moloko.json new file mode 100755 index 0000000..699ae99 --- /dev/null +++ b/test_tube_merchant/items/bad/food/moloko.json @@ -0,0 +1,41 @@ +{ + "name": "Молоко", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/milk.png", + "system": { + "description": { + "value": "Молоко — это побочный продукт животноводства, который обычно получают от коров, коз и овец. Это белая питательная жидкость, которую часто употребляют в качестве напитка или используют для приготовления различных молочных продуктов, таких как сыр, масло и йогурт. Ученые считают, что она обладает магическими свойствами, способными укрепить кости до невероятной степени.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/muka.json b/test_tube_merchant/items/bad/food/muka.json new file mode 100755 index 0000000..45fe076 --- /dev/null +++ b/test_tube_merchant/items/bad/food/muka.json @@ -0,0 +1,41 @@ +{ + "name": "Мука", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Flour.png", + "system": { + "description": { + "value": "Куриные, утиные или подобные
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/pitanie,-bednoe.json b/test_tube_merchant/items/bad/food/pitanie,-bednoe.json new file mode 100755 index 0000000..280a8c7 --- /dev/null +++ b/test_tube_merchant/items/bad/food/pitanie,-bednoe.json @@ -0,0 +1,41 @@ +{ + "name": "Питание, бедное", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/bad_porridge.png", + "system": { + "description": { + "value": "Каша с кусками жира, выглядит жалко
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 6, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/pshenica.json b/test_tube_merchant/items/bad/food/pshenica.json new file mode 100755 index 0000000..679514f --- /dev/null +++ b/test_tube_merchant/items/bad/food/pshenica.json @@ -0,0 +1,41 @@ +{ + "name": "Пшеница", + "type": "loot", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "icons/consumables/grains/wheat-yellow.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 25 + 1d25" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/syr.json b/test_tube_merchant/items/bad/food/syr.json new file mode 100755 index 0000000..0692df2 --- /dev/null +++ b/test_tube_merchant/items/bad/food/syr.json @@ -0,0 +1,41 @@ +{ + "name": "Сыр", + "type": "loot", + "img": "icons/consumables/food/cheese-cube-gold.webp", + "system": { + "description": { + "value": "Ароматная закуска, получаемая из заквашеиваемого особым образм молока. Имеет цвет от молочно-белого, до насыщенного оранжевого. Любим как простолюдинами, так и знатью.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.75, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/yabloko.json b/test_tube_merchant/items/bad/food/yabloko.json new file mode 100755 index 0000000..0286c96 --- /dev/null +++ b/test_tube_merchant/items/bad/food/yabloko.json @@ -0,0 +1,41 @@ +{ + "name": "Яблоко", + "type": "loot", + "img": "icons/consumables/fruit/apple-ripe-red.webp", + "system": { + "description": { + "value": "Яблоки растут почти во всех регионах, и их обычно едят сырыми, однако их также можно использовать в различных блюдах, в основном в пирогах, или в брожении, для браги, эля или сидра.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.05, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/yajca.json b/test_tube_merchant/items/bad/food/yajca.json new file mode 100755 index 0000000..5b424c8 --- /dev/null +++ b/test_tube_merchant/items/bad/food/yajca.json @@ -0,0 +1,41 @@ +{ + "name": "Яйца", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/eggs.png", + "system": { + "description": { + "value": "Куриные, утиные или подобные
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/food/zelyonoe-yabloko.json b/test_tube_merchant/items/bad/food/zelyonoe-yabloko.json new file mode 100755 index 0000000..02c4804 --- /dev/null +++ b/test_tube_merchant/items/bad/food/zelyonoe-yabloko.json @@ -0,0 +1,41 @@ +{ + "name": "Зелёное яблоко", + "type": "loot", + "img": "icons/consumables/fruit/apple-green.webp", + "system": { + "description": { + "value": "Трактирщики используют зеленые яблоки для гарнира к некоторым напиткам, а также в качестве полезного десерта. Из зеленых яблок во всем королевстве делают знаменитые сидры, поэтому у трактирщиков и таверн зеленые яблоки всегда в цене.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.04, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/agat-bastionnyj.json b/test_tube_merchant/items/bad/jewelry/agat-bastionnyj.json new file mode 100755 index 0000000..c548e16 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/agat-bastionnyj.json @@ -0,0 +1,41 @@ +{ + "name": "Агат бастионный", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-cushion-teal.webp", + "system": { + "description": { + "value": "Самоцвет полупрозрачный, синие, белые, красные или бурые полосы.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/agat-glazkovyj.json b/test_tube_merchant/items/bad/jewelry/agat-glazkovyj.json new file mode 100755 index 0000000..95f9c84 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/agat-glazkovyj.json @@ -0,0 +1,41 @@ +{ + "name": "Агат глазковый", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-trapeze-yellow-green.webp", + "system": { + "description": { + "value": "Самоцвет полупрозрачный, в кружках серого, белого, бурого, синего или зелёного цвета.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/azurit.json b/test_tube_merchant/items/bad/jewelry/azurit.json new file mode 100755 index 0000000..10e6973 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/azurit.json @@ -0,0 +1,41 @@ +{ + "name": "Азурит", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-cushion-blue.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Азурит — очень распространенный минерал лазурно-голубого цвета, из которого обычно вырезают бусины или украшения. Благодаря своей огнеупорности он чаще всего используется кузнецами в качестве талисмана, чтобы избежать травм во время работы.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/biryuza.json b/test_tube_merchant/items/bad/jewelry/biryuza.json new file mode 100755 index 0000000..81efd44 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/biryuza.json @@ -0,0 +1,41 @@ +{ + "name": "Бирюза", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-rectangular-teal.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Бирюза, обработанная резьбой или использованная в качестве украшения, на протяжении всей истории считалась драгоценным камнем. Ее находили в старых гробницах в виде небольших статуэток животных или в качестве украшений на дверях королевских домов. Это распространенный талисман удачи, который используют гонцы и торговцы во время путешествий, чтобы уберечься от засад или неудач в своих будущих поездках.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/gematit.json b/test_tube_merchant/items/bad/jewelry/gematit.json new file mode 100755 index 0000000..fabb5fd --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/gematit.json @@ -0,0 +1,41 @@ +{ + "name": "Гематит", + "type": "loot", + "img": "icons/commodities/stone/ore-pile-red.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Обычно он встречается вместе с железными жилами. В зависимости от его цвета при добыче, он в основном используется для изготовления красных или бурых пигментов. В редких случаях его используют в магических целях, поскольку существует предположение, что этот самоцвет связан с кровью и жизненной силой. Применяется в целительском искусстве и некромантии.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/kirka-shahtyorskaya-_-miner-pick.json b/test_tube_merchant/items/bad/jewelry/kirka-shahtyorskaya-_-miner-pick.json new file mode 100755 index 0000000..85ff149 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/kirka-shahtyorskaya-_-miner-pick.json @@ -0,0 +1,46 @@ +{ + "name": "Кирка шахтёрская / Miner Pick", + "type": "loot", + "img": "icons/tools/hand/pickaxe-steel-white.webp", + "system": { + "description": { + "value": "Это ручной инструмент с твердой головкой, прикрепленной перпендикулярно к рукоятке.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Miner's Pick" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/kol�co,-prostoe.json b/test_tube_merchant/items/bad/jewelry/kol�co,-prostoe.json new file mode 100755 index 0000000..68bd8a3 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/kol�co,-prostoe.json @@ -0,0 +1,41 @@ +{ + "name": "Кольцо, простое", + "type": "loot", + "img": "icons/equipment/finger/ring-band-notched-gold.webp", + "system": { + "description": { + "value": "Небольшое кольцо из полудрагоценного металла.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0.06, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/kvarc.json b/test_tube_merchant/items/bad/jewelry/kvarc.json new file mode 100755 index 0000000..dc5f6d1 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/kvarc.json @@ -0,0 +1,40 @@ +{ + "name": "Кварц", + "type": "loot", + "img": "icons/commodities/gems/gem-cluster-teal.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Светло-голубой или прозрачный кварц не имеет большого применения и используется в основном для украшений. Когда для заклинаний требуются драгоценные камни, которые не имеют требований по ценности, кварц — лучший вариант камень для заклинателей, поскольку стоит он недорого.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/lazurit.json b/test_tube_merchant/items/bad/jewelry/lazurit.json new file mode 100755 index 0000000..13f8be0 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/lazurit.json @@ -0,0 +1,41 @@ +{ + "name": "Лазурит", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-navette-blue.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Голубой непрозрачный драгоценный камень обычно используется в качестве украшения колец, браслетов, подвесок или талисманов. Из-за специфического цвета иногда его обрабатывают в форме грифонов, скарабеев или даже единорогов.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/malahit.json b/test_tube_merchant/items/bad/jewelry/malahit.json new file mode 100755 index 0000000..85a6c7c --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/malahit.json @@ -0,0 +1,41 @@ +{ + "name": "Малахит", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-navette-green.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Популярный минерал, используемый в основном для получения красителей или для окрашивания металлов в зеленый оттенок при создании железных слитков. Кузнецы и ювелиры обычно заказывают большое количество малахита для своего ремесла. Ходят слухи, что в давние времена малахит использовался для защиты от падений, однако магические искусства, необходимые для этого заклинания, были утеряны со временем.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/medal�on,-latun�.json b/test_tube_merchant/items/bad/jewelry/medal�on,-latun�.json new file mode 100755 index 0000000..e6ce35c --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/medal�on,-latun�.json @@ -0,0 +1,41 @@ +{ + "name": "Медальон, латунь", + "type": "loot", + "img": "icons/equipment/neck/amulet-round-engraved-gold.webp", + "system": { + "description": { + "value": "Латунный медальон, простой и недорогой.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/med�.json b/test_tube_merchant/items/bad/jewelry/med�.json new file mode 100755 index 0000000..4f0f858 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/med�.json @@ -0,0 +1,41 @@ +{ + "name": "Медь", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Copper.png", + "system": { + "description": { + "value": "Медный слиток, используется в различных ремеслах.", + "chat": "" + }, + "source": { + "custom": "КИ 157" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/mohovoj-agat.json b/test_tube_merchant/items/bad/jewelry/mohovoj-agat.json new file mode 100755 index 0000000..6a1ee83 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/mohovoj-agat.json @@ -0,0 +1,40 @@ +{ + "name": "Моховой агат", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-heart-pink.webp", + "system": { + "description": { + "value": "Полупрозрачный розовый или жёлто-белый с серыми или зелёными отметинами самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/obsidian.json b/test_tube_merchant/items/bad/jewelry/obsidian.json new file mode 100755 index 0000000..a8b4754 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/obsidian.json @@ -0,0 +1,40 @@ +{ + "name": "Обсидиан", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-tapered-purple.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Лава при остывании оставляет после себя огромные куски обсидиана. Этот драгоценный камень используется для изготовления короткоклинкового оружия, инструментов, украшений, кухонной утвари и зеркал. Некоторые сомнительные группировки используют кольца с зазубренными краями, созданные из обсидиана, для нанесения небольших глубоких порезов своим жертвам.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/rodohrozit.json b/test_tube_merchant/items/bad/jewelry/rodohrozit.json new file mode 100755 index 0000000..139a23c --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/rodohrozit.json @@ -0,0 +1,40 @@ +{ + "name": "Родохрозит", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-square-red.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Родохрозит, или, как его еще называют, Розовый камень, очень популярен среди аристократов благодаря своему розовому цвету. Известно, что они обычно из кожи вон лезут, чтобы приобрести этот вид драгоценного камня. Используется для украшения серег, колец, ожерелий или браслетов. Считается, что несколько кусочков Родохрозита, если их правильно измельчить и смешать с дополнительными травами, нейтрализуют большинство ядов и болезней.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/ser�gi,-prostye.json b/test_tube_merchant/items/bad/jewelry/ser�gi,-prostye.json new file mode 100755 index 0000000..462b443 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/ser�gi,-prostye.json @@ -0,0 +1,40 @@ +{ + "name": "Серьги, простые", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/earsring.png", + "system": { + "description": { + "value": "Маленький гвоздик или колечко из благородного металла.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/tigrovyj-glaz.json b/test_tube_merchant/items/bad/jewelry/tigrovyj-glaz.json new file mode 100755 index 0000000..e27f906 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/tigrovyj-glaz.json @@ -0,0 +1,40 @@ +{ + "name": "Тигровый глаз", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-square-orange-red.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Один из самых распространенных драгоценных камней, используемый в качестве статусного аксессуара среди простолюдинов, так как он имеет золотисто-черный цвет. Из-за высокого спроса, в зависимости от региона, он может быть довольно редким. В большинстве суеверных групп считается, что этот камень отпугивает нежить и беспокойных духов.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/uvelichitel�noe-steklo-_-magnifying-glass.json b/test_tube_merchant/items/bad/jewelry/uvelichitel�noe-steklo-_-magnifying-glass.json new file mode 100755 index 0000000..5bbbfb1 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/uvelichitel�noe-steklo-_-magnifying-glass.json @@ -0,0 +1,45 @@ +{ + "name": "Увеличительное стекло / Magnifying Glass", + "type": "loot", + "img": "icons/tools/scribal/magnifying-glass.webp", + "system": { + "description": { + "value": "Позволяет разглядеть мелкие предметы. Может также служить заменой кремню и кресалу для разжигания костра. Чтобы разжечь костёр с помощью увеличительного стекла, требуется яркий свет (как солнечный), который можно сфокусировать, трут для поджигания и примерно 5 минут, прежде чем пламя разгорится. Увеличительное стекло даёт преимущество ко всем проверкам характеристик, требуемым для оценки и изучения маленьких или детальных предметов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Magnifying Glass" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/jewelry/zhelezo.json b/test_tube_merchant/items/bad/jewelry/zhelezo.json new file mode 100755 index 0000000..6890a90 --- /dev/null +++ b/test_tube_merchant/items/bad/jewelry/zhelezo.json @@ -0,0 +1,40 @@ +{ + "name": "Железо", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Iron.png", + "system": { + "description": { + "value": "Железный слиток, используется в различных ремеслах.", + "chat": "" + }, + "source": { + "custom": "КИ 157" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/mechanical/poduyomnyj-blok.json b/test_tube_merchant/items/bad/mechanical/poduyomnyj-blok.json new file mode 100755 index 0000000..fd17333 --- /dev/null +++ b/test_tube_merchant/items/bad/mechanical/poduyomnyj-blok.json @@ -0,0 +1,109 @@ +{ + "name": "Подъёмный блок", + "type": "consumable", + "img": "icons/tools/hand/spinning-wheel-brown.webp", + "system": { + "description": { + "value": "Система блоков, пропущенный через них трос и крюк, которым можно поднимать предметы. Позволяет поднять вчетверо больший вес, чем вы можете поднять обычно.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Block and Tackle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/mechanical/schyoty-_-abacus.json b/test_tube_merchant/items/bad/mechanical/schyoty-_-abacus.json new file mode 100755 index 0000000..1a070c4 --- /dev/null +++ b/test_tube_merchant/items/bad/mechanical/schyoty-_-abacus.json @@ -0,0 +1,45 @@ +{ + "name": "Счёты / Abacus", + "type": "loot", + "img": "icons/commodities/tech/metal-panel.webp", + "system": { + "description": { + "value": "Счёты, также называемый абаком, – это инструмент для произведения вычислений.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Abacus" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/mechanical/shariki-_-ball-bearings.json b/test_tube_merchant/items/bad/mechanical/shariki-_-ball-bearings.json new file mode 100755 index 0000000..dae0aef --- /dev/null +++ b/test_tube_merchant/items/bad/mechanical/shariki-_-ball-bearings.json @@ -0,0 +1,109 @@ +{ + "name": "Шарики / Ball Bearings", + "type": "consumable", + "img": "icons/commodities/gems/pearl-rock.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ball Bearings" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "В качестве действия вы можете рассыпать 1000 маленьких металлических шариков из мешочка, чтобы покрыть ими ровную квадратную область размером 10 на 10 футов. Существо, перемещающееся через эту область, должно пройти испытание Ловкости со СЛ 10, при провале оно упадёт и &reference[prone]{распластается}. Существу, перемещающемуся через область с половинной скоростью, испытание проходить не нужно.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1000, + "weight": { + "value": 0.002, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 10, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/mechanical/sklyanka-s-maslom-_-oil-flask.json b/test_tube_merchant/items/bad/mechanical/sklyanka-s-maslom-_-oil-flask.json new file mode 100755 index 0000000..432c553 --- /dev/null +++ b/test_tube_merchant/items/bad/mechanical/sklyanka-s-maslom-_-oil-flask.json @@ -0,0 +1,114 @@ +{ + "name": "Склянка с маслом / Oil Flask", + "type": "consumable", + "img": "icons/consumables/potions/potion-jar-corked-orange.webp", + "system": { + "description": { + "value": "Масло обычно разливают в глиняные ёмкости объёмом в 1 пинту. В качестве действия вы можете выплеснуть масло из этой склянки на существо в пределах 5 футов от вас или метнуть её на 20 футов — от удара склянка разобьётся. Совершите дистанционную атаку по этому существу или объекту, считая масло импровизированным оружием.
\nПри попадании цель будет покрыта маслом. Если цель получит какой-либо урон огнём прежде, чем масло высохнет (в течение 1 минуты), цель дополнительно получает 5 урона огнём от горящего масла. Можно также вылить масло из склянки на землю, что создаст лужу в 5-футовом квадрате, если поверхность ровная.
\nЕсли лужу поджечь, она будет гореть 2 раунда и наносить 5 урона огнём любому существу, которое войдет в эту область или закончит в ней свой ход. Существо может получить этот урон только раз в ход.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 5, + "long": 20, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "dex", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Oil Flask" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/mechanical/vintiki.json b/test_tube_merchant/items/bad/mechanical/vintiki.json new file mode 100755 index 0000000..7d15701 --- /dev/null +++ b/test_tube_merchant/items/bad/mechanical/vintiki.json @@ -0,0 +1,104 @@ +{ + "name": "Винтики", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/smallScrew.png", + "system": { + "description": { + "value": "Маленькие винтики, используемые для сборки и ремонта механизмов.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "trinket", + "subtype": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/potions/nabor-travnika-_-herbalism-kit.json b/test_tube_merchant/items/bad/potions/nabor-travnika-_-herbalism-kit.json new file mode 100755 index 0000000..c955f81 --- /dev/null +++ b/test_tube_merchant/items/bad/potions/nabor-travnika-_-herbalism-kit.json @@ -0,0 +1,92 @@ +{ + "name": "Набор травника / Herbalism Kit", + "type": "tool", + "img": "icons/tools/laboratory/mortar-powder-green.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Herbalism Kit" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Сюда входят различные инструменты вроде щипцов, ступки и пестика, а также кошельки и пузырьки, которыми пользуются травники, чтобы готовить лекарства и зелья. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с определением и использованием трав. Также это умение требуется, чтобы приготовить противоядие и зелье исцеления.
\nУмение в обращении с набором травника позволяет вам распознавать растения и безопасно собирать их полезные части.
\nКомпоненты. Набор травника включает в себя мешочки для хранения трав, секатор и кожаные перчатки для сбора растений, несколько стеклянных банок, ступку и пестик.
\nМагия. Ваша осведомлённость в природе и использовании растений может дать дополнительные знания к магическим исследованиям, когда дело касается растений и попыток опознать зелье.
\nРасследование. Когда вы обследуете заросшую растениями зону, владение этим набором помогает вам находить детали и зацепки, которые другие бы проглядели.
\nМедицина. Ваше умение в обращении с набором травника улучшает ваши способности лечить болезни и раны, расширяя доступные методы благодаря использованию лекарственных растений.
\nВыживание и Природа. Когда вы путешествуете в дикой местности, ваши навыки травничества облегчают опознание растений и поиск источников еды, которые другие могут не заметить.
\nОпознание растений. Вы можете быстро распознать большинство растений по запаху и внешнему виду.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Найти растения | \n15 | \n
| Опознать яд | \n20 | \n
Зелье — красная жидкость, которая мерцает, если её встряхнуть.
Персонаж, выпивший магическую красную жидкость из этого пузырька, восстанавливает [[/r 2d4 + 2]] пункта здоровья. Чтобы выпить зелье или влить его в рот другому, требуется действие.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d4 + 2", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [ + "mgc" + ], + "unidentified": { + "description": "Зелье — красная жидкость, которая мерцает, если её встряхнуть.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Potion of Healing" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/potions/zel�e-lazaniya-_-potion-of-climbing.json b/test_tube_merchant/items/bad/potions/zel�e-lazaniya-_-potion-of-climbing.json new file mode 100755 index 0000000..8cc943e --- /dev/null +++ b/test_tube_merchant/items/bad/potions/zel�e-lazaniya-_-potion-of-climbing.json @@ -0,0 +1,173 @@ +{ + "name": "Зелье лазания / Potion of Climbing", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Climbing.webp", + "effects": [ + { + "changes": [ + { + "key": "system.attributes.movement.climb", + "mode": 4, + "value": "@attributes.movement.walk", + "priority": 4 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": 3600, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": false, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true, + "selfTarget": false, + "selfTargetAlways": false, + "dontApply": false, + "showIcon": false + } + }, + "_id": "0ss42yphc9xs5jgk", + "origin": null, + "name": "Скорость лазания", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Climbing.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20climbing_dmg" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Climbing", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы получаете скорость лазания, равную вашей скорости ходьбы, на 1 час. На это время у вас преимущество к проверкам Силы (Атлетика) для лазания.
\nЗелье состоит из слоёв бурого, серебристого и серого цветов, похожих на породы камня. Если встряхнуть бутылку, слои не перемешиваются.
\nЗелье состоит из слоёв бурого, серебристого и серого цветов, похожих на породы камня. Если встряхнуть бутылку, слои не перемешиваются.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/potions/zel�e-yada-_-potion-of-poison.json b/test_tube_merchant/items/bad/potions/zel�e-yada-_-potion-of-poison.json new file mode 100755 index 0000000..abc63be --- /dev/null +++ b/test_tube_merchant/items/bad/potions/zel�e-yada-_-potion-of-poison.json @@ -0,0 +1,121 @@ +{ + "name": "Зелье яда / Potion of Poison", + "type": "consumable", + "img": "icons/consumables/potions/bottle-round-corked-orante-red.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20poison_dmg" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Poison", + "translated": true + } + }, + "system": { + "description": { + "value": "Это снадобье на вид, вкус и запах неотличимо от зелья исцеления или другого полезного зелья. На самом деле это яд, замаскированный магией иллюзии. Заклинание @UUID[Compendium.laaru-dnd5-hw.spells.Item.hYlsH4UD97HeWuws]{опознание} выдаст его истинную суть.
Выпив это зелье, вы получите [[/r 3d6]] урона ядом и должны пройти испытание Выносливости со СЛ 13, при провале вы &reference[poisoned]{отравлены}. В начале каждого вашего хода, пока вы так отравлены, вы получаете [[/r 3d6]] урона ядом. В конце каждого своего хода вы можете повторить испытание. При успехе урон ядом в последующие ходы снижается на [[/r 1d6]] . Когда урон снижается до 0, отравление прекращается.
Зелье — красная жидкость, которая мерцает, если её встряхнуть.
" + }, + "type": { + "value": "poison", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/blagovoniya.json b/test_tube_merchant/items/bad/religious/blagovoniya.json new file mode 100755 index 0000000..920d2a4 --- /dev/null +++ b/test_tube_merchant/items/bad/religious/blagovoniya.json @@ -0,0 +1,40 @@ +{ + "name": "Благовония", + "type": "loot", + "img": "icons/commodities/materials/bowl-powder-blue.webp", + "system": { + "description": { + "value": "Благовония с густым, мускусным или острым запахом, используются в ритуалах.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/ceremonial�nyj-kinzhal.json b/test_tube_merchant/items/bad/religious/ceremonial�nyj-kinzhal.json new file mode 100755 index 0000000..09dfc0a --- /dev/null +++ b/test_tube_merchant/items/bad/religious/ceremonial�nyj-kinzhal.json @@ -0,0 +1,127 @@ +{ + "name": "Церемониальный кинжал", + "type": "weapon", + "img": "icons/weapons/daggers/dagger-crooked-black.webp", + "system": { + "description": { + "value": "Церемониальный кинжал из электрума с чёрной жемчужиной в рукояти
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 750, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr", + "fin" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "crewed": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dagger" + }, + "test_tube_merchant": { + "quantity": "1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/kniga,-s-molitvami.json b/test_tube_merchant/items/bad/religious/kniga,-s-molitvami.json new file mode 100755 index 0000000..86073f0 --- /dev/null +++ b/test_tube_merchant/items/bad/religious/kniga,-s-molitvami.json @@ -0,0 +1,40 @@ +{ + "name": "Книга, с молитвами", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/book_religion.png", + "system": { + "description": { + "value": "Книга с молитвами, уникальная для каждого бога.", + "chat": "" + }, + "source": { + "custom": "КИ 150" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/mel-_-chalk.json b/test_tube_merchant/items/bad/religious/mel-_-chalk.json new file mode 100755 index 0000000..9bc28b0 --- /dev/null +++ b/test_tube_merchant/items/bad/religious/mel-_-chalk.json @@ -0,0 +1,45 @@ +{ + "name": "Мел / Chalk", + "type": "loot", + "img": "icons/commodities/stone/ore-chunk-white.webp", + "system": { + "description": { + "value": "Это мягкая белая пористая карбонатная порода, разновидность известняка, состоящая из минерала кальцита. Может использоваться для рисования.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Chalk" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/svyashennyj-simvol.json b/test_tube_merchant/items/bad/religious/svyashennyj-simvol.json new file mode 100755 index 0000000..78fd3ea --- /dev/null +++ b/test_tube_merchant/items/bad/religious/svyashennyj-simvol.json @@ -0,0 +1,40 @@ +{ + "name": "Священный символ", + "type": "loot", + "img": "icons/commodities/treasure/token-gold-cross.webp", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/zaklinanie_-lechenie-ran.json b/test_tube_merchant/items/bad/religious/zaklinanie_-lechenie-ran.json new file mode 100755 index 0000000..3e00990 --- /dev/null +++ b/test_tube_merchant/items/bad/religious/zaklinanie_-lechenie-ran.json @@ -0,0 +1,40 @@ +{ + "name": "Заклинание: Лечение ран", + "type": "loot", + "img": "icons/magic/life/cross-explosion-burst-green.webp", + "system": { + "description": { + "value": "Заклинание 1го уровня: [[/damage 1d8+3 healing]]{исцеляет 1d8+3 ПЗ.}
", + "chat": "" + }, + "source": { + "custom": "КИ 235" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/religious/zaklinanie_-opoznanie.json b/test_tube_merchant/items/bad/religious/zaklinanie_-opoznanie.json new file mode 100755 index 0000000..0645e92 --- /dev/null +++ b/test_tube_merchant/items/bad/religious/zaklinanie_-opoznanie.json @@ -0,0 +1,40 @@ +{ + "name": "Заклинание: Опознание", + "type": "loot", + "img": "icons/sundries/scrolls/scroll-bound-blue-red.webp", + "system": { + "description": { + "value": "Сообщает вам свойства магического предмета.", + "chat": "" + }, + "source": { + "custom": "КИ 250" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 20, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/scrolls/fvtt-Item-instrumenty-kalligrafa-_-calligrapher's-supplies-CgRHNyVjrm33AVjR.json b/test_tube_merchant/items/bad/scrolls/fvtt-Item-instrumenty-kalligrafa-_-calligrapher's-supplies-CgRHNyVjrm33AVjR.json new file mode 100755 index 0000000..c88e8aa --- /dev/null +++ b/test_tube_merchant/items/bad/scrolls/fvtt-Item-instrumenty-kalligrafa-_-calligrapher's-supplies-CgRHNyVjrm33AVjR.json @@ -0,0 +1,92 @@ +{ + "name": "Инструменты каллиграфа / Calligrapher's Supplies", + "type": "tool", + "img": "icons/commodities/materials/parchment-secrets.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Calligrapher's Supplies" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия каллиграфией. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nКаллиграфия относится к письму как к прекрасному уточненному искусству. Каллиграфы создают текст, который радует глаз, используя стиль, который сложно подделать. Их инструменты также дают им возможность исследовать рукописный текст и определить его подлинность, поскольку обучение каллиграфа включало в себя многие часы обучения письму и попытки повторить его стиль и оформление.
\nКомпоненты. Инструменты каллиграфа включают в себя чернила, множество пергаментных листов и три писчих пера.
\nМагия. Хотя каллиграфия мало помогает в расшифровке содержимого магического текста, умение в обращении с этими инструментами помогает определить, кто написал магический текст.
\nИстория. Умение в обращении с этими инструментами может увеличить выгоду при успешной проверке, совершаемой для анализа или исследования древних записей, свитков или другого текста, включая руны, вырезанные на камне, а также письмена на фресках или других изображениях.
\nРасшифровка карты сокровищ. Умение в обращении с этими инструментами позволяет вам проводить экспертизу карт. Вы можете совершить проверку Интеллекта, чтобы оценить возраст карты, определить, содержит ли карта скрытое послание, и так далее.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Опознать писавшего немагический рукописный текст | \n10 | \n
| Определить душевное состояние писавшего | \n15 | \n
| Распознать поддельный текст | \n15 | \n
| Подделать подпись | \n20 | \n
Необходима волшебникам. Том в кожаном переплёте со 100 пустыми пергаментными страницами, удобными для записи заклинаний.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 153" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/scrolls/fvtt-Item-pergament-_-parchment-zhw0MvbBZk8cZfqE.json b/test_tube_merchant/items/bad/scrolls/fvtt-Item-pergament-_-parchment-zhw0MvbBZk8cZfqE.json new file mode 100755 index 0000000..8fae741 --- /dev/null +++ b/test_tube_merchant/items/bad/scrolls/fvtt-Item-pergament-_-parchment-zhw0MvbBZk8cZfqE.json @@ -0,0 +1,45 @@ +{ + "name": "Пергамент / Parchment", + "type": "loot", + "img": "icons/sundries/documents/paper-plain-white.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Parchment" + }, + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "system": { + "description": { + "value": "Один лист плотной пергаментной бумаги.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 0.1, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/scrolls/fvtt-Item-pero-_-ink-pen-VHtNyfsBOCF8VKDo.json b/test_tube_merchant/items/bad/scrolls/fvtt-Item-pero-_-ink-pen-VHtNyfsBOCF8VKDo.json new file mode 100755 index 0000000..43ebbf6 --- /dev/null +++ b/test_tube_merchant/items/bad/scrolls/fvtt-Item-pero-_-ink-pen-VHtNyfsBOCF8VKDo.json @@ -0,0 +1,45 @@ +{ + "name": "Перо / Ink Pen", + "type": "loot", + "img": "icons/commodities/materials/feather-red-.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ink Pen" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Птичье перо, используемое в сочетании с чернилами для письма или рисования на листе бумаги.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 0.02, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/scrolls/fvtt-Item-svincovye-chernila-(10-zm)-zTKXIaUbFuuu67eY.json b/test_tube_merchant/items/bad/scrolls/fvtt-Item-svincovye-chernila-(10-zm)-zTKXIaUbFuuu67eY.json new file mode 100755 index 0000000..1ca8ae2 --- /dev/null +++ b/test_tube_merchant/items/bad/scrolls/fvtt-Item-svincovye-chernila-(10-zm)-zTKXIaUbFuuu67eY.json @@ -0,0 +1,40 @@ +{ + "name": "Свинцовые чернила (10 зм)", + "type": "loot", + "img": "icons/tools/scribal/ink-quill-red.webp", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.06, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/scrolls/fvtt-Item-tubus-dlya-svitkov-i-kart-8nVaacA8JrsqD3WN.json b/test_tube_merchant/items/bad/scrolls/fvtt-Item-tubus-dlya-svitkov-i-kart-8nVaacA8JrsqD3WN.json new file mode 100755 index 0000000..36d8ad0 --- /dev/null +++ b/test_tube_merchant/items/bad/scrolls/fvtt-Item-tubus-dlya-svitkov-i-kart-8nVaacA8JrsqD3WN.json @@ -0,0 +1,58 @@ +{ + "name": "Тубус для свитков и карт", + "type": "container", + "img": "icons/containers/bags/case-leather-tan.webp", + "system": { + "description": { + "value": "Цилиндрический кожаный тубус может вместить до десяти свёрнутых листов бумаги или пяти свёрнутых листов пергамента.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "items", + "value": 10 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Map or Scroll Case" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/burdyuk-_-waterskin.json b/test_tube_merchant/items/bad/skin/burdyuk-_-waterskin.json new file mode 100755 index 0000000..550cb4a --- /dev/null +++ b/test_tube_merchant/items/bad/skin/burdyuk-_-waterskin.json @@ -0,0 +1,109 @@ +{ + "name": "Бурдюк / Waterskin", + "type": "consumable", + "img": "icons/sundries/survival/wetskin-leather-purple.webp", + "system": { + "description": { + "value": "Мешок из цельной шкуры животного сшитый в закрытую камеру, предназначен для хранения до 4 пинт жидкости. В наполненном состоянии весит 5 фунтов; пинта воды равна примерно 1 фунту.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 4, + "max": "4", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "food", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Waterskin" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/koshel�.json b/test_tube_merchant/items/bad/skin/koshel�.json new file mode 100755 index 0000000..2f6b5d0 --- /dev/null +++ b/test_tube_merchant/items/bad/skin/koshel�.json @@ -0,0 +1,59 @@ +{ + "name": "Кошель", + "type": "container", + "img": "icons/containers/bags/coinpouch-simple-tan.webp", + "system": { + "description": { + "value": "Холщовая или кожаная сумочка, способная вместить до ⅕ кубического фута или 6 фунтов снаряжения. Также в ней могут поместиться 20 ядер для пращи или до 50 игл для трубки.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 6 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "folder": null, + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pouch" + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/myaso.json b/test_tube_merchant/items/bad/skin/myaso.json new file mode 100755 index 0000000..e622130 --- /dev/null +++ b/test_tube_merchant/items/bad/skin/myaso.json @@ -0,0 +1,40 @@ +{ + "name": "Мясо", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/meat.png", + "system": { + "description": { + "value": "Говядина, свинина, курица, дичь и прочее
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/shapka,-kozhanaya.json b/test_tube_merchant/items/bad/skin/shapka,-kozhanaya.json new file mode 100755 index 0000000..fbc7994 --- /dev/null +++ b/test_tube_merchant/items/bad/skin/shapka,-kozhanaya.json @@ -0,0 +1,171 @@ +{ + "name": "Шапка, кожаная", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/skin_helm.png", + "system": { + "description": { + "value": "Уродливая, но помогает держать голову сухой
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [ + { + "name": "Шапка, кожаная", + "origin": "Item.37LW49HWVzlhMMHX", + "duration": { + "rounds": null, + "startTime": null, + "seconds": null, + "combat": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "disabled": false, + "flags": { + "dnd5e": {}, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/skin_helm.png", + "_id": "0pxD2t2nrPTPF2p5", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.attributes.ac.bonus", + "mode": 2, + "value": "1", + "priority": 20 + } + ], + "description": "", + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1724084150089, + "modifiedTime": 1724084229058, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/styoganyj-dospeh-_-padded-armor.json b/test_tube_merchant/items/bad/skin/styoganyj-dospeh-_-padded-armor.json new file mode 100755 index 0000000..e640f8a --- /dev/null +++ b/test_tube_merchant/items/bad/skin/styoganyj-dospeh-_-padded-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Стёганый доспех / Padded Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-quilted-brown.webp", + "system": { + "description": { + "value": "Состоит из нескольких слоёв ткани и набивки. Стёганый доспех обеспечивает сравнимый с жёсткой кожей уровень защиты, но в меньшей степени отягощает носителя.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 8, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 11, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "light", + "baseItem": "padded" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Padded Armor" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/uzda-_-bit-and-bridle.json b/test_tube_merchant/items/bad/skin/uzda-_-bit-and-bridle.json new file mode 100755 index 0000000..df6fab4 --- /dev/null +++ b/test_tube_merchant/items/bad/skin/uzda-_-bit-and-bridle.json @@ -0,0 +1,124 @@ +{ + "name": "Узда / Bit and Bridle", + "type": "equipment", + "img": "icons/environment/creatures/horse-brown.webp", + "system": { + "description": { + "value": "Компонент снаряжения лошади, который надевается на голову и соединяется с поводьями. Он состоит из нескольких регулируемых кожаных ремешков, соединительных металлических колец и мундштука, изготовленного из веревки, кости, рога или другого твердого материала, такого как бронза, сталь, никель или дерево.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Bit and Bridle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/skin/v�yuchnoe-sedlo-_-pack-saddle.json b/test_tube_merchant/items/bad/skin/v�yuchnoe-sedlo-_-pack-saddle.json new file mode 100755 index 0000000..df5b8d8 --- /dev/null +++ b/test_tube_merchant/items/bad/skin/v�yuchnoe-sedlo-_-pack-saddle.json @@ -0,0 +1,124 @@ +{ + "name": "Вьючное седло / Pack Saddle", + "type": "equipment", + "img": "icons/equipment/shoulder/shoulderpad-fur-leather.webp", + "system": { + "description": { + "value": "Тип седла, которое крепится на спине лошади и предназначено для поддержки всадника и крепления части снаряжения лошади, например, стремян. Этот тип седла подходит для вьючных животных.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 15, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pack Saddle" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/thieves/fakel-_-torch.json b/test_tube_merchant/items/bad/thieves/fakel-_-torch.json new file mode 100755 index 0000000..8d66d84 --- /dev/null +++ b/test_tube_merchant/items/bad/thieves/fakel-_-torch.json @@ -0,0 +1,135 @@ +{ + "name": "Факел / Torch", + "type": "consumable", + "img": "icons/sundries/lights/torch-black.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Torch" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + }, + "midi-qol": { + "fumbleThreshold": null, + "effectActivation": false, + "forceCEOff": false, + "forceCEOn": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "autoFailFriendly": false, + "autoSaveFriendly": false, + "rollOther": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false + } + }, + "system": { + "description": { + "value": "Горит 1 час, даёт &reference[brightlight]{яркий свет} в радиусе 20 футов и &reference[dimlight]{тусклый} ещё на 20 футов. Если совершить горящим факелом атаку ближнего боя, при попадании он нанесёт 1 урон огнём.
*Для быстрого зажигания/тушения факела на токене, можно использовать следующий макрос (игроку следует его перетащить на панель быстрого доступа): @UUID[Compendium.laaru-dnd5-hw.macro.74bKUFXbQUUvAXBG]{Свет}
", + "chat": "Горит 1 час, даёт яркий свет в радиусе 20 футов и тусклый ещё на 20 футов. Если совершить горящим факелом атаку ближнего боя, при попадании он нанесёт 1 урон огнём.
" + }, + "source": { + "custom": "PHB pg. 153" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.01, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "str", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/thieves/kryuk-koshka-_-grapping-hook.json b/test_tube_merchant/items/bad/thieves/kryuk-koshka-_-grapping-hook.json new file mode 100755 index 0000000..83e71a5 --- /dev/null +++ b/test_tube_merchant/items/bad/thieves/kryuk-koshka-_-grapping-hook.json @@ -0,0 +1,45 @@ +{ + "name": "Крюк-кошка / Grapping Hook", + "type": "loot", + "img": "icons/tools/fishing/hook-multi-steel-brown.webp", + "system": { + "description": { + "value": "Приспособление с железными когтями, может использоваться с веревкой для перетаскивания или захвата.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Grappling Hook" + }, + "test_tube_merchant": { + "quantity": "1d4 + 2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/thieves/lestnica-(10-futov)-_-ladder-(10-ft).json b/test_tube_merchant/items/bad/thieves/lestnica-(10-futov)-_-ladder-(10-ft).json new file mode 100755 index 0000000..5e83a22 --- /dev/null +++ b/test_tube_merchant/items/bad/thieves/lestnica-(10-futov)-_-ladder-(10-ft).json @@ -0,0 +1,45 @@ +{ + "name": "Лестница (10 футов) / Ladder (10 ft)", + "type": "loot", + "img": "icons/sundries/misc/ladder-improvised.webp", + "system": { + "description": { + "value": "Лестница длиной 10 футов, прочная или шаткая, в зависимости от руки, которая её смастерила.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 25, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ladder (10-foot)" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/thieves/meshok.json b/test_tube_merchant/items/bad/thieves/meshok.json new file mode 100755 index 0000000..4b321c8 --- /dev/null +++ b/test_tube_merchant/items/bad/thieves/meshok.json @@ -0,0 +1,59 @@ +{ + "name": "Мешок", + "type": "container", + "img": "icons/containers/bags/sack-cloth-orange.webp", + "system": { + "description": { + "value": "Мешок вмещает 1 куб. фут или 30 фунтов снаряжения.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 0.5, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 30 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "folder": "HbQlPHRH0bI1mlYQ", + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sack" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/thieves/nabor-verholaza-_-climber's-kit.json b/test_tube_merchant/items/bad/thieves/nabor-verholaza-_-climber's-kit.json new file mode 100755 index 0000000..c860d8b --- /dev/null +++ b/test_tube_merchant/items/bad/thieves/nabor-verholaza-_-climber's-kit.json @@ -0,0 +1,109 @@ +{ + "name": "Набор верхолаза / Climber's Kit", + "type": "consumable", + "img": "icons/weapons/sickles/sickle-hooked-wood.webp", + "system": { + "description": { + "value": "В набор входят особые колышки, шипы для обуви, перчатки и крепления. Вы можете использовать набор верхолаза в качестве действия, чтобы закрепиться. После этого вы не можете упасть дальше чем на 25 футов от места, где закрепились, но и сами не можете забраться далее чем на 25 футов, не открепляясь.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 12, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Climber's Kit" + }, + "test_tube_merchant": { + "quantity": "1d4 + 2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/thieves/pen�kovaya-veryovka-(50-futov)-_-hempen-rope-(50ft.).json b/test_tube_merchant/items/bad/thieves/pen�kovaya-veryovka-(50-futov)-_-hempen-rope-(50ft.).json new file mode 100755 index 0000000..a9f1f9e --- /dev/null +++ b/test_tube_merchant/items/bad/thieves/pen�kovaya-veryovka-(50-futov)-_-hempen-rope-(50ft.).json @@ -0,0 +1,109 @@ +{ + "name": "Пеньковая верёвка (50 футов) / Hempen Rope (50ft.)", + "type": "consumable", + "img": "icons/sundries/survival/rope-wrapped-brown.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hempen Rope (50 ft.)" + }, + "test_tube_merchant": { + "quantity": "1d3 * 50 + 1d50" + } + }, + "system": { + "description": { + "value": "Верёвка, сделанная из пеньки, имеет 2 ПЗ. Её можно порвать проверкой Силы со СЛ 17.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 153" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "abil", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 17, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/fakel.json b/test_tube_merchant/items/bad/tools/fakel.json new file mode 100755 index 0000000..b3c521d --- /dev/null +++ b/test_tube_merchant/items/bad/tools/fakel.json @@ -0,0 +1,117 @@ +{ + "name": "Факел", + "type": "consumable", + "img": "icons/sundries/lights/torch-black.webp", + "system": { + "description": { + "value": "Горит 1 час, даёт яркий свет в радиусе 20 футов и тусклый ещё на 20 футов. Если совершить горящим факелом атаку ближнего боя, при попадании он нанесёт 1 урон огнём.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "str", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [], + "attack": { + "bonus": "", + "flat": false + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Torch" + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/kinzhal-_-dagger.json b/test_tube_merchant/items/bad/tools/kinzhal-_-dagger.json new file mode 100755 index 0000000..c73eeb9 --- /dev/null +++ b/test_tube_merchant/items/bad/tools/kinzhal-_-dagger.json @@ -0,0 +1,127 @@ +{ + "name": "Кинжал / Dagger", + "type": "weapon", + "img": "icons/weapons/daggers/dagger-jeweled-purple.webp", + "system": { + "description": { + "value": "Короткий металлический клинок, прикрепленный к небольшой рукояти и гарде. Кинжал является эффективным вспомогательным оружием для закаленных воинов или скрытым клинком для убийц и воров.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dagger" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/kirka-shahtyorskaya.json b/test_tube_merchant/items/bad/tools/kirka-shahtyorskaya.json new file mode 100755 index 0000000..c4a36ea --- /dev/null +++ b/test_tube_merchant/items/bad/tools/kirka-shahtyorskaya.json @@ -0,0 +1,49 @@ +{ + "name": "Кирка шахтёрская", + "type": "loot", + "img": "icons/tools/hand/pickaxe-steel-white.webp", + "system": { + "description": { + "value": "Это ручной инструмент с твердой головкой, прикрепленной перпендикулярно к рукоятке.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "type": { + "value": "", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [] + }, + "effects": [], + "folder": "qH3mSpoR9mQfHi1V", + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Miner's Pick" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/lampa-_-lamp.json b/test_tube_merchant/items/bad/tools/lampa-_-lamp.json new file mode 100755 index 0000000..a621018 --- /dev/null +++ b/test_tube_merchant/items/bad/tools/lampa-_-lamp.json @@ -0,0 +1,109 @@ +{ + "name": "Лампа / Lamp", + "type": "consumable", + "img": "icons/sundries/lights/lantern-iron-lit-yellow.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Lamp" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "Даёт &reference[brightlight]{яркий свет} в радиусе 15 футов и &reference[dimlight]{тусклый} ещё на 30 футов. Если её зажечь, она тратит за 6 часов склянку масла (1 пинту).
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 152" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "45", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/lestnica-(10-futov)-_-ladder-(10-ft).json b/test_tube_merchant/items/bad/tools/lestnica-(10-futov)-_-ladder-(10-ft).json new file mode 100755 index 0000000..16eb784 --- /dev/null +++ b/test_tube_merchant/items/bad/tools/lestnica-(10-futov)-_-ladder-(10-ft).json @@ -0,0 +1,45 @@ +{ + "name": "Лестница (10 футов) / Ladder (10 ft)", + "type": "loot", + "img": "icons/sundries/misc/ladder-improvised.webp", + "system": { + "description": { + "value": "Лестница длиной 10 футов, прочная или шаткая, в зависимости от руки, которая её смастерила.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 25, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ladder (10-foot)" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/lopata.json b/test_tube_merchant/items/bad/tools/lopata.json new file mode 100755 index 0000000..ac3c66f --- /dev/null +++ b/test_tube_merchant/items/bad/tools/lopata.json @@ -0,0 +1,48 @@ +{ + "name": "Лопата", + "type": "loot", + "img": "icons/tools/hand/shovel-spade-steel-grey.webp", + "system": { + "description": { + "value": "Инструмент с широким лезвием и обычно вздернутыми боками, используемый для перемещения углей, земли, снега или других материалов.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "type": { + "value": "", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shovel" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/molotok-_-hammer.json b/test_tube_merchant/items/bad/tools/molotok-_-hammer.json new file mode 100755 index 0000000..4d8d250 --- /dev/null +++ b/test_tube_merchant/items/bad/tools/molotok-_-hammer.json @@ -0,0 +1,45 @@ +{ + "name": "Молоток / Hammer", + "type": "loot", + "img": "icons/tools/hand/hammer-cobbler-steel.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hammer" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "Инструмент с тяжелой металлической головкой, установленной на конце рукоятки, используемый для разбивания предметов и забивания гвоздей.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 150" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/poduyomnyj-blok.json b/test_tube_merchant/items/bad/tools/poduyomnyj-blok.json new file mode 100755 index 0000000..191b4f1 --- /dev/null +++ b/test_tube_merchant/items/bad/tools/poduyomnyj-blok.json @@ -0,0 +1,109 @@ +{ + "name": "Подъёмный блок", + "type": "consumable", + "img": "icons/tools/hand/spinning-wheel-brown.webp", + "system": { + "description": { + "value": "Система блоков, пропущенный через них трос и крюк, которым можно поднимать предметы. Позволяет поднять вчетверо больший вес, чем вы можете поднять обычно.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Block and Tackle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/shest-(10-futov).json b/test_tube_merchant/items/bad/tools/shest-(10-futov).json new file mode 100755 index 0000000..25df4cf --- /dev/null +++ b/test_tube_merchant/items/bad/tools/shest-(10-futov).json @@ -0,0 +1,48 @@ +{ + "name": "Шест (10 футов)", + "type": "loot", + "img": "icons/commodities/wood/wood-pole.webp", + "system": { + "description": { + "value": "Десятифутовый шест из прочного дерева.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 7, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "type": { + "value": "", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pole" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/tools/shipy-«chesnok»-_-caltrops.json b/test_tube_merchant/items/bad/tools/shipy-«chesnok»-_-caltrops.json new file mode 100755 index 0000000..690dbf2 --- /dev/null +++ b/test_tube_merchant/items/bad/tools/shipy-«chesnok»-_-caltrops.json @@ -0,0 +1,114 @@ +{ + "name": "Шипы-«чеснок» / Caltrops", + "type": "consumable", + "img": "icons/weapons/thrown/bomb-spiked-purple.webp", + "system": { + "description": { + "value": "В качестве действия вы можете разбросать «чеснок» из мешочка, покрыв этими шипами квадратную область размером 5 на 5 футов. Существо, входящее в эту область, должно пройти испытание Ловкости со СЛ 15, при провале оно прекратит перемещение в этот ход и получит 1 колющий урон. Пока получившее урон существо не восстановит хоть 1 ПЗ, его скорость ходьбы будет снижена на 10 футов. Существу, перемещающемуся через область с половинной скоростью, испытание проходить не нужно.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Caltrops" + }, + "test_tube_merchant": { + "quantity": "1d3 * 40 + 1d40" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/flyaga.json b/test_tube_merchant/items/bad/trinkets/flyaga.json new file mode 100755 index 0000000..cfaa85c --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/flyaga.json @@ -0,0 +1,41 @@ +{ + "name": "Фляга", + "type": "loot", + "img": "icons/consumables/drinks/tea-jug-gourd-brown.webp", + "system": { + "description": { + "value": "Изготовлена из олова или дерева
", + "chat": "" + }, + "source": { + "custom": "WBW" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/korzina.json b/test_tube_merchant/items/bad/trinkets/korzina.json new file mode 100755 index 0000000..63fde42 --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/korzina.json @@ -0,0 +1,54 @@ +{ + "name": "Корзина", + "type": "container", + "img": "icons/environment/traps/cage-simple-wood.webp", + "system": { + "description": { + "value": "Корзина вмещает 2 куб. фута или 40 фунтов снаряжения.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 20 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "folder": "Pov8zeyHVsiRenNC", + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/mel-_-chalk.json b/test_tube_merchant/items/bad/trinkets/mel-_-chalk.json new file mode 100755 index 0000000..66fe54e --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/mel-_-chalk.json @@ -0,0 +1,45 @@ +{ + "name": "Мел / Chalk", + "type": "loot", + "img": "icons/commodities/stone/ore-chunk-white.webp", + "system": { + "description": { + "value": "Это мягкая белая пористая карбонатная порода, разновидность известняка, состоящая из минерала кальцита. Может использоваться для рисования.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Chalk" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/nabor-igral�nyh-kart-_-playing-cards-set.json b/test_tube_merchant/items/bad/trinkets/nabor-igral�nyh-kart-_-playing-cards-set.json new file mode 100755 index 0000000..670d585 --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/nabor-igral�nyh-kart-_-playing-cards-set.json @@ -0,0 +1,106 @@ +{ + "name": "Набор игральных карт / Playing Cards Set", + "type": "tool", + "img": "icons/sundries/gaming/playing-cards.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + }, + "magicitems": { + "enabled": false, + "equipped": false, + "attuned": false, + "charges": "0", + "chargeType": "c1", + "destroy": false, + "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.", + "rechargeable": false, + "recharge": "0", + "rechargeType": "t1", + "rechargeUnit": "r1", + "sorting": "l" + }, + "babele": { + "hasTranslation": true, + "originalName": "Playing Cards Set", + "translated": true + } + }, + "system": { + "description": { + "value": "Сюда входит большой диапазон типов игральных карт, как немаркированных, так и маркированных. Умение в обращении с игральными картами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с этой игрой.
\nКомпоненты. Игровой набор включает в себя всё необходимое для игры в карты.
\nИстория. Ваше умение в обращении с игральными картами включает в себя знания о её прошлом, а также о важных событиях и известных исторических фигурах, связанных с игрой.
\nПроницательность. Сыграть с кем-то — это отличный способ понять его характер и что он из себя представляет, что в свою очередь позволяет вам лучше распознавать ложь и определять его настроение.
\nЛовкость рук. Это полезный навык для мухлежа в игре, поскольку позволяет вам прятать карты, а ещё, увлечь цель игрой, требующей совершения ловких движений — хорошее отвлечение при карманной краже.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Поймать игрока на мухлеже | \n15 | \n
| Понять характер оппонента | \n15 | \n
Сюда входит большой диапазон игральных костей, как простых, так и шулерских. Умение в обращении с костями позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с этой игрой.
\nКомпоненты. Игровой набор включает в себя всё необходимое для игры в кости.
\nИстория. Ваше умение в обращении с костями включает в себя знания о её прошлом, а также о важных событиях и известных исторических фигурах, связанных с игрой.
\nПроницательность. Сыграть с кем-то — это отличный способ понять его характер и что он из себя представляет, что в свою очередь позволяет вам лучше распознавать ложь и определять его настроение.
\nЛовкость рук. Это полезный навык для мухлежа в игре, поскольку позволяет вам менять неудачный результат броска кости, а ещё, увлечь цель игрой, требующей совершения ловких движений — хорошее отвлечение при карманной краже.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Поймать игрока на мухлеже | \n15 | \n
| Понять характер оппонента | \n15 | \n
Одеяло, чтобы согреться ночью.
", + "chat": "" + }, + "source": { + "custom": "Blanket" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 0.5, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/ognivo-_-tinderbox.json b/test_tube_merchant/items/bad/trinkets/ognivo-_-tinderbox.json new file mode 100755 index 0000000..48c4df2 --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/ognivo-_-tinderbox.json @@ -0,0 +1,45 @@ +{ + "name": "Огниво / Tinderbox", + "type": "loot", + "img": "icons/tools/laboratory/burner-steel-grey.webp", + "system": { + "description": { + "value": "Состоит из кремня, кресала и трут (обычно это сухая тряпка, пропитанная маслом). Используется для разжигания огня. На то, чтобы зажечь им факел или какое-то еще открытое горючее, требуется действие. На разжигание любого другого огня уйдет 1 минута.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Tinderbox" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/poduyomnyj-blok.json b/test_tube_merchant/items/bad/trinkets/poduyomnyj-blok.json new file mode 100755 index 0000000..9e17426 --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/poduyomnyj-blok.json @@ -0,0 +1,109 @@ +{ + "name": "Подъёмный блок", + "type": "consumable", + "img": "icons/tools/hand/spinning-wheel-brown.webp", + "system": { + "description": { + "value": "Система блоков, пропущенный через них трос и крюк, которым можно поднимать предметы. Позволяет поднять вчетверо больший вес, чем вы можете поднять обычно.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Block and Tackle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/svecha.json b/test_tube_merchant/items/bad/trinkets/svecha.json new file mode 100755 index 0000000..45c2e5b --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/svecha.json @@ -0,0 +1,113 @@ +{ + "name": "Свеча", + "type": "consumable", + "img": "icons/sundries/lights/candle-unlit-tan.webp", + "system": { + "description": { + "value": "Горит 1 час, даёт яркий свет в радиусе 5 футов и тусклый ещё на 5 футов.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [], + "attack": { + "bonus": "", + "flat": false + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "effects": [], + "folder": "Pov8zeyHVsiRenNC", + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Candle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/trinkets/svistok-_-signal-whistle.json b/test_tube_merchant/items/bad/trinkets/svistok-_-signal-whistle.json new file mode 100755 index 0000000..bf8b655 --- /dev/null +++ b/test_tube_merchant/items/bad/trinkets/svistok-_-signal-whistle.json @@ -0,0 +1,45 @@ +{ + "name": "Свисток / Signal Whistle", + "type": "loot", + "img": "icons/tools/instruments/pipe-flute-brown.webp", + "system": { + "description": { + "value": "Может издавать специфический звук. Его можно услышать за полмили.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Signal Whistle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/arbaletnyj-bolt-_-crossbow-bolt.json b/test_tube_merchant/items/bad/weapon/arbaletnyj-bolt-_-crossbow-bolt.json new file mode 100755 index 0000000..ce6119a --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/arbaletnyj-bolt-_-crossbow-bolt.json @@ -0,0 +1,114 @@ +{ + "name": "Арбалетный болт / Crossbow Bolt", + "type": "consumable", + "img": "icons/weapons/ammunition/arrow-simple-grey.webp", + "system": { + "description": { + "value": "Этот боеприпас используется для всех разновидностей арбалетов и обычно представляет собой короткое металлическое древко с узким колющим наконечником.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.075, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crossbow Bolt" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/boevoj-posoh-_-quarterstaff.json b/test_tube_merchant/items/bad/weapon/boevoj-posoh-_-quarterstaff.json new file mode 100755 index 0000000..d9d1c78 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/boevoj-posoh-_-quarterstaff.json @@ -0,0 +1,125 @@ +{ + "name": "Боевой посох / Quarterstaff", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-gold.webp", + "system": { + "description": { + "value": "Толстое деревянное древко, обмотанное крепкой рукоятью, превращается в весьма функциональное оружие, которое также можно использовать как прочную трость.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "bludgeoning" + ] + ], + "versatile": "1d8 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "quarterstaff" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Quarterstaff" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/bulava-_-mace.json b/test_tube_merchant/items/bad/weapon/bulava-_-mace.json new file mode 100755 index 0000000..4e9ab98 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/bulava-_-mace.json @@ -0,0 +1,123 @@ +{ + "name": "Булава / Mace", + "type": "weapon", + "img": "icons/weapons/maces/mace-round-studded.webp", + "system": { + "description": { + "value": "Тяжёлое дробящее оружие, прикреплённое к концу металлической дубинки. Навершие имеет шипы и лезвия, предназначенные для пробивания доспехов и дробления костей под ними.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "mace" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mace" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/drotik-_-dart.json b/test_tube_merchant/items/bad/weapon/drotik-_-dart.json new file mode 100755 index 0000000..6095ecf --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/drotik-_-dart.json @@ -0,0 +1,126 @@ +{ + "name": "Дротик / Dart", + "type": "weapon", + "img": "icons/weapons/thrown/dart-feathered.webp", + "system": { + "description": { + "value": "Небольшое метательное орудие, изготовленное из короткого деревянного древка и перекрещенных перьев с острым деревянным или металлическим наконечником. Дротики могут быть брошены с достаточной силой, чтобы проткнуть кожу.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.25, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "fin" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "dart" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dart" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/dubina-_-greanclub.json b/test_tube_merchant/items/bad/weapon/dubina-_-greanclub.json new file mode 100755 index 0000000..68bdf7f --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/dubina-_-greanclub.json @@ -0,0 +1,125 @@ +{ + "name": "Дубина / Greanclub", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-knotted.webp", + "system": { + "description": { + "value": "Более крупный вариант простой дубинки, тяжелое деревянное древко с огромным деревянным сучком на конце наносит непоправимый дробящий урон несчастным противникам.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greatclub" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/dubinka-_-club.json b/test_tube_merchant/items/bad/weapon/dubinka-_-club.json new file mode 100755 index 0000000..0a0ac30 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/dubinka-_-club.json @@ -0,0 +1,125 @@ +{ + "name": "Дубинка / Club", + "type": "weapon", + "img": "icons/weapons/clubs/club-baton-blue.webp", + "system": { + "description": { + "value": "Прочный деревянный брусок образует простую, но эффективную дубинку. Это оружие используется для нанесения дробящих ударов противнику, оставляя синяки и ломая кости.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Club" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/igla-dlya-trubki-_-blowgun-needle.json b/test_tube_merchant/items/bad/weapon/igla-dlya-trubki-_-blowgun-needle.json new file mode 100755 index 0000000..5a735bd --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/igla-dlya-trubki-_-blowgun-needle.json @@ -0,0 +1,114 @@ +{ + "name": "Игла для трубки / Blowgun Needle", + "type": "consumable", + "img": "icons/weapons/ammunition/arrows-war-red.webp", + "system": { + "description": { + "value": "Этот боеприпас предназначен для стрельбы из духовой трубки с использованием силы легких владельца. Наконечники этих игл часто содержат смертельные или калечащие яды.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.02, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Blowgun Needle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/kinzhal-_-dagger.json b/test_tube_merchant/items/bad/weapon/kinzhal-_-dagger.json new file mode 100755 index 0000000..102fd18 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/kinzhal-_-dagger.json @@ -0,0 +1,127 @@ +{ + "name": "Кинжал / Dagger", + "type": "weapon", + "img": "icons/weapons/daggers/dagger-jeweled-purple.webp", + "system": { + "description": { + "value": "Короткий металлический клинок, прикрепленный к небольшой рукояти и гарде. Кинжал является эффективным вспомогательным оружием для закаленных воинов или скрытым клинком для убийц и воров.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dagger" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/kop�yo-_-spear.json b/test_tube_merchant/items/bad/weapon/kop�yo-_-spear.json new file mode 100755 index 0000000..ad86e75 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/kop�yo-_-spear.json @@ -0,0 +1,126 @@ +{ + "name": "Копьё / Spear", + "type": "weapon", + "img": "icons/weapons/polearms/spear-flared-worn-grey.webp", + "system": { + "description": { + "value": "Сверкающее стальное острие на толстом деревянном древке, копьем можно орудовать одной или двумя руками, и оно способно пробить самую прочную броню со смертоносной силой.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "1d8 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "spear" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Spear" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/korotkij-luk-_-shortbow.json b/test_tube_merchant/items/bad/weapon/korotkij-luk-_-shortbow.json new file mode 100755 index 0000000..c8342a8 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/korotkij-luk-_-shortbow.json @@ -0,0 +1,126 @@ +{ + "name": "Короткий лук / Shortbow", + "type": "weapon", + "img": "icons/weapons/bows/shortbow-recurve.webp", + "system": { + "description": { + "value": "Этот лук несколько меньше традиционного длинного, что делает его идеальным для быстрых атак в движении или верхом на скакуне.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.3c7JXOzsv55gqJS5]{Стрела}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "shortbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/lyogkij-arbalet-_-light-crossbow.json b/test_tube_merchant/items/bad/weapon/lyogkij-arbalet-_-light-crossbow.json new file mode 100755 index 0000000..f14c7e5 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/lyogkij-arbalet-_-light-crossbow.json @@ -0,0 +1,127 @@ +{ + "name": "Лёгкий арбалет / Light Crossbow", + "type": "weapon", + "img": "icons/weapons/crossbows/crossbow-loaded-black.webp", + "system": { + "description": { + "value": "Небольшой арбалет с деревянным древком и натянутой тетивой, способен выпускать болты, пробивающие даже тяжелую броню на близком расстоянии.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.SItCnYBqhzqBoaWG]{Арбалетный болт}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm", + "lod" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "lightcrossbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Light Crossbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/lyogkij-molot-_-light-hammer.json b/test_tube_merchant/items/bad/weapon/lyogkij-molot-_-light-hammer.json new file mode 100755 index 0000000..532e155 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/lyogkij-molot-_-light-hammer.json @@ -0,0 +1,126 @@ +{ + "name": "Лёгкий молот / Light Hammer", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-war-spiked.webp", + "system": { + "description": { + "value": "Этот прочный молот достаточно лёгок и удобен, чтобы им можно было ловко орудовать в сочетании с другим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "lighthammer" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Light Hammer" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/pilum-_-javelin.json b/test_tube_merchant/items/bad/weapon/pilum-_-javelin.json new file mode 100755 index 0000000..59980b8 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/pilum-_-javelin.json @@ -0,0 +1,125 @@ +{ + "name": "Пилум / Javelin", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/javelin.webp", + "system": { + "description": { + "value": "Это лёгкое и гибкое копьё предназначено для метания, но достаточно универсально, чтобы его можно было использовать и в ближнем бою.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "javelin" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Javelin" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/prasha-_-sling.json b/test_tube_merchant/items/bad/weapon/prasha-_-sling.json new file mode 100755 index 0000000..136d219 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/prasha-_-sling.json @@ -0,0 +1,125 @@ +{ + "name": "Праща / Sling", + "type": "weapon", + "img": "icons/weapons/slings/slingshot-wood.webp", + "system": { + "description": { + "value": "Гибкая кожаная плеть, прикрепленная к деревянной ручке, способная метать камни или металлические ядра со смертоносной скоростью.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "sling" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sling" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/puli-dlya-starinnogo-ognestrel�nogo-oruzhiya.json b/test_tube_merchant/items/bad/weapon/puli-dlya-starinnogo-ognestrel�nogo-oruzhiya.json new file mode 100755 index 0000000..f4472ba --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/puli-dlya-starinnogo-ognestrel�nogo-oruzhiya.json @@ -0,0 +1,104 @@ +{ + "name": "Пули для старинного огнестрельного оружия", + "type": "consumable", + "img": "icons/weapons/ammunition/shot-round-brown.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "system": { + "description": { + "value": "Отлитые из металла боеприпасы для старинного огнестрельного оружия.
Лезвие с крюком в виде полумесяца, закрепленное на короткой рукояти, достаточно легкое, чтобы держать его в одной руке для подрезания посевов или врагов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "sickle" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sickle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/strela-_-arrow.json b/test_tube_merchant/items/bad/weapon/strela-_-arrow.json new file mode 100755 index 0000000..4acb989 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/strela-_-arrow.json @@ -0,0 +1,114 @@ +{ + "name": "Стрела / Arrow", + "type": "consumable", + "img": "icons/weapons/ammunition/arrow-simple.webp", + "system": { + "description": { + "value": "Стандартные боеприпасы, используемые для луков всех видов. Эти стрелы сделаны из гладкого деревянного древка с оперением из гусиного пера и металлическими набалдашниками.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.05, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Arrow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/tochil�nyj-kamen�-_-whetstone.json b/test_tube_merchant/items/bad/weapon/tochil�nyj-kamen�-_-whetstone.json new file mode 100755 index 0000000..426ac9d --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/tochil�nyj-kamen�-_-whetstone.json @@ -0,0 +1,45 @@ +{ + "name": "Точильный камень / Whetstone", + "type": "loot", + "img": "icons/commodities/stone/geode-raw-tan.webp", + "system": { + "description": { + "value": "Оселок — это точильный камень. Он используется для заточки кромок стальных инструментов и орудий путем шлифования и хонингования.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Whetstone" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/toporik-_-handaxe.json b/test_tube_merchant/items/bad/weapon/toporik-_-handaxe.json new file mode 100755 index 0000000..b156372 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/toporik-_-handaxe.json @@ -0,0 +1,126 @@ +{ + "name": "Топорик / Handaxe", + "type": "weapon", + "img": "icons/weapons/axes/axe-broad-black.webp", + "system": { + "description": { + "value": "Этот одноручный топор легок и сбалансирован для метания, но при этом остается полезен в рукопашном бою.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "handaxe" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Handaxe" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/bad/weapon/yadro-dlya-prashi-_-sling-bullet.json b/test_tube_merchant/items/bad/weapon/yadro-dlya-prashi-_-sling-bullet.json new file mode 100755 index 0000000..307f678 --- /dev/null +++ b/test_tube_merchant/items/bad/weapon/yadro-dlya-prashi-_-sling-bullet.json @@ -0,0 +1,109 @@ +{ + "name": "Ядро для пращи / Sling Bullet", + "type": "consumable", + "img": "icons/weapons/ammunition/shot-round-blue.webp", + "system": { + "description": { + "value": "Твёрдый снаряд из камня, кости или металла, который можно метать с большой скоростью с помощью пращи.
\n**Примечание для Foundry: обычно невозможно купить одно ядро для пращи, потому что они стоят меньше медяка (5 ядер = 1 мм).
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.075, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sling Bullet" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/cheshujchatyj-dospeh-+2-_-scale-mail-+2.json b/test_tube_merchant/items/beautiful/armor/cheshujchatyj-dospeh-+2-_-scale-mail-+2.json new file mode 100755 index 0000000..12b55f5 --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/cheshujchatyj-dospeh-+2-_-scale-mail-+2.json @@ -0,0 +1,131 @@ +{ + "name": "Чешуйчатый доспех +2 / Scale Mail +2", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Scale_mail-5e.webp", + "system": { + "description": { + "value": "Состоит из кожаной куртки и штанов (а иногда и отдельной юбки), покрытых внахлёст чешуйками из металла, похожими на рыбьи. Доспех включает и рукавицы.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +2 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 45, + "units": "lb" + }, + "price": { + "value": 6050, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 16, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "scalemail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Scale Mail +2" + }, + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/dvarfijskie-laty-_-dwarven-plate.json b/test_tube_merchant/items/beautiful/armor/dvarfijskie-laty-_-dwarven-plate.json new file mode 100755 index 0000000..7e7cd04 --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/dvarfijskie-laty-_-dwarven-plate.json @@ -0,0 +1,136 @@ +{ + "name": "Дварфийские латы / Dwarven Plate", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Dwarven%20Plate.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "dwarven%20plate_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Dwarven Plate", + "translated": true + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + }, + "system": { + "description": { + "value": "Пока вы носите эту броню, вы получаете бонус +2 к КБ. Кроме того, если некий эффект перемещает вас против вашей воли вдоль земли, вы можете использовать @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{Ответное действие}, чтобы снизить расстояние перемещения на 10 или менее футов.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 65, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "если некий эффект перемещает вас против вашей воли вдоль земли" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 0, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 20, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "plate" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/el�fijskaya-kol�chuga-_-elven-chain.json b/test_tube_merchant/items/beautiful/armor/el�fijskaya-kol�chuga-_-elven-chain.json new file mode 100755 index 0000000..d2c4d8f --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/el�fijskaya-kol�chuga-_-elven-chain.json @@ -0,0 +1,129 @@ +{ + "name": "Эльфийская кольчуга / Elven Chain", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Elven%20Chain.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "elven%20chain_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Elven Chain", + "translated": true + } + }, + "system": { + "description": { + "value": "Вы получаете бонус +1 к КБ, пока носите эту броню. Вы считаетесь умелым в обращении с этой бронёй, даже если у вас нет умения в обращении со средней бронёй.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 20, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 14, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "chainshirt" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/kol�chatyj-dospeh-+2-_-ring-mail-+2.json b/test_tube_merchant/items/beautiful/armor/kol�chatyj-dospeh-+2-_-ring-mail-+2.json new file mode 100755 index 0000000..7c80f0a --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/kol�chatyj-dospeh-+2-_-ring-mail-+2.json @@ -0,0 +1,131 @@ +{ + "name": "Кольчатый доспех +2 / Ring Mail +2", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Ringmail-5e.webp", + "system": { + "description": { + "value": "Сделан из кожи, на которую нашиты толстые металлические кольца. Они защищают броню от ударов мечей и топоров. Кольчатый доспех похуже кольчуги, его, как правила, носят лишь те, кто не может себе позволить хорошую броню.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +2 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 6030, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 16, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "ringmail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ring Mail +2" + }, + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/plastinchatyj-dospeh-+2-_-splint-armor-+2.json b/test_tube_merchant/items/beautiful/armor/plastinchatyj-dospeh-+2-_-splint-armor-+2.json new file mode 100755 index 0000000..48d91b2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/plastinchatyj-dospeh-+2-_-splint-armor-+2.json @@ -0,0 +1,131 @@ +{ + "name": "Пластинчатый доспех +2 / Splint Armor +2", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Splintmail-5e.webp", + "system": { + "description": { + "value": "Сделан из тонких вертикальных полос металла, приклёпанных на кожаную основу, его носят поверх плотного поддоспешника. Сочленения прикрывает гибкая кольчуга.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +2 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 60, + "units": "lb" + }, + "price": { + "value": 6200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 19, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "splint" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Splint Armor +2" + }, + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/shit-+2-_-shield-+2.json b/test_tube_merchant/items/beautiful/armor/shit-+2-_-shield-+2.json new file mode 100755 index 0000000..8515780 --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/shit-+2-_-shield-+2.json @@ -0,0 +1,124 @@ +{ + "name": "Щит +2 / Shield +2", + "type": "equipment", + "img": "icons/equipment/shield/heater-steel-spiral.webp", + "system": { + "description": { + "value": "Щит из дерева или металла носят в одной руке. Использование щита увеличивает ваш класс брони на 2. Ношение более чем одного щита не принесёт дополнительной пользы.
\nЭтот щит сделан особо искусно или зачарован магией, увеличивая КБ владельца на +2 в дополнение к обычному бонусу КБ щита.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 6000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 4, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "shield", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shield +2" + }, + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/shit-lovli-strel-_-arrow-catching-shield.json b/test_tube_merchant/items/beautiful/armor/shit-lovli-strel-_-arrow-catching-shield.json new file mode 100755 index 0000000..409fafb --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/shit-lovli-strel-_-arrow-catching-shield.json @@ -0,0 +1,143 @@ +{ + "name": "Щит ловли стрел / Arrow-Catching Shield", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/arrow_catching.jpeg", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "arrow-catching%20shield_dmg" + }, + "magicitems": { + "enabled": false, + "equipped": false, + "attuned": false, + "charges": "0", + "chargeType": "c1", + "destroy": false, + "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.", + "rechargeable": false, + "recharge": "0", + "rechargeType": "t1", + "rechargeUnit": "r1", + "sorting": "l" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Arrow-Catching Shield", + "translated": true + } + }, + "system": { + "description": { + "value": "Вы получаете бонус +2 к КБ против дистанционных атак, пока используете этот щит. Бонус прибавляется к обычному бонусу, который щит даёт к КБ. Кроме того, когда атакующий совершает дистанционную атаку по цели в пределах 5 футов от вас, вы можете использовать @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{ответное действие}, чтобы стать целью атаки вместо неё.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "атакующий совершает дистанционную атаку по цели в пределах 5 футов" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 4, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "shield", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/armor/shlem-teleportacii-_-helm-of-teleportation.json b/test_tube_merchant/items/beautiful/armor/shlem-teleportacii-_-helm-of-teleportation.json new file mode 100755 index 0000000..df8568d --- /dev/null +++ b/test_tube_merchant/items/beautiful/armor/shlem-teleportacii-_-helm-of-teleportation.json @@ -0,0 +1,129 @@ +{ + "name": "Шлем телепортации / Helm of Teleportation", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Helm%20of%20Teleportation.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "helm%20of%20teleportation_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Helm of Teleportation", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требует настроенности)
У шлема 3 заряда. Пока вы носите его, вы можете использовать действие и потратить 1 заряд, чтобы сотворить из него заклинание @Compendium[laaru-dnd5-hw.spells.yO5QuQIZaPHTRilk]{Телепортация}. Ежедневно на рассвете шлем восстанавливает [[/r 1d3]] потраченных заряда.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 10, + "long": 0, + "units": "ft" + }, + "uses": { + "value": 3, + "max": "3", + "per": "charges", + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "light", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/bars/istochnik-beskonechnoj-vody-_-decanter-of-endless-water.json b/test_tube_merchant/items/beautiful/bars/istochnik-beskonechnoj-vody-_-decanter-of-endless-water.json new file mode 100755 index 0000000..98b67c5 --- /dev/null +++ b/test_tube_merchant/items/beautiful/bars/istochnik-beskonechnoj-vody-_-decanter-of-endless-water.json @@ -0,0 +1,110 @@ +{ + "name": "Источник бесконечной воды / Decanter of Endless Water", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Decanter%20of%20Endless%20Water.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Этот заткнутый пробкой сосуд издаёт плеск, если его встряхнуть, как будто полон воды. Он весит 2 фунта.\\n
Вы можете использовать действие, чтобы вынуть пробку и произнести одно из трёх командных слов, после чего из сосуда выльется указанный объём пресной или солёной воды (на ваш выбор). Вода перестаёт выливаться в начале вашего следующего хода. Выберите из следующих вариантов:
Вмещает 1 пинту, украшена нефритом, образующим прекрасный узор
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1.5, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/bars/kuvshin-zelyonoj-medi-_-green-copper-ewer.json b/test_tube_merchant/items/beautiful/bars/kuvshin-zelyonoj-medi-_-green-copper-ewer.json new file mode 100755 index 0000000..9765594 --- /dev/null +++ b/test_tube_merchant/items/beautiful/bars/kuvshin-zelyonoj-medi-_-green-copper-ewer.json @@ -0,0 +1,41 @@ +{ + "name": "Кувшин зелёной меди / Green Copper Ewer", + "type": "loot", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Green%20Copper%20Ewer.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "system": { + "description": { + "value": "Любая отравленная жидкость, вылитая в этот кувшин, немедленно превращается в то же количество сладкого вина. Более того, существо, держащее кувшин за ручку, может приказать кувшину наполниться, создав 1 галлон вина, после чего кувшин больше не может производить вино до следующего рассвета.
\nУкрашен золотой филигранью, достоин дварфийского правителя
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 7500, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/books/karta-planarnaya.json b/test_tube_merchant/items/beautiful/books/karta-planarnaya.json new file mode 100755 index 0000000..c1fe9b2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/books/karta-planarnaya.json @@ -0,0 +1,41 @@ +{ + "name": "Карта планарная", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/atlas_space.png", + "system": { + "description": { + "value": "Точное местоположение планов
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1.5, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/books/karta-sokrovish.json b/test_tube_merchant/items/beautiful/books/karta-sokrovish.json new file mode 100755 index 0000000..50fca26 --- /dev/null +++ b/test_tube_merchant/items/beautiful/books/karta-sokrovish.json @@ -0,0 +1,41 @@ +{ + "name": "Карта сокровищ", + "type": "loot", + "img": "icons/tools/navigation/map-marked-black.webp", + "system": { + "description": { + "value": "Содержит маршрут до сокровища в радиусе 7-идневного путешествия
", + "chat": "" + }, + "source": { + "custom": "WBW" + }, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/books/kniga-legendary.json b/test_tube_merchant/items/beautiful/books/kniga-legendary.json new file mode 100755 index 0000000..ac67ddc --- /dev/null +++ b/test_tube_merchant/items/beautiful/books/kniga-legendary.json @@ -0,0 +1,41 @@ +{ + "name": "Книга", + "type": "loot", + "img": "icons/sundries/books/book-backed-wood-tan.webp", + "system": { + "description": { + "value": "легендарная
«Зов Йачака»
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/curse/fvtt-Item-zolotoj-transverterus-EsnAScfjsy0mApaf.json b/test_tube_merchant/items/beautiful/curse/fvtt-Item-zolotoj-transverterus-EsnAScfjsy0mApaf.json new file mode 100755 index 0000000..9c913ce --- /dev/null +++ b/test_tube_merchant/items/beautiful/curse/fvtt-Item-zolotoj-transverterus-EsnAScfjsy0mApaf.json @@ -0,0 +1,55 @@ +{ + "name": "Золотой Трансвертерус", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/curse/statue.png", + "system": { + "description": { + "value": "Золотая статуэтка высотой в локоть.
Внешне ничем не отличается от золотой статуэтки высотой в локоть.
Эта статуэтка каждое утро неизвестно как генерирует небольшое количество золота
что вероятно очень заинтересует персонажей охочек до богатства.
На деле это магически созданный мимик, тайком питающийся предметами из рюкзаков приключенцев.
Порой очень важными, вроде оружия или походного снаряжения.
А золото это... ну в общем, он так испражняется. У нас же всратые артефакты, так ведь?
Цены нет, штука крайне редкая. А найти можно в любом мастерском подземелье, в какой-нибудь подозрительно пустой комнате.
Потому что предметы вокруг уже съедены. Либо злой волшебник может подкинуть или продать эту штуку партии перед походом куда-то в глушь,
чтобы в процессе лишить их снаряжения.
Чудесный предмет, (требуется настроенность)
Пока вы носите эту лёгкую обувь, вы можете перемещаться вверх, вниз и вдоль вертикальных поверхностей и даже ходить вверх ногами по потолку, при этом ваши руки остаются свободны. У вас скорость лазания, равная вашей скорости ходьбы. Однако тапки не позволяют вам перемещаться так по скользкой поверхности, например покрытой льдом или маслом.
Чудесный предмет, (требуется настроенность)
У мантии 3 заряда, ежедневно на рассвете она восстанавливает [[/r 1d3]] потраченных заряда. Пока вы носите её, вы можете использовать действие и потратить 1 заряд, чтобы мантия изображала изменчивый узор безумных оттенков до конца вашего следующего хода. В это время мантия испускает &reference[brightlight]{яркий свет} в радиусе 30 футов и &reference[dimlight]{тусклый} — ещё на 30 футов. Существа, которые вас видят, получают помеху к броскам атаки по вам. Кроме того, любые существа на ярком свету, которые вас видят при активации мантии, должны пройти испытание Мудрости со СЛ 15, при провале они оказываются в &reference[stunned]{шоке}, пока длится эффект.
Чудесный предмет, (требуется настроенность)
Эти отороченные мехом сапоги очень тёплые и удобные. Пока вы носите их, вы получаете следующую пользу:
Этот маленький предмет похож на перо. Есть разные виды перьев, у каждого свой одноразовый эффект.
\nДерево. Можно применить только вне помещений. Вы можете использовать действие, чтобы коснуться пером свободного места на земле. Перо исчезает, а на его месте вырастает немагический дуб. Это дерево высотой 60 футов, его ствол 5 футов в диаметре, а его крона ближе квершине достигает радиуса 20 футов.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/flowers/drakon�ya-liliya.json b/test_tube_merchant/items/beautiful/flowers/drakon�ya-liliya.json new file mode 100755 index 0000000..66d2f92 --- /dev/null +++ b/test_tube_merchant/items/beautiful/flowers/drakon�ya-liliya.json @@ -0,0 +1,128 @@ +{ + "name": "Драконья лилия", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/dragon_lilya.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "system": { + "description": { + "value": "При контакте очищает до 10 галлонов воды
В пруду вырастает до 60 драконьих лилий. Вырастают за 100 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/dragon_lilya.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "_stats": { + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1723807444065, + "modifiedTime": 1723812679785, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/food/kamen�-iun,-sytost�-_-ioun-stone,-sustenance.json b/test_tube_merchant/items/beautiful/food/kamen�-iun,-sytost�-_-ioun-stone,-sustenance.json new file mode 100755 index 0000000..11a421c --- /dev/null +++ b/test_tube_merchant/items/beautiful/food/kamen�-iun,-sytost�-_-ioun-stone,-sustenance.json @@ -0,0 +1,130 @@ +{ + "name": "Камень Иун, Сытость / Ioun Stone, Sustenance", + "type": "equipment", + "img": "icons/commodities/gems/gem-faceted-tapered-blue.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "ioun%20stone%2c%20sustenance_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Ioun Stone, Sustenance", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, различной редкости (требует настроенности)
Эти камни названы в честь Иун, богини знаний и пророчеств, которую почитают в некоторых мирах. Есть много видов камней Иун, каждый уникальное сочетание формы и цвета.
Когда вы используете действие, чтобы подбросить в воздух один из камней, он вращается вокруг вашей головы на расстоянии [[/r 1d3]] футов и приносит пользу. Чтобы отделить его от вас после этого, другое существо должно использовать действие, чтобы схватить или поймать камень, либо успешно выполнив бросок атаки против КБ 24, либо успешно пройдя проверку Ловкости (Акробатика) со СЛ 24. Вы можете использовать действие, чтобы схватить и убрать камень, прекратив его эффект.
У камня КБ 24, 10 ПЗ и устойчивость ко всему урону. Пока он летает вокруг вашей головы, он считается носимым вами предметом.
Камень Сытости. Вам не нужно ни есть, ни пить, пока это хрустальное веретено летает вокруг вашей головы.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/food/kosti-drakona.json b/test_tube_merchant/items/beautiful/food/kosti-drakona.json new file mode 100755 index 0000000..e56d85e --- /dev/null +++ b/test_tube_merchant/items/beautiful/food/kosti-drakona.json @@ -0,0 +1,41 @@ +{ + "name": "Кости дракона", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/dragon_bone.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/food/pitanie,-aristokraticheskoe.json b/test_tube_merchant/items/beautiful/food/pitanie,-aristokraticheskoe.json new file mode 100755 index 0000000..0265da8 --- /dev/null +++ b/test_tube_merchant/items/beautiful/food/pitanie,-aristokraticheskoe.json @@ -0,0 +1,41 @@ +{ + "name": "Питание, аристократическое", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/perfect_meal.png", + "system": { + "description": { + "value": "Самая сочная вырезка магического зверя
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/food/rog-edinoroga.json b/test_tube_merchant/items/beautiful/food/rog-edinoroga.json new file mode 100755 index 0000000..385c181 --- /dev/null +++ b/test_tube_merchant/items/beautiful/food/rog-edinoroga.json @@ -0,0 +1,41 @@ +{ + "name": "Рог единорога", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/unicorn_horn.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/almaz.json b/test_tube_merchant/items/beautiful/jewelry/almaz.json new file mode 100755 index 0000000..7d1eccf --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/almaz.json @@ -0,0 +1,40 @@ +{ + "name": "Алмаз", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-radiant-teal.webp", + "system": { + "description": { + "value": "Прозрачный сине-белый, жёлтый, розоватый, коричневый или синий самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/chyornyj-sapfir.json b/test_tube_merchant/items/beautiful/jewelry/chyornyj-sapfir.json new file mode 100755 index 0000000..7aed086 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/chyornyj-sapfir.json @@ -0,0 +1,40 @@ +{ + "name": "Чёрный сапфир", + "type": "loot", + "img": "icons/commodities/gems/pearl-swirl-teal.webp", + "system": { + "description": { + "value": "Полупрозрачный самоцвет блестящий чёрный со светлыми вкраплениями.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/giacint.json b/test_tube_merchant/items/beautiful/jewelry/giacint.json new file mode 100755 index 0000000..d5a1453 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/giacint.json @@ -0,0 +1,40 @@ +{ + "name": "Гиацинт", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-square-orange-red.webp", + "system": { + "description": { + "value": "Прозрачный огненно-оранжевый самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/kol�co-telekineza-_-ring-of-telekinesis.json b/test_tube_merchant/items/beautiful/jewelry/kol�co-telekineza-_-ring-of-telekinesis.json new file mode 100755 index 0000000..ea857a7 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/kol�co-telekineza-_-ring-of-telekinesis.json @@ -0,0 +1,129 @@ +{ + "name": "Кольцо телекинеза / Ring of Telekinesis", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Ring%20of%20Telekinesis.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "ring%20of%20telekinesis_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Ring of Telekinesis", + "translated": true + } + }, + "system": { + "description": { + "value": "Требуется настроенность
Пока вы носите это кольцо, вы можете неограниченно творить заклинание @Compendium[laaru-dnd5-hw.spells.MDvLGhwXCJnaTmwt]{Телекинез}, но его целью можете выбирать только объекты, кроме тех, которые носят или держат.
Требуется настроенность
Пока вы носите это кольцо, вы получаете бонус +1 к КБ и испытаниям.
Прозрачный, от светло-красного до тёмно-красного самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-izumrud-_-elemental-gem,-emerald.json b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-izumrud-_-elemental-gem,-emerald.json new file mode 100755 index 0000000..e275569 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-izumrud-_-elemental-gem,-emerald.json @@ -0,0 +1,129 @@ +{ + "name": "Самоцвет элементаля, изумруд / Elemental Gem, Emerald", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Elemental%20Gememe.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "elemental%20gem%2c%20emerald_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Elemental Gem, Emerald", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Этот самоцвет содержит крупицу стихийной энергии. Когда вы используете действие, чтобы разбить самоцвет, будет призван @Compendium[laaru-dnd5-hw.monsters.gjHtJBqTBE8FGOll]{Элементаль воды}, как если бы вы сотворили заклинание @Compendium[laaru-dnd5-hw.spells.ujk6PzbH20JV5R7x]{Призыв элементаля}, а самоцвет потеряет магию.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-krasnyj-korund-_-elemental-gem,-red-corundum.json b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-krasnyj-korund-_-elemental-gem,-red-corundum.json new file mode 100755 index 0000000..530d6d7 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-krasnyj-korund-_-elemental-gem,-red-corundum.json @@ -0,0 +1,129 @@ +{ + "name": "Самоцвет элементаля, красный корунд / Elemental Gem, Red Corundum", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Elemental%20Gemred.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "elemental%20gem%2c%20red%20corundum_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Elemental Gem, Red Corundum", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Этот самоцвет содержит крупицу стихийной энергии. Когда вы используете действие, чтобы разбить самоцвет, будет призван @Compendium[laaru-dnd5-hw.monsters.TlvQWedVV0VongAK]{Элементаль огня}, как если бы вы сотворили заклинание @Compendium[laaru-dnd5-hw.spells.ujk6PzbH20JV5R7x]{Призыв элементаля}, а самоцвет потеряет магию.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-sinij-sapfir-_-elemental-gem,-blue-sapphire.json b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-sinij-sapfir-_-elemental-gem,-blue-sapphire.json new file mode 100755 index 0000000..ce062e7 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-sinij-sapfir-_-elemental-gem,-blue-sapphire.json @@ -0,0 +1,129 @@ +{ + "name": "Самоцвет элементаля, синий сапфир / Elemental Gem, Blue Sapphire", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Elemental%20Gemblu.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "elemental%20gem%2c%20blue%20sapphire_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Elemental Gem, Blue Sapphire", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Этот самоцвет содержит крупицу стихийной энергии. Когда вы используете действие, чтобы разбить самоцвет, будет призван @Compendium[laaru-dnd5-hw.monsters.Y9UnzitcFp76rhQt]{Элементаль воздуха}, как если бы вы сотворили заклинание @Compendium[laaru-dnd5-hw.spells.ujk6PzbH20JV5R7x]{Призыв элементаля}, а самоцвет потеряет магию.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-zhyoltyj-brilliant-_-elemental-gem,-yellow-diamond.json b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-zhyoltyj-brilliant-_-elemental-gem,-yellow-diamond.json new file mode 100755 index 0000000..dc93820 --- /dev/null +++ b/test_tube_merchant/items/beautiful/jewelry/samocvet-elementalya,-zhyoltyj-brilliant-_-elemental-gem,-yellow-diamond.json @@ -0,0 +1,129 @@ +{ + "name": "Самоцвет элементаля, жёлтый бриллиант / Elemental Gem, Yellow Diamond", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Elemental%20Gemyel.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "elemental%20gem%2c%20yellow%20diamond_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Elemental Gem, Yellow Diamond", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Этот самоцвет содержит крупицу стихийной энергии. Когда вы используете действие, чтобы разбить самоцвет, будет призван @Compendium[laaru-dnd5-hw.monsters.GvwIu2ijVKLJ8rFB]{Элементаль земли}, как если бы вы сотворили заклинание @Compendium[laaru-dnd5-hw.spells.ujk6PzbH20JV5R7x]{призыв элементаля}, а самоцвет потеряет магию.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/mechanical/kniga-zheleznogo-golema-_-manual-of-iron-golems.json b/test_tube_merchant/items/beautiful/mechanical/kniga-zheleznogo-golema-_-manual-of-iron-golems.json new file mode 100755 index 0000000..d03ef4d --- /dev/null +++ b/test_tube_merchant/items/beautiful/mechanical/kniga-zheleznogo-golema-_-manual-of-iron-golems.json @@ -0,0 +1,129 @@ +{ + "name": "Книга железного голема / Manual of Iron Golems", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Manual%20of%20Iron%20Golems.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "manual%20of%20iron%20golems_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Manual of Iron Golems", + "translated": true + } + }, + "system": { + "description": { + "value": "В этой книге есть сведения и волшебные слова, необходимые для создания железного голема. Мастер выбирает вид или определяет его случайно. Чтобы расшифровать и использовать эту книгу, надо быть заклинателем с хотя бы двумя ячейками заклинаний 5-го круга. Существо, которое не может использовать книгу голема, но попытается прочитать её, получит [[/r 6d6]] психического урона.
\nЧтобы создать @Compendium[laaru-dnd5-hw.monsters.7R2zWlCwH6jYcGCs]{железного голема}, нужно потратить 120 дней без перерывов, держа книгу при себе и отдыхая не более 8 часов в день, вам надо также выплатить стоимость ингредиентов равную 100 000 ЗМ . Когда создание голема завершено, книга сгорает в потустороннем пламени. Голем оживает, когда его осыплют пеплом книги. Он находится под вашим контролем, понимает и исполняет ваши устные приказы.
\nЧудесный предмет, (требует настроенности)
Пока на вас эти сапоги, у вас скорость полёта, равная вашей скорости ходьбы. Вы можете летать с помощью сапог не более 4 часов, подряд или интервалами не менее 1 минуты. Если вы были в воздухе, когда длительность истекла, вы снижаетесь со скоростью 30 футов в раунд, пока не приземлитесь.
Сапоги восстанавливают 2 часа способности к полёту за каждые 12 часов, в которые их не используют.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "4", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/mechanical/mehanicheskie-raketnye-sani.json b/test_tube_merchant/items/beautiful/mechanical/mehanicheskie-raketnye-sani.json new file mode 100755 index 0000000..9ada1a2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/mechanical/mehanicheskie-raketnye-sani.json @@ -0,0 +1,40 @@ +{ + "name": "Механические ракетные сани", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/mechanicalSled.png", + "system": { + "description": { + "value": "Механические ракетные сани, двигаются на 60 футов в раунд не сворачивая в течение одной минуты.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/mechanical/zheleznye-okovy-bilarro-_-iron-bands-of-bilarro.json b/test_tube_merchant/items/beautiful/mechanical/zheleznye-okovy-bilarro-_-iron-bands-of-bilarro.json new file mode 100755 index 0000000..901cb01 --- /dev/null +++ b/test_tube_merchant/items/beautiful/mechanical/zheleznye-okovy-bilarro-_-iron-bands-of-bilarro.json @@ -0,0 +1,119 @@ +{ + "name": "Железные оковы Биларро / Iron Bands of Bilarro", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Iron%20Bands%20of%20Bilarro.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "iron%20bands%20of%20bilarro_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Iron Bands of Bilarro", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Эта ржавая железная сфера диаметром 3 дюйма весит 1 фунт. Вы можете использовать действие, чтобы произнести командное слово и бросить сферу в существо размером не более огромного, которое видите в пределах 60 футов от вас. В воздухе сфера раскрывается, превращаясь в сеть из металлических полосок.
Совершите бросок дистанционной атаки с бонусом атаки, равным вашему модификатору Ловкости плюс ваш бонус умения. При попадании цель &reference[restrained]{обездвижена}, пока вы не используете бонусное действие, чтобы снова произнести командное слово и освободить её. После этого или при промахе атаки полоски опять свернутся в сферу.
Любое существо, в том числе само &reference[restrained]{обездвиженное}, может использовать действие, чтобы пройти проверку Силы со СЛ 20 и сломать полоски. При успехе предмет будет уничтожен, а обездвиженное существо освободится. При провале все последующие попытки этого существа сломать полоски автоматически завершаются провалом ближайшие 24 часа.
После применения оков их нельзя снова использовать до следующего рассвета.
Требует настроенности заклинателя
У этого жезла 7 зарядов. Пока вы держите его, вы можете использовать действие, чтобы потратить 1 или более его зарядов и сотворить из него заклинание @Compendium[laaru-dnd5-hw.spells.u7CxcAjfversxKAl]{Удар молнии} (СЛ испытаний 15). За 1 заряд вы творите заклинание 3-го круга. Вы можете повысить круг ячейки заклинания на один за каждый дополнительный потраченный заряд.
Ежедневно на рассвете жезл восстанавливает [[/r 1d6 + 1]] потраченных зарядов. Потратив последний заряд жезла, бросьте [[/r d20]]. Если выпало 1, жезл рассыпается в пепел и уничтожается.
Это прозрачное желеподобное масло поблескивает крохотными, тоненькими серебристыми осколками. Маслом можно покрыть одно колющее или режущее оружие или 5 и менее колющих или режущих боеприпасов. Нанесение масла занимает 1 минуту. На 1 час покрытый им предмет становится магическим и получает бонус +3 к броскам атаки и урона.
Зелье — красная жидкость, которая мерцает, если её встряхнуть.
Персонаж, выпивший магическую красную жидкость из этого пузырька, восстанавливает [[/r 10d4+20]] пункта здоровья.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d4 + 20", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [ + "mgc" + ], + "unidentified": { + "description": "Зелье — красная жидкость, которая мерцает, если её встряхнуть.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Potion of Supreme Healing" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/potions/zel�e-dolgoletiya-_-potion-of-longevity.json b/test_tube_merchant/items/beautiful/potions/zel�e-dolgoletiya-_-potion-of-longevity.json new file mode 100755 index 0000000..6374c22 --- /dev/null +++ b/test_tube_merchant/items/beautiful/potions/zel�e-dolgoletiya-_-potion-of-longevity.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье долголетия / Potion of Longevity", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Longevity.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20longevity_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Longevity", + "translated": true + } + }, + "system": { + "description": { + "value": "Когда вы выпили это зелье, ваш физический возраст уменьшается на [[/r 1d6 + 6]] лет, минимум до 13 лет. Каждый раз после этого, когда вы снова пьёте зелье долголетия, появляется накапливающийся шанс 10%, что вместо этого вы постареете на [[/r 1d6 + 6]] лет.
\nВ этой янтарной жидкости плавают хвост скорпиона, клык гадюки, дохлый паук и маленькое сердечко, которое, как ни странно, до сих пор бьётся. Эти ингредиенты исчезают, если открыть зелье.
\nВ этой янтарной жидкости плавают хвост скорпиона, клык гадюки, дохлый паук и маленькое сердечко, которое, как ни странно, до сих пор бьётся.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/potions/zel�e-neuyazvimosti-_-potion-of-invulnerability.json b/test_tube_merchant/items/beautiful/potions/zel�e-neuyazvimosti-_-potion-of-invulnerability.json new file mode 100755 index 0000000..24d18e8 --- /dev/null +++ b/test_tube_merchant/items/beautiful/potions/zel�e-neuyazvimosti-_-potion-of-invulnerability.json @@ -0,0 +1,173 @@ +{ + "name": "Зелье неуязвимости / Potion of Invulnerability", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Invulnerability.webp", + "effects": [ + { + "changes": [ + { + "key": "system.traits.dr.all", + "mode": 0, + "value": "true", + "priority": 7 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": 60, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": false, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true, + "selfTarget": false, + "selfTargetAlways": false, + "dontApply": false, + "showIcon": false + } + }, + "_id": "iajkz8dkxhrxzl96", + "origin": null, + "name": "Устойчивость ко всему урону", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Invulnerability.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20invulnerability_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Invulnerability", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы получаете устойчивость ко всему урону на 1 минуту.
\nГустая жидкость этого зелья похожа на жидкое железо.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "Густая жидкость этого зелья похожа на жидкое железо.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/potions/zel�e-zhiznennoj-sily-_-potion-of-vitality.json b/test_tube_merchant/items/beautiful/potions/zel�e-zhiznennoj-sily-_-potion-of-vitality.json new file mode 100755 index 0000000..f0be6a8 --- /dev/null +++ b/test_tube_merchant/items/beautiful/potions/zel�e-zhiznennoj-sily-_-potion-of-vitality.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье жизненной силы / Potion of Vitality", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Vitality.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20vitality_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Vitality", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы полностью снимаете &reference[exhaustion]{утомление} и исцеляете любые болезни и яды, которые на вас действовали. Все кости здоровья, которые вы потратите, чтобы восстановить ПЗ в ближайшие 24 часа, восстанавливают максимальное количество ПЗ.
Алая жидкость этого зелья пульсирует &reference[dimlight]{тусклым светом}, напоминая бьющееся сердце.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "Алая жидкость этого зелья пульсирует тусклым светом, напоминая бьющееся сердце.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/religious/svecha-vozzvaniya-_-candle-of-invocation.json b/test_tube_merchant/items/beautiful/religious/svecha-vozzvaniya-_-candle-of-invocation.json new file mode 100755 index 0000000..163a8e2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/religious/svecha-vozzvaniya-_-candle-of-invocation.json @@ -0,0 +1,114 @@ +{ + "name": "Свеча воззвания / Candle of Invocation", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Candle%20of%20Invocation.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "candle%20of%20invocation_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Candle of Invocation", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
Эта тонкая свечка посвящена божеству и разделяет его мировоззрение. Это мировоззрение можно определить заклинанием @Compendium[laaru-dnd5-hw.spells.1TO8Seox4AGcnJDq]{Обнаружение зла и добра}. Мастер выбирает бога и связанное с ним мировоззрение или определяет его случайным образом.
| [[/r d20]] | Мировоззрение |
|---|---|
| 1-2 | Хаотичный злой |
| 3-4 | Хаотичный нейтральный |
| 5-7 | Хаотичный добрый |
| 8-9 | Нейтральный злой |
| 10-11 | Нейтральный |
| 12-13 | Нейтральный добрый |
| 14-15 | Принципиальный злой |
| 16-17 | Принципиальный нейтральный |
| 18-20 | Принципиальный добрый |
Магия свечи активируется, если её зажечь, что требует действия. Свеча уничтожается, прогорев 4 часа. Вы можете погасить её раньше, чтобы продолжить использование потом. Вычтите время её горения, округлённое вверх до минут, из общего времени использования.
Пока свеча горит, она испускает &reference[dimlight]{Тусклый свет} в радиусе 30 футов. Любое существо в области света, чьё мировоззрение такое же, как у свечи, совершает броски атак, испытания и проверки характеристик с преимуществом.
Кроме того, жрец или друид в этой области, чьё мировоззрение такое же, как у свечи, может творить подготовленные заклинания 1-го круга, не тратя ячейки заклинаний. Заклинания оказывают эффект, как если бы были сотворены из ячейки 1-го круга. Как вариант, зажигая свечу впервые, вы можете сотворить из неё заклинание @Compendium[laaru-dnd5-hw.spells.vStdomjAhcRaeA3x]{Врата}, Свеча при этом уничтожается.
Снимает вредоносный эффект позитивной энергией. Вы можете уменьшить &reference[exhaustion]{утомление} существа на одну степень или прекратить один из следующих эффектов, действующих на цель:
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание привлекает или отпугивает существ на ваш выбор. Выберите цель в пределах дистанции: существо или объект &reference[size]{размером} не более огромного или область размером не более 200-футового куба. Выберите вид разумного существа, например красные драконы, гоблины или вампиры. Вы наделяете цель аурой, которая или привлекает, или отпугивает указанный вид существа, пока длится заклинание. Выберите эффект заклинания: антипатия или симпатия.
\nАнтипатия.
\nЗаклинание заставляет существ выбранного вида ощущать неудержимое желание покинуть область и избегать цели. Когда такое существо видит цель или подходит на 60 футов к ней, оно должно успешно пройти испытание Мудрости или стать &reference[frightened]{испуганным} . Оно остаётся испуганным, пока может видеть цель или пока находится в пределах 60 футов от неё. Пока существо испугано целью, оно должно тратить своё перемещение на то, чтобы оказаться в ближайшем месте, откуда цель не видно. Если существо перемещается более чем на 60 футов от цели и не видит её, оно перестаёт быть испуганным, но будет снова испугано, если увидит цель или окажется от неё в пределах 60 футов.
\nСимпатия.
\nЗаклинание заставляет существ выбранного вида ощущать неудержимое желание приблизиться к цели, если они в пределах 60 футов от неё или видят её. Когда такое существо видит цель или подходит на 60 футов к ней, оно должно пройти испытание Мудрости. При провале оно вынуждено каждый ход тратить своё перемещение на то, чтобы войти в область или оставаться в зоне досягаемости цели, и не может по своей воле удаляться от неё. Если такое существо получает от цели урон или иной вред, оно может снова пройти испытание Мудрости, чтобы прекратить эффект, как описано далее.
\nПрекращение эффекта.
\nЕсли существо под влиянием заклинания завершает свой ход за пределами 60 футов от цели и не может видеть её, оно проходит испытание Мудрости. При успехе на существо больше не действует заклинание, и оно понимает, что страх или влечение были вызваны магией. Кроме того, существо, попавшее под действие заклинания, может проходить испытание Мудрости каждые 24 часа, пока длится заклинание. Существо, успешно прошедшее испытание против эффекта, невосприимчиво к нему 1 минуту, после чего заклинание может снова на него подействовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "day" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Aura-svyatosti-_-Holy-aura.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Aura-svyatosti-_-Holy-aura.json new file mode 100755 index 0000000..f9c9bf9 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Aura-svyatosti-_-Holy-aura.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура святости / Holy aura", + "img": "icons/magic/control/buff-flight-wings-runes-purple-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
От вас исходит священный свет, создающий мягкое сияние в радиусе 30 футов вокруг вас. Пока длится заклинание, существа в этом радиусе, которых вы выбрали при сотворении, испускают тусклый свет в радиусе 5 футов и получают преимущество ко всем испытаниям, а другие существа получают помеху к броскам атаки против них. Кроме того, когда бестия или нежить попадают по существу под влиянием заклинания атакой ближнего боя, его аура вспыхивает палящим светом. Атакующий должен пройти испытание Выносливости, при провале &reference[blinded]{он ослеплён}, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Boykiy-yazyk-_-Glibness.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Boykiy-yazyk-_-Glibness.json new file mode 100755 index 0000000..3bac240 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Boykiy-yazyk-_-Glibness.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Бойкий язык / Glibness", + "img": "icons/skills/social/diplomacy-handshake-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Bozhestvennoe-slovo-_-Divine-word.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Bozhestvennoe-slovo-_-Divine-word.json new file mode 100755 index 0000000..d284da1 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Bozhestvennoe-slovo-_-Divine-word.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Божественное слово / Divine word", + "img": "icons/magic/light/beam-rays-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы произносите божественное слово, наделённое силой, придавшей миру форму на заре творения. Выберите любое число существ, которых видите в пределах дистанции. Каждое существо, которое вас слышит, должно пройти испытание Харизмы. При провале оно получает эффект, зависящий от его текущих П3:
Вне зависимости от их текущих ПЗ, бестия, небожитель, фея или элементаль, провалившие испытание, принудительно отправляются на свой родной план (если они еще не там). Они не могут вернуться на ваш текущий план в ближайшие 24 часа любым способом, кроме заклинания желание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Demiplan-_-Demiplane.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Demiplan-_-Demiplane.json new file mode 100755 index 0000000..ae6dded --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Demiplan-_-Demiplane.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Демиплан / Demiplane", + "img": "icons/environment/settlement/stone-gatehouse-tan.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте теневую дверь на плоской твердой поверхности, которую видите в пределах дистанции. Дверь достаточно велика, чтобы в неё без труда проходили существа среднего размера. Если её открыть, дверь ведёт на демиплан, который выглядит как пустая комната размерами 30 футов в длину, ширину и высоту, сделанная из дерева или камня. Когда заклинание прекращает действовать, дверь исчезает. Любые существа или объекты, оставшиеся в демиплане, оказываются там в ловушке, поскольку с другой стороны дверь также исчезает.
\nКаждый раз, когда вы творите это заклинание, вылибо создаёте новый демиплан, либо открываете дверь в уже созданный вами прежде этим заклинанием. Кроме того, если вы знаете природу и содержимое демиплана, созданного другим существом с помощью этого заклинания, то можете открыть теневую дверь в этот чужой демиплан.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "somatic", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Goryuchee-oblako-_-Incendiary-Cloud.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Goryuchee-oblako-_-Incendiary-Cloud.json new file mode 100755 index 0000000..12349f9 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Goryuchee-oblako-_-Incendiary-Cloud.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Горючее облако / Incendiary Cloud", + "img": "icons/magic/fire/explosion-mushroom-nuke-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Клубящееся облако дыма, исходящего от раскалённых добела углей, появляется в сфере радиусом 20 футов вокруг точки в пределах дистанции. Облако распространяется и за углы, видимость в нем &reference[heavilyobscured]{крайне затруднена}. Оно существует, пока длится заклинание или пока его не развеет ветер средней или большей силы (не менее 10 миль в час).
Когда появляется облако, каждое существо в нём должно пройти испытание Ловкости. Существо получает [[/r 10d8]] урона огнем при провале или половину этого урона при успехе. Существо также должно пройти это испытание, когда впервые за ход входит в область заклинания или заканчивает в ней свой ход.
В начале каждого вашего хода облако удаляется на 10 футов от вас в выбранном вами направлении.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d8", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Izolyatsiya-_-Sequester.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Izolyatsiya-_-Sequester.json new file mode 100755 index 0000000..e7d552c --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Izolyatsiya-_-Sequester.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изоляция / Sequester", + "img": "icons/magic/control/fear-fright-mask-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
С помощью этого заклинания можно скрыть от обнаружения согласное существо или объект, пока длится заклинание. Когда вы сотворяете это заклинание и касаетесь цели, она станет &reference[invisible]{невидимой}, нельзя будет выбрать её целью заклинаний прорицания или наблюдать за ней с помощью сенсоров тайновидения, созданных заклинаниями прорицания.
Если цель - существо, оно впадает в состояние анабиоза. Для него время не движется, оно не стареет.
Вы можете задать условие, при котором заклинание досрочно прекратит действовать. Условие может быть любым, но оно должно произойти или быть видимо в пределах 1 мили от цели. Возможные варианты включают «через 1 000 лет» или «когда проснётся тараск», Заклинание также прекращает действовать, если цель получает любой урон.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Klon_-Clone.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Klon_-Clone.json new file mode 100755 index 0000000..a866cf3 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Klon_-Clone.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Клон/ Clone", + "img": "icons/magic/control/encase-creature-humanoid-hold.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт безжизненного двойника живого существа, чтобы оно могло избежать смерти. Клон формируется внутри закрытого сосуда и вырастает до нужного возраста и размера за 120 дней; вы можете также выбрать, чтобы клон был моложе самого существа. Он остаётся безжизненным и сохраняется вечно, пока сосуд нетронут.
\nВ любой момент после созревания клона, если оригинал умирает, его душа переносится в клон, если она свободна и хочет вернуться. Клон физически идентичен оригиналу, у него та же личность, те же воспоминания и способности, но нет снаряжения. Тело изначального существа сохраняется, если не уничтожено, но становится безжизненным, и его нельзя вернуть к жизни, поскольку душа уже заняла другое тело.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Labirint-_-Maze.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Labirint-_-Maze.json new file mode 100755 index 0000000..d3dcfaa --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Labirint-_-Maze.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Лабиринт / Maze", + "img": "icons/creatures/abilities/bull-head-horns-glowing.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы изгоняете существо, которое видите в пределах дистанции, в демиплан, построенный как лабиринт.
\nЦель остаётся там, пока длится заклинание или пока она не сбежит из лабиринта. Цель может использовать действие, чтобы попытаться сбежать. При этом она проходит проверку Интеллекта со СЛ 20. При успехе заклинание прекращает действовать (минотавр и демон гористро автоматически успешно проходят эту проверку).
\nКогда заклинание прекращает действовать, цель снова появляется в том месте, где раньше находилась, или в ближайшем незанятом пространстве, если это место занято.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Mech-Mordenkaynena-_-Mordenkainen's-Sword.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Mech-Mordenkaynena-_-Mordenkainen's-Sword.json new file mode 100755 index 0000000..1abaded --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Mech-Mordenkaynena-_-Mordenkainen's-Sword.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Меч Морденкайнена / Mordenkainen's Sword", + "img": "icons/weapons/swords/sword-broad-serrated-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте силовое поле в форме меча, которое парит в пределах дистанции. Оно существует, пока длится заклинание.
Когда меч появляется, вы совершаете атаку заклинанием в ближнем бою по цели на ваш выбор в пределах 5 футов от меча. При попадании цель получает [[/r 3d10]] урона силой. Пока длится заклинание, вы можете использовать бонусное действие в любой ваш ход, чтобы переместить меч на расстояние до 20 футов в точку, которую видите, и повторить атаку по той же или иной цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d10", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "10", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Obratnaya-gravitatsiya-_-Reverse-Gravity.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Obratnaya-gravitatsiya-_-Reverse-Gravity.json new file mode 100755 index 0000000..50093ae --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Obratnaya-gravitatsiya-_-Reverse-Gravity.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обратная гравитация / Reverse Gravity", + "img": "icons/magic/earth/explosion-lava-stone-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Заклинание изменяет притяжение в обратную сторону в цилиндре радиусом 50 футов и высотой 10 футов с центром в точке в пределах дистанции. Все существа и объекты в области, не прикреплённые к земле, падают вверх и достигают вершины области при сотворении этого заклинания. Существо может пройти испытание Ловкости, чтобы ухватиться за закрепленный объект в пределах своей досягаемости и не падать.
\nЕсли на пути падения находится некая твердая преграда (например, потолок), падающие существа и объекты ударяются о неё, как при обычном падении вниз. Если ничто не препятствует объектам и существам достичь вершины области, они остаются там, слегка покачиваясь, пока длится заклинание. Когда заклинание прекращает действовать, эти объекты и существа падают обратно вниз.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "50", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 100, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Ognennaya-burya-_-Fire-Storm.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Ognennaya-burya-_-Fire-Storm.json new file mode 100755 index 0000000..66bb281 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Ognennaya-burya-_-Fire-Storm.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненная буря / Fire Storm", + "img": "icons/magic/fire/beam-jet-stream-spiral-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Буря сплошного ревущего пламени появляется в выбран- ном вами месте в пределах дистанции. Область бури может состоять из не более чем десяти 10-футовых кубов, которые вы можете организовать в любую форму. Каждый куб должен соприкасаться хоть одной гранью с другим кубом. Каждое существо в области действия должно пройти испытание Ловкости. Оно получает [[/r 7d10]] урона огнём при провале, а при успехе — половину этого урона.
\nОгонь наносит урон объектам в области и поджигает все горючие объекты, кроме тех, что носят или держат. По вашему выбору огонь может не наносить урон растениям в области.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "7d10", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Otlozhennyy-ognennyy-shar-_-Delayed-Blast-Fireball.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Otlozhennyy-ognennyy-shar-_-Delayed-Blast-Fireball.json new file mode 100755 index 0000000..1995f90 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Otlozhennyy-ognennyy-shar-_-Delayed-Blast-Fireball.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Отложенный огненный шар / Delayed Blast Fireball", + "img": "icons/magic/fire/projectile-fireball-red-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Луч жёлтого света срывается с вашего указательного пальца и сжимается в выбранной вами точке в пределах дистанции в виде маленького светящегося шарика. Когда заклинание прекращается — либо при нарушении вашей концентрации, либо когда вы сами решите, — шарик с низким гулом взрывается пламенем, которое распространяется и за углы. Каждое существо в пределах сферы радиусом 20 футов вокруг этой точки должно пройти испытание Ловкости. При провале цель получает урон огнём, равный сумме накопленного урона, при успехе — половину этого урона.
Базовый урон заклинания равен [[/r 12d6]]. Если в конце вашего хода шарик еще не взорвался, урон увеличивается на [[/r 1d6]].
Если светящийся шарик тронуть прежде, чем истекло его время, коснувшееся его существо должно пройти испытание Ловкости. При провале заклинание срабатывает немедленно и шарик взрывается пламенем. При успехе существо может метнуть шарик на 40 футов или менее. Если он попадает в существо или твёрдый объект, заклинание прекращается и шарик взрывается.
Огонь поджигает все горючие предметы в области действия, кроме тех, что носят или держат.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 8-го круга или выше, базовый урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 7-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "12d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Perst-smerti-_-Finger-of-Death.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Perst-smerti-_-Finger-of-Death.json new file mode 100755 index 0000000..2b49760 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Perst-smerti-_-Finger-of-Death.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Перст смерти / Finger of Death", + "img": "icons/magic/death/hand-undead-skeleton-fire-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы направляете негативную энергию, и она проходит сквозь существо, которое вы видите в пределах дистанции, вызывая у него невыносимую боль. Цель должна пройти испытание Выносливости. Она получает [[/r 7d8 + 30]] некротического урона при провале или половину этого урона при успехе.
Гуманоид, убитый этим заклинанием, восстаёт в начале вашего следующего хода как зомби. Он навсегда остаётся под вашим контролем и выполняет ваши устные приказы по мере своих способностей.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "7d8 + 30", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Planarnyy-perekhod-_-Plane-shift.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Planarnyy-perekhod-_-Plane-shift.json new file mode 100755 index 0000000..bf3536f --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Planarnyy-perekhod-_-Plane-shift.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Планарный переход / Plane shift", + "img": "icons/tools/navigation/sextant-complex-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы и не более восьми согласных существ, сцепивших руки в круг, переноситесь на другой план бытия. Вы можете указать место перемещения в общих чертах, например Латунный город на Стихийном плане Огня или дворец Дисплатера на втором круге Девяти Преисподних, и вы окажетесь в указанном месте. Если, к примеру, вы пытаетесь попасть в Латунный город, то по усмотрению мастера вы можете попасть на Стальную улицу, к Пепельным вратам, а можете и оказаться напротив него по другую сторону узкого пролива в Море Огня.
Как вариант, если вы знаете последовательность символов круга телепортации на другом плане бытия, заклинание может перенести вас в этот круг. Если размеров круга телепортации недостаточно, чтобы вместить всех перенесённых вами существ, они появятся в ближайшем незанятом пространстве рядом с кругом.
Вы можете применить это заклинание, чтобы изгнать несогласное существо на другой план. Выберите существо в пределах вашей зоны досягаемости и совершите по нему атаку заклинанием в ближнем бою. При попадании существо должно пройти испытание Харизмы. При провале оно перемещается в случайно выбранное место на указанном вами плане бытия. Существо, перенесённое таким образом, должно само найти, как вернуться на ваш план.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "cha", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "10", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Podchinenie-chudovishcha-_-Dominate-Monster.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Podchinenie-chudovishcha-_-Dominate-Monster.json new file mode 100755 index 0000000..7f2618e --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Podchinenie-chudovishcha-_-Dominate-Monster.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Подчинение чудовища / Dominate Monster", + "img": "icons/magic/death/skull-horned-goat-pentagram-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь подчинить существо, которое видите в пределах дистанции. Оно должно пройти испытание Мудрости, при провале оно &reference[charmed]{обворожено} вами, пока длится заклинание. Если вы или дружественные вам существа сражаетесь с этим существом, у него преимущество к испытанию.
Пока цель &reference[charmed]{обворожена}, у вас есть с ней телепатическая связь, если вы оба находитесь на одном плане бытия. Вы можете с помощью этой телепатической связи отдавать существу приказы, пока вы в сознании (действие не требуется), и оно будет выполнять их, насколько сможет. Можете отдавать простые приказы общего характера, например: «Атакуй это существо», «Беги туда», «Схвати этот предмет». Если существо выполняет приказ и больше не получает от вас новых указаний, оно бросает все силы на самозащиту.
Вы можете использовать действие, чтобы обрести полный и точный контроль над целью. До конца вашего следующего хода существо совершает только те действия, которые выбираете вы, и не делает ничего, что вы ему не разрешили. В это время вы можете заставить существо совершить ответное действие, но это также потратит ваше ответное действие.
Всякий раз, когда цель получает урон, она снова проходит испытание Мудрости против заклинания. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 9-го круга, его длительность — концентрация, до 8 часов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Pole-antimagii-_-Antimagic-Field.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Pole-antimagii-_-Antimagic-Field.json new file mode 100755 index 0000000..8593ef7 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Pole-antimagii-_-Antimagic-Field.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поле антимагии / Antimagic Field", + "img": "icons/magic/water/barrier-ice-shield.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вас окружает невидимая сфера антимагии радиусом 10 футов. Её область отрезана от магической энергии, наполняющей мультивселенную. Внутри сферы нельзя творить заклинания, призванные существа исчезают и даже магические предметы становятся обычными. Пока длится заклинание, сфера перемещается вместе с вами — вы остаётесь в её центре.
Заклинания и прочие магические эффекты, кроме тех, что созданы артефактом или божеством, подавляются в сфере и не могут проникнуть в неё. Ячейка для творения подавленного заклинания всё равно тратится. Пока эффект подавлен, он не действует, но это время все равно учитывается в длительности.
Нацеленные эффекты. Заклинания и прочие магические эффекты, такие как @Compendium[laaru-dnd5-hw.spells.FgeTrsMqHnbTEIPl]{Волшебная стрела} и @Compendium[laaru-dnd5-hw.spells.KcziiS01MniKTNZ9]{Приворот гуманоида}, нацеленные на существо или объект внутри сферы, не действуют на цель.
Области магии. Области действия других заклинаний и магических эффектов, таких как @Compendium[laaru-dnd5-hw.spells.j2cNLHZYnbKl46gZ]{Огненный шар}, не распространяются в сферу. Если сфера попадает в область действия магии, в той части, где они совпадают, эффект подавляется. К примеру, пламя, которое вызвала огненная стена, подавляется в пределах сферы, так что в стене может появиться проход
Заклинания. Любые активные заклинания или иные магические эффекты, действовавшие на существо или объект внутри сферы, подавляются, пока существо или объект находятся в сфере.
Магические предметы. Свойства и силы магических предметов внутри сферы подавляются. К примеру, +1 длинный меч в сфере действует как обычный немагический длинный меч. Свойства и силы магического оружия подавляются, если использовать его против цели, находящейся в сфере, или если атакующий им находится в сфере. Но когда магическое оружие или магический боеприпас полностью покидает сферу (к примеру, если вы выстрелите магической стрелой или бросите магическое копьё в цель вне сферы), его магия перестаёт подавляться сразу по выходу из сферы.
Магическое перемещение. Телепортация и планарные путешествия в сфере невозможны: нельзя магически переместиться ни в неё, ни из неё. Порталы в иное место, мир или план бытия и межпространственные карманы вроде тех, что создаёт заклинание @Compendium[laaru-dnd5-hw.spells.iWE8zdeYjqUf6pg6]{Фокус с верёвкой}, закрываются, пока находятся в сфере.
Существа и объекты. Существо или объект, призванные или созданные магией, временно прекращают существовать, попав в сферу. Существо немедленно появляется вновь, как только место, где оно находилось, оказывается за пределами сферы.
Рассеивание магии. Заклинания и магические эффекты, такие как @Compendium[laaru-dnd5-hw.spells.ZdDJVUlzYudd4nHO]{Рассеивание магии}, не действуют на сферу. Аналогичным образом две сферы, созданные разными заклинаниями поле антимагии, не аннулируют друг друга.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Prizyv-nebozhitelya-_-Conjure-Celestial.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Prizyv-nebozhitelya-_-Conjure-Celestial.json new file mode 100755 index 0000000..f03971f --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Prizyv-nebozhitelya-_-Conjure-Celestial.json @@ -0,0 +1,196 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв небожителя / Conjure Celestial", + "img": "icons/magic/holy/angel-winged-humanoid-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете небожителя с классом опасности не выше 4. Он появляется в незанятом пространстве, которое вы видите в пределах дистанции. Небожитель исчезает, когда его ПЗ снижаются до 0 или когда заклинание прекращает действовать. Небожитель дружественен вам и вашим спутникам, пока длится заклинание. Сделайте бросок инициативы для небожителя, чтобы он совершал собственные ходы. Он подчиняется вашим устным приказам (действие от вас не требуется), если они не противоречат его мировоззрению. Если вы не отдаёте приказов, он защищается от враждебных существ, но других действий не совершает. Параметры небожителя есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 9-го круга, то можете призвать небожителя с классом опасности 5 или ниже.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [], + "profiles": [ + { + "count": "", + "name": "", + "_id": "S9rgdpNGHvMnPp6n", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.WkLEUwwIvoEy2qeO", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "UCOvi2RiIneOemUL", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.JJTDPdNVHHbv6J1H", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "Y3JwwV0FTiywpFBX", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.h1MCa6CMl1dX136F", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "00o3DjO8OBP9LFhr", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.tXxVbkUWXRkf9BkU", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "C8HuLC2xLv14AlHR", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.DU0JZLOAVn6nNwKp", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "ayhVI3QjkFuJ424O", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.phTMGhB2HMIntjyN", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Proektsiya-obraza-_-Project-Image.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Proektsiya-obraza-_-Project-Image.json new file mode 100755 index 0000000..04b6249 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Proektsiya-obraza-_-Project-Image.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Проекция образа / Project Image", + "img": "icons/magic/unholy/silhouette-light-fire-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте иллюзорную копию себя, которая существует пока длится заклинание. Копия может появиться в любом месте, которое вы раньше видели в пределах дистанции, вне зависимости от отделяющих вас от него преград. Иллюзия выглядит и звучит как вы, но нематериальна. Если иллюзия получает любой урон, она исчезает, а заклинание прекращает действовать.
Вы можете использовать действие, чтобы перемещать двойника со скоростью вдвое больше вашей и заставлят его жестикулировать, говорить и вести себя по вашему усмотрению. Он в точности повторяет ваши манеры.
Вы можете видеть глазами двойника и слышать его ушами, как если бы вы находились на его месте. В ваш ход в качестве бонусного действия вы можете переключиться с его органов восприятия на свои или обратно. Пока вы используете его восприятие, вы &reference[blinded]{слепы} и &reference[deafened]{глухи} к тому, что происходит вокруг вашего тела.
Физическое взаимодействие с образом выдаёт, что это иллюзия, потому что предметы проходят сквозь нее. Существо, которое использует действие, чтобы изучить образ, сможет понять, что это иллюзия, успешно пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Если существо распознаёт иллюзию, оно может видеть сквозь образ, а звуки образа становятся для него едва различимыми.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "day" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 500, + "long": null, + "units": "mi" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Raduzhnye-bryzgi-_-Prismatic-Spray.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Raduzhnye-bryzgi-_-Prismatic-Spray.json new file mode 100755 index 0000000..fce32be --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Raduzhnye-bryzgi-_-Prismatic-Spray.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Радужные брызги / Prismatic Spray", + "img": "icons/magic/control/buff-luck-fortune-rainbow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Восемь разноцветных лучей исходят из вашей руки. У каждого луча свой цвет и своя магическая сила. Каждое существо в пределах 60-футового конуса должно пройти испытание Ловкости. Бросьте по [[/r d8]] за каждую цель, чтобы определить, какого цвета луч подействовал на нее.
Красный. Цель получает [[/r 10d6]] урона огнём при провале или половину этого урона при успехе.
Оранжевый. Цель получает [[/r 10d6]] урона кислотой при провале или половину этого урона при успехе.
Жёлтый. Цель получает [[/r 10d6]] урона молнией при провале или половину этого урона при успехе.
Зелёный. Цель получает [[/r 10d6]] урона ядом при провале или половину этого урона при успехе.
Голубой. Цель получает [[/r 10d6]] урона холодом при провале или половину этого урона при успехе.
Синий. При провале цель &reference[restrained]{обездвижена}. Она должна проходить испытание Выносливости в конце каждого своего хода. Если цель успешно пройдёт его трижды, ваклинание прекращает действовать. Если цель провалит испытание трижды, она окончательно превратится в камень и получит состояние &reference[petrified]{окаменения}. Успехи и провалы необязательно должны быть подряд: подсчитывайте их, пока чего-то не наберётся три.
Фиолетовый. При провале цель &reference[blinded]{ослеплена}. Она должна пройти испытание Мудрости в начале вашего следующего хода. При успехе слепота прекращается. При провале существо перемещается на другой план бытия по выбору мастера, слепота при этом прекращается. Как правило, если существо не на том плане, с которого родом, оно возвращается на родной план, остальные существа обычно попадают на Астральный или Эфирный планы.
Особый. Цель поразили два луча. Бросьте кость ещё два раза, результат 8 перебрасывайте.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d6", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Regeneratsiya-_-Regenerate.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Regeneratsiya-_-Regenerate.json new file mode 100755 index 0000000..f43dd80 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Regeneratsiya-_-Regenerate.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Регенерация / Regenerate", + "img": "icons/magic/life/crosses-trio-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь существа и стимулируете его естественную регенерацию. Цель восстанавливает [[/r 4d8 + 15]] ПЗ. Пока длится заклинание, цель также восстанавливает по 1 ПЗ в начале каждого своего хода (по 10 ПЗ в минуту).
\nЕсли цель потеряла части тела (пальцы, ноги, хвосты и так далее), они восстанавливаются через 2 минуты. Если вы сохранили отрубленную часть тела, можете приложить её на место и заклинание мгновенно прирастит её.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d8 + 15", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Silovaya-kletka-_-Forcecage.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Silovaya-kletka-_-Forcecage.json new file mode 100755 index 0000000..e96a637 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Silovaya-kletka-_-Forcecage.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Силовая клетка / Forcecage", + "img": "icons/magic/control/debuff-chains-ropes-net-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Неподвижная невидимая тюрьма в форме куба, сотканная из магической силы, появляется в выбранной вами области в пределах дистанции. Тюрьма может по вашему выбору быть клеткой или цельной коробкой.
\nТюрьма в форме клетки может быть размером до 20 футов по любой стороне. Она состоит из прутьев диаметром 1/2 дюйма, расположенных на расстоянии 1/2 дюйма друг от друга. Тюрьма в форме коробки может быть размером до 10 футов по любой стороне. Это твёрдый барьер, не пропускающий никакую материю и блокирующий любые заклинания, направленные как из области, так и в область.
\nКогда вы творите это заклинание, любое существо, оказавшееся целиком в области клетки, будет заперто в ней. Существа, находившиеся в области лишь частично или слишком большие, чтобы уместиться в ней, выталкиваются из её центра, пока не будут полностью вытолкнуты из области.
\nНаходясь в клетке, существо не может покинуть её немагическим способом. Если существо попытается телепортироваться или сбежать из клетки с помощью межпланарного путешествия, ему нужно сперва пройти испытание Харизмы. При успехе существо может воспользоваться магией, чтобы покинуть клетку. При провале существо не может сбежать, а заклинание или эффект не срабатывает и потрачено впустую. Клетка также существует и на Эфирном плане, блокируя эфирное перемещение. Это заклинание нельзя рассеять заклинанием @Compendium[laaru-dnd5-hw.spells.ZdDJVUlzYudd4nHO]{Рассеивание магии}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 100, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Simulyakr-_-Simulacrum.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Simulyakr-_-Simulacrum.json new file mode 100755 index 0000000..cbf44af --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Simulyakr-_-Simulacrum.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Симулякр / Simulacrum", + "img": "icons/creatures/magical/construct-stone-earth-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте иллюзорного двойника животного или гуманоида. Оригинал должен оставаться в пределах дистанции все время сотворения заклинания. Двойник — это существо, частично реальное и состоящее из снега или льда. Он может совершать действия и подвергаться воздействиям как реальное существо. На вид он такой же, как оригинал, но его максимум ПЗ вдвое ниже, и при создании у него нет никакого снаряжения. В остальном у иллюзии те же параметры, что у оригинала, не считая того, что двойник — конструкция.
Симулякр дружественен вам и тем существам, которых вы укажете. Он повинуется вашим устным приказам, перемещается и действует в соответствии с вашими желаниями. Он действует в ваш ход в бою. Симулякр не может ничему учиться или становиться сильнее, он не получает уровней, не повышает характеристики не восстанавливает потраченные ячейки заклинаний.
Если симулякр получает урон, вы можете его починить в алхимической лаборатории, используя редкие травы и минералы стоимостью 100 зм за каждый восстанавливаемый ПЗ. Симулякр существует, пока его ПЗ не снизятся до 0, после чего он снова превратится в снег и сразу растает.
Если вы сотворите это заклинание повторно, все активные двойники, созданные вами ранее с помощью этого заклинания, немедленно разрушаются.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "hour", + "cost": 12, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "spec", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Simvol-_-Symbol.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Simvol-_-Symbol.json new file mode 100755 index 0000000..94fe960 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Simvol-_-Symbol.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Символ / Symbol", + "img": "icons/magic/symbols/rune-sigil-white-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Когда вы сотворяете это заклинание, вы чертите губительный символ либо на поверхности (например, на стене, полу или столе), либо внутри объекта, который можно закрыть, чтобы скрыть символ (например, внутри книги, свитка или сундука с сокровищами). Если вы выбрали поверхность, символ может покрывать площадь не более 10 футов в диаметре. Если вы выбрали объект, он должен оставаться на месте. Если его переместить более чем на 10 футов от места, где вы сотворили заклинание, символ разрушится и заклинание прекратит действовать, не сработав.
Символ почти невидим — чтобы заметить его, требуется успешная проверка Интеллекта (Расследование). СЛ равна СЛ испытаний против ваших заклинаний.
Когда вы сотворяете заклинание, вы сами решаете, что заставит символ сработать. Символы, нанесённые на поверхность, как правило, активируются, если их кто-то касается, наступает на них, снимает то, что скрывало символ, приближается к символу на определённое расстояние или манипулирует объектом, на котором символ начертан. Символы, спрятанные внутри объекта, обычно активируются, если кто-то открывает этот объект, приближается к нему на определённое расстояние, видит или читает символ.
Вы можете доработать заклинание так, чтобы оно активировалось только при строго определённых условиях, физических характеристиках цели (вроде роста или веса) или её виде (например, можно настроить символ против карги или перевёртыша). Вы также можете задать условия для существ, позволяющие избежать активации символа, например определённый пароль.
Когда вы чертите символ, выберите один из вариантов эффектов, перечисленных далее. Сработав, символ начинает светиться, освещая сферу радиусом 60 футов тусклым светом на 10 минут, после чего заклинание прекращает действовать. Каждое существо, находившееся в этой сфере при активации символа, становится целью эффекта, как и существо, которое впервые за ход входит в сферу или заканчивает в ней свой ход.
Безнадёжность. Каждая цель должна пройти испытание Харизмы. При провале отчаяние охватывает цель на 1 минуту. В это время цель не может атаковать другое существо или выбирать его целью вредоносных заклинаний, способностей и прочих магических эффектов.
Безумие. Каждая цель должна пройти испытание Интеллекта. При провале цель впадает в безумие на 1 минуту. Безумное существо не может совершать действия, не понимает, что говорят другие, не может читать и несёт чушь. Его беспорядочным перемещением управляет мастер.
Боль. Каждая цель должна пройти испытание Выносливости. При провале она &reference[incapacitated]{выведена из строя} невыносимой болью на 1 минуту.
Раздор. Каждая цель должна пройти испытание Выносливости. При провале цель ругается и спорит с другими существами всю следующую минуту. В это время она неспособна на разумные разговоры и получает помеху к броскам атаки и проверкам характеристик.
Смерть. Каждая цель должна пройти испытание Выносливости. Она получает [[/r 10d10]] некротического урона при провале или половину этого урона при успехе.
Сон. Каждая цель должна пройти испытание Мудрости. При провале она &reference[unconscious]{теряет сознание} на 10 минут. Существо просыпается, если получает урон или если кто-нибудь в качестве действия встряхивает его, чтобы разбудить.
Страх. Каждая цель должна пройти испытание Мудрости. При провале она становится &reference[frightened]{испугана} на 1 минуту. Пока цель испугана, она роняет то, что держала, и должна перемещаться каждый свой ход хотя бы на 30 футов от символа, если может.
Шок. Каждая цель должна пройти испытание Мудрости. При провале она в &reference[stunned]{шоке} на 1 минуту.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d10", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Slaboumie-_-Feeblemind.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Slaboumie-_-Feeblemind.json new file mode 100755 index 0000000..7e14671 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Slaboumie-_-Feeblemind.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слабоумие / Feeblemind", + "img": "icons/magic/control/fear-fright-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы взрываете рассудок существа, которое видите в пределах дистанции, пытаясь разрушить его интеллект и личность. Цель получает [[/r 4d6]] психического урона и должна пройти испытание Интеллекта.
При провале Интеллект и Харизма существа становятся равны 1. Существо не может творить заклинания, активировать магические предметы, понимать язык или общаться разборчиво. Однако существо всё еще будет узнавать друзей, следовать за ними и даже защищать их.
По истечении каждых 30 дней существо может повторить испытание против заклинания. При успехе заклинание прекращает действовать.
Заклинание также можно прекратить заклинаниями @Compendium[laaru-dnd5-hw.spells.lFqzcFBz3F0u96i1]{Высшее восстановление}, @Compendium[laaru-dnd5-hw.spells.Ppe5e5OG42FL2kEH]{Излечение} или @Compendium[laaru-dnd5-hw.spells.3DmrqW87SyWdaa8T]{Желание}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "int", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Slovo-sily_-shok-_-Power-Word-Stun.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Slovo-sily_-shok-_-Power-Word-Stun.json new file mode 100755 index 0000000..a389498 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Slovo-sily_-shok-_-Power-Word-Stun.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слово силы: шок / Power Word Stun", + "img": "icons/magic/unholy/strike-body-life-soul-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы произносите слово силы, и оно поражает разум одного существа, которое вы видите в пределах дистанции. Если у цели 150 ПЗ или меньше, она в &reference[stunned]{шоке}. В противном случае заклинание не действует.
Цель в шоке должна проходить испытание Выносливости в конце каждого своего хода. При успехе эффект шока прекращается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Sokrytie-razuma-_-Mind-Blank.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Sokrytie-razuma-_-Mind-Blank.json new file mode 100755 index 0000000..bf192e4 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Sokrytie-razuma-_-Mind-Blank.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сокрытие разума / Mind Blank", + "img": "icons/magic/perception/hand-eye-fire-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, одно согласное существо, которого вы коснулись, невосприимчиво к психическому урону, к любому эффекту, который позволил бы почувствовать его эмоции или прочесть мысли, к заклинаниям прорицания и состоянию &reference[charmed]{обворожения}. Не срабатывают даже заклинание @Compendium[laaru-dnd5-hw.spells.3DmrqW87SyWdaa8T]{Желание} и другие заклинания или эффекты сравнимой силы, если их используют, чтобы повлиять на разум цели или получить информацию о ней.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Solnechnaya-vspyshka-_-Sunburst.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Solnechnaya-vspyshka-_-Sunburst.json new file mode 100755 index 0000000..5270235 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Solnechnaya-vspyshka-_-Sunburst.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Солнечная вспышка / Sunburst", + "img": "icons/magic/light/explosion-star-glow-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Яркий солнечный свет вспыхивает в радиусе 60 футов вокруг выбранной вами точки в пределах дистанции. Каждое существо в этой области должно пройти испытание Выносливости. При провале существо получает [[/r 12d6]] лучистого урона и &reference[blinded]{ослеплено} на 1 минуту. При успехе оно получает половину этого урона и не ослеплено. Нежить и жижи проходят испытание с помехой.
Существо, ослеплённое этим заклинанием, снова проходит испытание Выносливости в конце каждого своего хода. При успехе оно больше не ослеплено.
Заклинание рассеивает любую &reference[darkness]{тьму} в области, созданную заклинанием.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "12d6", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Telepatiya-_-Telepathy.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Telepatiya-_-Telepathy.json new file mode 100755 index 0000000..2a6ede2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Telepatiya-_-Telepathy.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Телепатия / Telepathy", + "img": "icons/magic/control/energy-stream-link-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте телепатическую связь между собой и согласным существом, с которым вы знакомы. Существо может быть в любом месте того же плана бытия, что и вы. Заклинание прекращает действовать, если вы с целью больше не на одном плане.
\nПока длится заклинание, вы с целью можете мгновенно обмениваться словами, образами, звуками и прочими сенсорными посланиями, и цель знает, что они исходят от вас. Заклинание позволяет существу с Интеллектом не менее 1 понимать смысл ваших слов и воспринимать ваши сенсорные послания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "spec", + "type": "", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Teleportatsiya-_-Teleport.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Teleportatsiya-_-Teleport.json new file mode 100755 index 0000000..4daaf3c --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Teleportatsiya-_-Teleport.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Телепортация / Teleport", + "img": "icons/skills/ranged/projectile-spiral-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание мгновенно переносит вас и не более восьми согласных существ на ваш выбор, которых вы видите в пределах дистанции, или один объект, который вы видите в пределах дистанции, в выбранное вами место назначения. Если цель — объект, он должен полностью помещаться в 10-футовый куб и его не должно носить или держать несогласное существо.
Место назначения должно быть известно вам и находиться на том же плане бытия, что и вы. От вашей степени знакомства с местом назначения зависят ваши шансы попасть туда. Мастер бросает [[/r d100]] и сверяется с таблицей.
| Знакомство | Срыв | Похожее место | Мимо | На месте |
|---|---|---|---|---|
| Постоянный круг | — | — | — | 01–100 |
| Связанный объект | — | — | — | 01–100 |
| Хорошо знакомо | 01–05 | 06–13 | 14–24 | 25–100 |
| Случалось бывать | 01–33 | 34–43 | 44–53 | 54–100 |
| Однажды видели | 01–43 | 44–53 | 54–73 | 74–100 |
| Описание | 01–43 | 44–53 | 54–73 | 74–100 |
| Ложное место | 01–50 | 51–100 | — | — |
Знакомство. «Постоянный круг» означает постоянный круг телепортации, последовательность символов которого вы знаете, «Связанный объект» значит, что у вас есть объект, взятый из места назначения за последние 6 месяцев, — например, книга из библиотеки волшебника, простыня из номера в гостинице или кусочек мрамора из тайной гробницы лича.
«Хорошо знакомо» — место, в котором вы часто бывали, которое тщательно изучали или можете видеть, когда творите это заклинание. «Случалось бывать» — место, где вы бывали более одного раза, но которое не очень хорошо знаете. «Однажды видели» - место, которое вы видели один раз, возможно при помощи магии. «Описание» — место, расположение и внешний вид которого вы знаете только по чужим описаниям или карте.
«Ложное место» — место, которого не существует. Возможно, вы пытались шпионить за врагом и видели его укрытие, но оно оказалось иллюзией. Или вы пытаетесь переместиться в знакомое место, которого больше нет.
На месте. Вы и ваша группа (или объект) оказываетесь там, где хотели.
Мимо. Вы и ваша группа (или объект) оказываетесь на случайном расстоянии от цели в неизвестном направлении. Расстояние до цели равно [[/r 1d10 * 1d10]] (1d10 × 1d10) процентов расстояния, которое вы пытались преодолеть. К примеру, если вы пытались перенестись на 120 миль, но попали мимо и выбросили 5 из на двух [[/r d10]], вы окажетесь в 15% расстояния от цели, то есть в 18 милях. Мастер случайным образом определяет, в каком направлении относительно цели вы оказались, бросив [[/r d8]]. При этом 1 означает север, 2 — северо-восток, 3 — восток и так далее по компасу. Если вы пытались телепортироваться в прибрежный город и оказались в море в 18 милях от берега, возможны проблемы.
Похожее место. Вы и ваша группа (или объект) оказываетесь в другом месте, которое визуально или тематически похоже на нужное. К примеру, если вы пытались попасть в свою лабораторию, вы можете оказаться в лаборатории другого волшебника или в алхимической лавке, где есть инструменты, похожие на ваши. Как правило, вы оказываетесь в ближайшем похожем месте, но, поскольку у заклинания нет ограничения по дистанции, вы запросто можете оказаться в любом месте этого плана бытия.
Срыв. Непредсказуемая магия заклинания устраивает вам неприятную прогулку. Каждое телепортирующееся существо (или объект) получает [[/r 3d10]] урона силой, и мастер делает ещё один бросок, чтобы определить, где вы окажетесь. Срывы могут повторяться несколько раз, нанося урон многократно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Tsunami-_-Tsunami.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Tsunami-_-Tsunami.json new file mode 100755 index 0000000..411ce76 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Tsunami-_-Tsunami.json @@ -0,0 +1,120 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Цунами / Tsunami", + "img": "icons/magic/water/wave-water-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Стена воды появляется в выбранной вами точке в пределах дистанции. Вы можете создать стену длиной до 300 футов, высотой до 300 футов и толщиной до 50 футов. Стена существует, пока длится заклинание.
\nКогда стена появляется, каждое существо в пределах её области должно пройти испытание Силы. При провале существо получает [[/r 6d10]] дробящего урона, при успехе — половину этого урона.
\nВ начале каждого вашего хода после появления стены она перемещается на 50 футов от вас вместе со всеми существами, оказавшимися в ней. Любое существо огромного размера или меньше, которое оказалось внутри стены или попало в нее, оказавшись на пути ее перемещения, должно пройти испытание Силы. При провале оно получает [[/r 5d10]] дробящего урона. Существо может получить этот урон только раз в раунд. В конце хода высота стены уменьшается на 50 футов, а урон, который существа получат от этого заклинания в последующие раунды, уменьшается на [[/r 1d10]]. Когда высота стены дойдёт до 0, заклинание прекращает действовать.
\nСущество, попавшее в стену, может перемещаться вплавь. Однако из-за мощи волны существо должно пройти проверку Силы (Атлетика). СЛ равна СЛ испытаний против ваших заклинаний. При провале оно не может перемещаться. Покинув область волны, существо падает наземь,
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "round" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "spec", + "type": "", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d10", + "bludgeoning" + ], + [ + "5d10", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Upravlenie-pogodoy-_-Control-Weather.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Upravlenie-pogodoy-_-Control-Weather.json new file mode 100755 index 0000000..6aab9fc --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Upravlenie-pogodoy-_-Control-Weather.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Управление погодой / Control Weather", + "img": "icons/magic/air/weather-clouds-rainbow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы управляете погодой в пределах 5 миль от вас, пока длится заклинание. Вам надо быть под открытым небом, чтобы сотворить это заклинание. Если вы окажетесь вместе, где нет прямого пути между вами и небом, заклинание прекращает действовать.
\nКогда вы творите это заклинание, вы меняете текущую погоду, определённую мастером на основе климата и времени года. Вы можете поменять осадки, температуру и ветер. На наступление новой погоды уходит [[/r 1d4 * 10]] (1d4 × 10) минут. После этого вы можете поменять погоду снова. По окончании заклинания погода постепенно возвращается в норму.
\nКогда вы меняете погоду, найдите текущую погоду в этих таблицах и меняйте её на одну стадию вверх или вниз. Меняя ветер, вы можете изменить его направление.
\n| Стадия | \nПогода | \n
|---|---|
| 1 | \nЯсное небо | \n
| 2 | \nЛёгкая облачность | \n
| 3 | \nПасмурно или густой туман | \n
| 4 | \nДождь, снег или град | \n
| 5 | \nЛивень, сильный град или метель | \n
| Стадия | \nПогода | \n
|---|---|
| 1 | \nНевыносимая жара | \n
| 2 | \nЖара | \n
| 3 | \nТепло | \n
| 4 | \nПрохладно | \n
| 5 | \nХолодно | \n
| 6 | \nПолярный мороз | \n
| Стадия | \nПогода | \n
|---|---|
| 1 | \nШтиль | \n
| 2 | \nСредний ветер | \n
| 3 | \nСильный ветер | \n
| 4 | \nКрепкий ветер | \n
| 5 | \nШторм | \n
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "mi", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Velikolepnyy-osobnyak-Mordenkaynena-_-Mordenkainen's-Magnificent-Mansion.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Velikolepnyy-osobnyak-Mordenkaynena-_-Mordenkainen's-Magnificent-Mansion.json new file mode 100755 index 0000000..ca65c09 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Velikolepnyy-osobnyak-Mordenkaynena-_-Mordenkainen's-Magnificent-Mansion.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Великолепный особняк Морденкайнена / Mordenkainen's Magnificent Mansion", + "img": "icons/environment/settlement/castle-gatehouse.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте межпространственное жилище в пределах дистанции. Оно существует, пока длится заклинание. Вы сами выбираете, где находится единственный вход. Он слабо мерцает и имеет размеры 5 футов в ширину и 10 футов в высоту. Вы и любые существа, выбранные вами при сотворении заклинания, можете входить в межпространственное жилище, пока портал открыт. Вы можете открыть или закрыть портал, если находитесь в пределах 30 футов от него. Пока портал закрыт, он невидим.
\nЗа порталом находится роскошная приёмная, а за ней — множество палат. Воздух там чистый, свежий и тёплый.
\nВы можете создать любую планировку на свой выбор, но жилище не может занимать больше пятидесяти 10-футовых кубов. Можете украсить и обставить его по своему вкусу. Здесь достаточно еды, чтобы устроить пир на сто персон с девятью переменами блюд. Тем, кто входит, прислуживают сто полупрозрачных слуг. Вы сами решаете, как выглядят слуги и во что одеты. Они беспрекословно подчиняются вашим приказам. Каждый слуга может выполнить любую задачу, посильную обычному слуге-человеку, но не может атаковать или совершать действия, напрямую вредящие другим существам. Слуги могут убираться, носить или чинить вещи, складывать одежду, разжигать огонь, подавать еду, разливать вино и тому подобное. Слуги могут входить в любое помещение в особняке, но не могут покидать его пределы. Если мебель или любые другие предметы, созданные этим заклинанием, вынести из особняка, они испарятся. Когда заклинание прекращает действовать, любые существа, находившиеся в межпространственном жилище, изгоняются в ближайшее к входу свободное пространство.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Volshebnyy-mirazh-_-Mirage-Arcane.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Volshebnyy-mirazh-_-Mirage-Arcane.json new file mode 100755 index 0000000..e2d1d56 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Volshebnyy-mirazh-_-Mirage-Arcane.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный мираж / Mirage Arcane", + "img": "icons/magic/earth/volcano-explosion-lava-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы заставляете местность в области до 1 квадратной мили выглядеть, звучать, пахнуть и быть на ощупь такой, как иной тип местности. Однако общий рельеф её должен оставаться тем же. Просторные поля или дороги могут напоминать болота, холмы, овраги или иную пересеченную или непроходимую местность. Пруд может казаться цветущей лужайкой, обрыв — плавным склоном, а каменистое ущелье — широкой и чистой дорогой.
\nАналогично вы можете менять внешний вид строений или добавлять их там, где их нет. Однако заклинание не может скрыть, замаскировать или добавить существ.
\nИллюзия включает звуковые, визуальные, тактильные и обонятельные элементы, так что она может превратить ровную поверхность в пересечённую местность (и наоборот) или иным образом помешать перемещению в области. Любой фрагмент иллюзорной местности (например, камень или палка), покинувший область заклинания, немедленно исчезает. Существа с истинным зрением могут различить сквозь иллюзию истинный облик местности, однако все остальные элементы иллюзии сохраняются. Существо может знать, что перед ним иллюзия, и всё равно физически взаимодействовать с ней.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "10", + "units": "day" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "mi", + "type": "square", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Voskreshenie-_-Resurrection.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Voskreshenie-_-Resurrection.json new file mode 100755 index 0000000..4c12a57 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Voskreshenie-_-Resurrection.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Воскрешение / Resurrection", + "img": "icons/magic/nature/plant-seed-hands-glow-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, которое было мертво не более века, не умерло от старости и не является нежитью. Если его душа свободна и хочет вернуться, цель возвращается к жизни, восстанавливая все ПЗ.
\nЗаклинание нейтрализует все яды и исцеляет обычные болезни, влиявшие на существо на момент смерти. Однако заклинание не снимает магические болезни, проклятия и тому подобные эффекты. Если их не снять перед сотворением этого заклинания, они продолжат действовать, когда существо вернётся к жизни.
\nЗаклинание заставляет все смертельные раны зарасти и восстанавливает потерянные части тела.
\nВозвращение из мёртвых — тяжёлое испытание. Цель получает штраф -4 ко всем броскам атак, испытаниям и проверкам характеристик. Каждый раз, когда цель завершает долгий отдых, штраф уменьшается на 1, пока не исчезнет.
\nТворить это заклинание на существо, которое было мертво год или более, крайне тяжело для вас. Пока вы не завершите долгий отдых, вы не можете творить заклинания, а также получаете помеху ко всем броскам атаки, проверкам характеристики испытаниям.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "spec", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Vykhod-v-efir-_-Etherealness.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Vykhod-v-efir-_-Etherealness.json new file mode 100755 index 0000000..da5c6ae --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Vykhod-v-efir-_-Etherealness.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Выход в эфир / Etherealness", + "img": "icons/magic/control/debuff-energy-hold-blue-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы вступаете в пограничные части эфирного плана, в ту область, что пересекается с вашим текущим планом. Вы остаётесь в Эфирных границах, пока длится заклинание или пока вы не прекратите его, потратив действие. Всё это время вы можете перемещаться в любом направлении. Каждый фут перемещения вверх или вниз тратит 1 дополнительный фут скорости. Вы можете видеть (в оттенках серого и только в пределах 60 футов) и слышать план, с которого прибыли.
Находясь на Эфирном плане, вы можете взаимодействовать только с другими существами на этом же плане. Существа на других планах не чувствуют вас и не могут с вами взаимодействовать, если только им не дает такую возможность особая способность или магия.
Вы игнорируете все объекты и эффекты, не находящиеся на Эфирном плане, и можете проходить сквозь воспринимаемые вами объекты того плана, с которого вы прибыли.
Когда заклинание прекращает действовать, вы немедленно возвращаетесь на план, с которого прибыли, в том месте, в котором в данный момент находитесь. Если вы оказались в одной точке с твердым объектом или существом, вы немедленно переноситесь в ближайшее незанятое пространство, которое можете занять, и получаете урон силой, равный количеству футов, на которое вы переместились, умноженному на два.
Заклинание не действует, если сотворить его, находясь на Эфирном плане или на плане, не граничащим с ним, например на Внешних планах.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 8-го круга или выше, то можете выбрать целью до трёх согласных существ (включая вас) за каждый круг ячейки выше 7-го. В момент сотворения существа должны находиться в пределах 10 футов от вас.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 17. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 17. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Zemletryasenie-_-Earthquake.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Zemletryasenie-_-Earthquake.json new file mode 100755 index 0000000..b3f9aa5 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Zemletryasenie-_-Earthquake.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Землетрясение / Earthquake", + "img": "icons/magic/earth/barrier-stone-explosion-spiked.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 500, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 18, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Zhivotnye-obliki-_-Animal-Shapes.json b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Zhivotnye-obliki-_-Animal-Shapes.json new file mode 100755 index 0000000..2149214 --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/Svitok-zaklinaniya_-Zhivotnye-obliki-_-Animal-Shapes.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Животные облики / Animal Shapes", + "img": "icons/magic/life/heart-broken-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Ваша магия превращает окружающих в животных. Выберите любое количество согласных существ, которых видите в пределах дистанции. Вы превращаете каждую цель в животное крупного размера или меньше с классом опасности 4 или ниже. В последующие ходы вы можете использовать действие, чтобы превратить этих существ в иные формы.
Превращение сохраняется для каждой цели, пока длится заклинание, или пока ПЗ цели не снизятся до 0, или пока она не умрёт. Вы можете выбрать разные формы для разных целей. Параметры цели меняются на параметры выбранного животного, но цель сохраняет мировоззрение, значения Мудрости, Интеллекта и Харизмы. Цель получает ПЗ новой формы, а вернувшись к обычной форме, возвращается к тем ПЗ, которые у неё были до превращения. Если она превращается обратно из-за снижения ПЗ до 0, любой избыточный урон переносится на обычную форму; если этот урон не снижает ПЗ обычной формы до 0, существо не &reference[unconscious]{теряет сознания}. Действия существа ограничены возможностями его новой формы, оно не может говорить или творить заклинания. Снаряжение существа сливается с его новой формой.
Цель не может его использовать, активировать или иным образом получать от него пользу.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 18. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 18
Бонус атаки: +10.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 18. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d2 - 1 * 1d3 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/scrolls/fvtt-Item-kniga-kamennogo-golema-_-manual-of-stone-golems-NbUxcveUJN2Rik4c.json b/test_tube_merchant/items/beautiful/scrolls/fvtt-Item-kniga-kamennogo-golema-_-manual-of-stone-golems-NbUxcveUJN2Rik4c.json new file mode 100755 index 0000000..ad9459d --- /dev/null +++ b/test_tube_merchant/items/beautiful/scrolls/fvtt-Item-kniga-kamennogo-golema-_-manual-of-stone-golems-NbUxcveUJN2Rik4c.json @@ -0,0 +1,129 @@ +{ + "name": "Книга каменного голема / Manual of Stone Golems", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Manual%20of%20Iron%20Golem.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "manual%20of%20stone%20golems_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Manual of Stone Golems", + "translated": true + } + }, + "system": { + "description": { + "value": "В этой книге есть сведения и волшебные слова, необходимые для создания каменного голема. Чтобы расшифровать и использовать эту книгу, надо быть заклинателем с хотя бы двумя ячейками заклинаний 5-го круга. Существо, которое не может использовать книгу голема, но попытается прочитать её, получит [[/r 6d6]] психического урона.
\nЧтобы создать @Compendium[laaru-dnd5-hw.monsters.mypnk5W5lAJUp2LB]{каменного голема}, нужно потратить 90 дней без перерывов, держа книгу при себе и отдыхая не более 8 часов в день, вам надо также выплатить стоимость ингредиентов равную 80 000 ЗМ . Когда создание голема завершено, книга сгорает в потустороннем пламени. Голем оживает, когда его осыплют пеплом книги. Он находится под вашим контролем, понимает и исполняет ваши устные приказы.
\nДоспех сделан из чешуи одного вида дракона. Иногда драконы собирают свою чешую после линьки и дарят гуманоидам. Иногда охотники свежуют убитого дракона и сохраняют шкуру. В любом случае такой доспех высоко ценится. Пока вы носите эту броню, вы получаете бонус +1 к КБ, у вас преимущество к испытаниям против Пугающего присутствия и губительного дыхания красных драконов и устойчивость к урону огнём.
\nКроме того, вы можете в качестве действия сосредоточиться, чтобы магически узнать, в каком направлении и на каком расстоянии в пределах 30 миль от вас находится ближайший дракон того же вида, что броня. Это особое действие нельзя снова использовать до следующего рассвета.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 45, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 15, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/skin/dvarfijskij-poyas-_-belt-of-dwarvenkind.json b/test_tube_merchant/items/beautiful/skin/dvarfijskij-poyas-_-belt-of-dwarvenkind.json new file mode 100755 index 0000000..a92b314 --- /dev/null +++ b/test_tube_merchant/items/beautiful/skin/dvarfijskij-poyas-_-belt-of-dwarvenkind.json @@ -0,0 +1,234 @@ +{ + "name": "Дварфийский пояс / Belt of Dwarvenkind", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Belt%20of%20Dwarvenkind.webp", + "effects": [ + { + "changes": [ + { + "key": "system.abilities.con.value", + "mode": 2, + "value": "2", + "priority": 7 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "_id": "u8goux96ag3wse4x", + "origin": null, + "name": "Бонус к Выносливости", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Belt%20of%20Dwarvenkind.webp", + "type": "base", + "system": {}, + "sort": 0 + }, + { + "changes": [ + { + "key": "system.traits.dr.value", + "mode": 2, + "value": "poison", + "priority": 7 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "_id": "1ek3p819ohjnbgbs", + "origin": null, + "name": "Устойчивость к яду", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Belt%20of%20Dwarvenkind.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "belt%20of%20dwarvenkind_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Belt of Dwarvenkind", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
Пока вы носите этот пояс, вы получаете следующую пользу:
Кроме того, пока вы настроены на пояс, у вас есть шанс [[/r 1d100]]{50%} каждый день на рассвете отрастить густую бороду, если вы на это способны. А если у вас уже есть борода, она станет заметно гуще.
Если вы не дварф, вы получаете дополнительную пользу, пока носите пояс:
Пока вы носите эту броню, вы получаете бонус +1 к КБ. Вы можете также использовать бонусное действие, чтобы произнести командное слово, и броня примет облик обычной одежды или другого вида брони. Вы сами решаете, как она выглядит, включая цвет, стиль и аксессуары, но броня сохраняет прежние вес и объём. Иллюзорный облик сохраняется, пока вы не используете это свойство снова или пока не снимете броню.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 13, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "Командное слово" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 13, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "light", + "baseItem": "studded" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/skin/sedlo-kavalerista-_-saddle-of-the-cavalier.json b/test_tube_merchant/items/beautiful/skin/sedlo-kavalerista-_-saddle-of-the-cavalier.json new file mode 100755 index 0000000..f52ca00 --- /dev/null +++ b/test_tube_merchant/items/beautiful/skin/sedlo-kavalerista-_-saddle-of-the-cavalier.json @@ -0,0 +1,129 @@ +{ + "name": "Седло кавалериста / Saddle of the Cavalier", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Saddle%20of%20the%20Cavalier.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "saddle%20of%20the%20cavalier_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Saddle of the Cavalier", + "translated": true + } + }, + "system": { + "description": { + "value": "Пока вы верхом на скакуне в этом седле, вас нельзя спешить против вашей воли, если вы в сознании, а броски атаки по скакуну получают помеху.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/thieves/el�fijskij-plash-_-cloak-of-elvenkind.json b/test_tube_merchant/items/beautiful/thieves/el�fijskij-plash-_-cloak-of-elvenkind.json new file mode 100755 index 0000000..8a9f43b --- /dev/null +++ b/test_tube_merchant/items/beautiful/thieves/el�fijskij-plash-_-cloak-of-elvenkind.json @@ -0,0 +1,129 @@ +{ + "name": "Эльфийский плащ / Cloak of Elvenkind", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Cloak%20of%20Elvenkind.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "cloak%20of%20elvenkind_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Cloak of Elvenkind", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
Пока вы носите этот плащ, надвинув капюшон, проверки Мудрости (Внимание) при попытке увидеть вас получают помеху, а у вас преимущество к проверкам Ловкости (Скрытность), чтобы спрятаться, поскольку плащ меняет цвет, маскируя вас. Чтобы надвинуть или снять капюшон, требуется действие.
Эти перчатки &reference[invisible]{невидимы}, когда надеты. Пока вы носите их, вы получаете бонус +5 к проверкам Ловкости (Ловкость рук) и проверкам Ловкости для взлома замков.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/thieves/yad-viverny-_-wyvern-poison.json b/test_tube_merchant/items/beautiful/thieves/yad-viverny-_-wyvern-poison.json new file mode 100755 index 0000000..b787ccf --- /dev/null +++ b/test_tube_merchant/items/beautiful/thieves/yad-viverny-_-wyvern-poison.json @@ -0,0 +1,184 @@ +{ + "name": "Яд виверны / Wyvern Poison", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Wyvern%20Poison.webp", + "effects": [ + { + "name": "Яд виверны / Wyvern Poison", + "flags": { + "dnd5e": { + "type": "enchantment", + "enchantment": { + "level": { + "min": null, + "max": null + }, + "riders": { + "effect": [], + "item": [] + } + } + }, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Wyvern%20Poison.webp", + "_id": "9jPrWmDSuh0UH8Hy", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.damage.parts", + "mode": 2, + "value": "[[\"7d6\",\"poison\"]]", + "priority": 20 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1724697044002, + "modifiedTime": 1724697077463, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "wyvern%20poison_dmg" + }, + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + }, + "babele": { + "hasTranslation": true, + "originalName": "Wyvern Poison", + "translated": true + } + }, + "system": { + "description": { + "value": "Этот яд собирают с мёртвой или &reference[incapacitated]{выведенной из строя} @Compendium[laaru-dnd5-hw.monsters.SPb8S9ZEOVkYXh16]{виверны}. Цель должна пройти испытание Выносливости со СЛ 15, иначе получит 24 [[/r 7d6]] урона ядом при провале или половину этого урона при успехе.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
Вы можете использовать действие, чтобы лезвие покрылось густым чёрным ядом. Яд существует 1 минуту или пока атака этим оружием не попадёт в существо. Это существо должно пройти испытание Выносливости со СЛ 15, при провале оно получит [[/r 2d10]] урона ядом и &reference[poisoned]{отравлено} на 1 минуту. Кинжал нельзя использовать так снова до следующего рассвета.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "day", + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "2d10", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "mgc", + "thr", + "fin" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/tools/gnomij-armejskij-nozh.json b/test_tube_merchant/items/beautiful/tools/gnomij-armejskij-nozh.json new file mode 100755 index 0000000..37ac5ac --- /dev/null +++ b/test_tube_merchant/items/beautiful/tools/gnomij-armejskij-nozh.json @@ -0,0 +1,40 @@ +{ + "name": "Гномий армейский нож", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/gnome_knife.png", + "system": { + "description": { + "value": "Складной нож, содержащий 5 различных инструментов на выбор.
", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 1.3, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/tools/gnom�e-ognivo.json b/test_tube_merchant/items/beautiful/tools/gnom�e-ognivo.json new file mode 100755 index 0000000..0cc56a6 --- /dev/null +++ b/test_tube_merchant/items/beautiful/tools/gnom�e-ognivo.json @@ -0,0 +1,40 @@ +{ + "name": "Гномье огниво", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/gnome_ognivo.png", + "system": { + "description": { + "value": "Магическое устройство, которое может мгновенно зажечь горючий объект.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/tools/instrumenty-mehanika-_-tinker's-tools.json b/test_tube_merchant/items/beautiful/tools/instrumenty-mehanika-_-tinker's-tools.json new file mode 100755 index 0000000..a1ef496 --- /dev/null +++ b/test_tube_merchant/items/beautiful/tools/instrumenty-mehanika-_-tinker's-tools.json @@ -0,0 +1,91 @@ +{ + "name": "Инструменты механика / Tinker's Tools", + "type": "tool", + "img": "icons/commodities/tech/cog-bronze.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Tinker's Tools" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для работы с механизмами. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПредназначен для того, чтобы чинить множество обычных предметов. И хотя вы не можете создать большинство из них инструментами механика, вы можете починить порвавшуюся одежду, наточить затупившийся меч и подлатать истрепавшуюся кольчугу.
\nКомпоненты. Инструменты механика включают в себя различные ручные инструменты, нитки, иголки, точильный камень, куски ткани и кожи, небольшую банку клея.
\nИстория. Вы можете определить возраст и происхождение предмета, даже если у вас в наличии всего несколько частей, оставшихся от оригинала.
\nРасследование. Когда вы осматриваете повреждённый предмет, вы узнаёте, как и насколько давно он был повреждён.
\nПочинка. Вы можете восстанавливать по 10 ПЗ повреждённого предмета за каждый час работы. Для починки любого предмета вам необходим доступ к материалам, необходимым для ремонта. Для металлических предметов вам нужен доступ к открытому огню, жара которого достаточно, чтобы сделать металл пластичным.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Временно починить повреждённый механизм | \n10 | \n
| Починить предмет вдвое быстрее | \n15 | \n
| Смастерить из хлама временный предмет | \n20 | \n
Чудесный предмет
Эта вязкая молочно-белая субстанция может навсегда склеить два любых объекта. Её хранят в банке или склянке, покрытой изнутри @Compendium[laaru-dnd5-hw.items.kwg0UMBf853PGxuY]{Маслом скольжения}. В найденном контейнере [[/r 1d6 + 1]] унций клея.
Одна унция клея может покрыть 1-футовый квадрат поверхности. На засыхание клея уходит 1 минута. После этого склеенное можно разделить только с помощью @Compendium[laaru-dnd5-hw.items.2lz6A4U5BMf42DfN]{Универсального растворителя}, @Compendium[laaru-dnd5-hw.items.vhoLALvyurMqpMSA]{Масла эфирности} или заклинания @Compendium[laaru-dnd5-hw.spells.3DmrqW87SyWdaa8T]{Желание}.
Эта вязкая молочно-белая субстанция.
" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "summons": null, + "magicalBonus": null, + "properties": [], + "attuned": false, + "enchantment": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/trinkets/universal�nyj-rastvoritel�-_-universal-solvent.json b/test_tube_merchant/items/beautiful/trinkets/universal�nyj-rastvoritel�-_-universal-solvent.json new file mode 100755 index 0000000..fd355a0 --- /dev/null +++ b/test_tube_merchant/items/beautiful/trinkets/universal�nyj-rastvoritel�-_-universal-solvent.json @@ -0,0 +1,114 @@ +{ + "name": "Универсальный растворитель / Universal Solvent", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Universal%20Solvent.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "universal%20solvent_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Universal Solvent", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
В этой пробирке хранится мутно-млечная жидкость с сильным запахом спирта. Вы можете использовать действие, чтобы вылить содержимое на поверхность в пределах досягаемости. Жидкость мгновенно растворит не более 1 квадратного фута клеящего вещества, которого коснётся, даже если это @Compendium[laaru-dnd5-hw.items.RSnrUgDKfYVWuWQr]{Абсолютный клей}.
Металлическое древко с копьевидным наконечником и серповидным лезвием, алебарда — надежное оборонительное оружие, позволяющее воину отбиваться от врагов, используя длинное древко для атак с безопасного расстояния.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "rch", + "mgc", + "hvy" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "halberd" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Halberd +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/arbaletnyj-bolt-+2-_-crossbow-bolt-+2.json b/test_tube_merchant/items/beautiful/weapon/arbaletnyj-bolt-+2-_-crossbow-bolt-+2.json new file mode 100755 index 0000000..0bb1bd1 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/arbaletnyj-bolt-+2-_-crossbow-bolt-+2.json @@ -0,0 +1,114 @@ +{ + "name": "Арбалетный болт +2 / Crossbow Bolt +2", + "type": "consumable", + "img": "icons/weapons/ammunition/arrow-simple-grey.webp", + "system": { + "description": { + "value": "Этот боеприпас используется для всех разновидностей арбалетов и обычно представляет собой короткое металлическое древко с узким колющим наконечником.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим боеприпасом. При попадании в цель, боеприпас перестаёт быть магическим.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.075, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crossbow Bolt +2" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/boevoj-molot-+2-_-warhammer-+2.json b/test_tube_merchant/items/beautiful/weapon/boevoj-molot-+2-_-warhammer-+2.json new file mode 100755 index 0000000..216178a --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/boevoj-molot-+2-_-warhammer-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Боевой молот +2 / Warhammer +2", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-drilling-spiked.webp", + "system": { + "description": { + "value": "Тяжелый металлический молот, который можно использовать одной рукой со щитом или двумя руками для нанесения сокрушительных дробящих ударов.
Будь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
Вы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "1d10 + @mod +2" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "ver" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "warhammer" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Warhammer +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/boevoj-posoh-+2-_-quarterstaff-+2.json b/test_tube_merchant/items/beautiful/weapon/boevoj-posoh-+2-_-quarterstaff-+2.json new file mode 100755 index 0000000..0deb20b --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/boevoj-posoh-+2-_-quarterstaff-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Боевой посох +2 / Quarterstaff +2", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-gold.webp", + "system": { + "description": { + "value": "Толстое деревянное древко, обмотанное крепкой рукоятью, превращается в весьма функциональное оружие, которое также можно использовать как прочную трость.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "1d8 + @mod +2" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "quarterstaff" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Quarterstaff +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/boevoj-topor-+2-_-battleaxe-+2.json b/test_tube_merchant/items/beautiful/weapon/boevoj-topor-+2-_-battleaxe-+2.json new file mode 100755 index 0000000..ce1a735 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/boevoj-topor-+2-_-battleaxe-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Боевой топор +2 / Battleaxe +2", + "type": "weapon", + "img": "icons/weapons/polearms/halberd-crescent-engraved-steel.webp", + "system": { + "description": { + "value": "Крепкое серповидное лезвие закреплено на толстом древке, обернутое прочной рукоятью. Этот топор достаточно велик, чтобы им можно было орудовать двумя руками, и украшен шипами на тыльной стороне лезвия и верхней части древка.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "slashing" + ] + ], + "versatile": "1d10 + @mod +2" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "battleaxe" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Battleaxe +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/bulava-+2-_-mace-+2.json b/test_tube_merchant/items/beautiful/weapon/bulava-+2-_-mace-+2.json new file mode 100755 index 0000000..b01f315 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/bulava-+2-_-mace-+2.json @@ -0,0 +1,125 @@ +{ + "name": "Булава +2 / Mace +2", + "type": "weapon", + "img": "icons/weapons/maces/mace-round-studded.webp", + "system": { + "description": { + "value": "Тяжёлое дробящее оружие, прикреплённое к концу металлической дубинки. Навершие имеет шипы и лезвия, предназначенные для пробивания доспехов и дробления костей под ними.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "mace" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mace +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/cep-+2-_-flail-+2.json b/test_tube_merchant/items/beautiful/weapon/cep-+2-_-flail-+2.json new file mode 100755 index 0000000..4fe2dc1 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/cep-+2-_-flail-+2.json @@ -0,0 +1,125 @@ +{ + "name": "Цеп +2 / Flail +2", + "type": "weapon", + "img": "icons/weapons/maces/flail-studded-grey.webp", + "system": { + "description": { + "value": "Несколько шипастых шаров на цепи, прикрепленных к прочному деревянному древку. Цеп наносит сокрушительный урон, когда вращается по смертоносной дуге.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 +@mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "flail" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Flail +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dlinnyj-luk-+2-_-longbow-+2.json b/test_tube_merchant/items/beautiful/weapon/dlinnyj-luk-+2-_-longbow-+2.json new file mode 100755 index 0000000..1ce9847 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dlinnyj-luk-+2-_-longbow-+2.json @@ -0,0 +1,128 @@ +{ + "name": "Длинный лук +2 / Longbow +2", + "type": "weapon", + "img": "icons/weapons/bows/longbow-leather-green.webp", + "system": { + "description": { + "value": "Толстое древко из клеёного дерева с натянутой тетивой, способной выпускать смертоносные стрелы на большие расстояния.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 150, + "long": 600, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "longbow" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Longbow +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dlinnyj-mech-+2-_-longsword-+2.json b/test_tube_merchant/items/beautiful/weapon/dlinnyj-mech-+2-_-longsword-+2.json new file mode 100755 index 0000000..61ed995 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dlinnyj-mech-+2-_-longsword-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Длинный меч +2 / Longsword +2", + "type": "weapon", + "img": "icons/weapons/swords/greatsword-crossguard-steel.webp", + "system": { + "description": { + "value": "Длинный прямой клинок, предназначенный для рассечения противников, длинный меч — очень универсальное оружие, которое можно держать двумя руками для нанесения более сокрушительных ударов.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "slashing" + ] + ], + "versatile": "1d10 + @mod +2" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "longsword" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Longsword +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dlinnyj-mech-ostroty-_-longsword-of-sharpness.json b/test_tube_merchant/items/beautiful/weapon/dlinnyj-mech-ostroty-_-longsword-of-sharpness.json new file mode 100755 index 0000000..c2d41d4 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dlinnyj-mech-ostroty-_-longsword-of-sharpness.json @@ -0,0 +1,131 @@ +{ + "name": "Длинный меч остроты / Longsword of Sharpness", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Sword_of_sharpness.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "longsword%20of%20sharpness_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Longsword of Sharpness", + "translated": true + } + }, + "system": { + "description": { + "value": "Оружие (меч, наносящий режущий урон), крайне редкое (требует настроенности)
Когда вы атакуете объект этим магическим мечом, при попадании считайте, что на костях урона оружия, нанесённого этой цели, выпали максимальные значения.
Когда вы атакуете существо этим оружием и выбрасываете 20 при броске атаки, цель дополнительно получает 14 режущего урона. Затем бросьте ещё один [[/r d20]]. Если выпало 20, вы отрубаете одну из конечностей цели, последствия такой потери определяет мастер. Если у цели нет конечностей, вы вместо этого отрубаете другую часть её тела.
Кроме того, вы можете произнести командное слово меча и заставить клинок испустить &reference[brightlight]{Яркий свет} в радиусе 10 футов и &reference[dimlight]{Тусклый} — ещё на 10 футов. Если снова произнести командное слово или убрать меч в ножны, свет гаснет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "Командное слово." + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": 20, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "slashing" + ] + ], + "versatile": "1d10 + @mod" + }, + "formula": "4d6", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "ver" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "longsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/drotik-+2-_-dart-+2.json b/test_tube_merchant/items/beautiful/weapon/drotik-+2-_-dart-+2.json new file mode 100755 index 0000000..8e1d4f3 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/drotik-+2-_-dart-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Дротик +2 / Dart +2", + "type": "weapon", + "img": "icons/weapons/thrown/dart-feathered.webp", + "system": { + "description": { + "value": "Небольшое метательное орудие, изготовленное из короткого деревянного древка и перекрещенных перьев с острым деревянным или металлическим наконечником. Дротики могут быть брошены с достаточной силой, чтобы проткнуть кожу.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.25, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "dart" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dart +2" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dubina-+2-_-greanclub-+2.json b/test_tube_merchant/items/beautiful/weapon/dubina-+2-_-greanclub-+2.json new file mode 100755 index 0000000..dd49368 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dubina-+2-_-greanclub-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Дубина +2 / Greanclub +2", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-knotted.webp", + "system": { + "description": { + "value": "Более крупный вариант простой дубинки, тяжелое деревянное древко с огромным деревянным сучком на конце наносит непоправимый дробящий урон несчастным противникам.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greatclub +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dubinka-+2-_-club-+2.json b/test_tube_merchant/items/beautiful/weapon/dubinka-+2-_-club-+2.json new file mode 100755 index 0000000..a5c1a1a --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dubinka-+2-_-club-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Дубинка +2 / Club +2", + "type": "weapon", + "img": "icons/weapons/clubs/club-baton-blue.webp", + "system": { + "description": { + "value": "Прочный деревянный брусок образует простую, но эффективную дубинку. Это оружие используется для нанесения дробящих ударов противнику, оставляя синяки и ломая кости.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Club +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/duhovaya-trubka-+2-_-blowgun-+2.json b/test_tube_merchant/items/beautiful/weapon/duhovaya-trubka-+2-_-blowgun-+2.json new file mode 100755 index 0000000..cb830cb --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/duhovaya-trubka-+2-_-blowgun-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Духовая трубка +2 / Blowgun +2", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/blowgun.webp", + "system": { + "description": { + "value": "Примитивное, но смертоносное оружие, любимое дикими племенами и партизанами. Дротики, выпущенные из этого оружия, могут проколоть кожу и ввести смертельную дозу яда.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 25, + "long": 100, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "blowgun" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Blowgun +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-+2-_-greatsword-+2.json b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-+2-_-greatsword-+2.json new file mode 100755 index 0000000..a5c3e64 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-+2-_-greatsword-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Двуручный меч +2 / Greatsword +2", + "type": "weapon", + "img": "icons/weapons/swords/greatsword-guard-gem-blue.webp", + "system": { + "description": { + "value": "Мощный двуручный клинок длиной более четырех футов и шириной почти пять дюймов. Это оружие требует серьезной боевой подготовки, но те, кто владеет им, становятся грозными воинами.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greatsword" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greatsword +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-_yazyk-plameni_-_-flame-tongue-greatsword.json b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-_yazyk-plameni_-_-flame-tongue-greatsword.json new file mode 100755 index 0000000..70c65ef --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-_yazyk-plameni_-_-flame-tongue-greatsword.json @@ -0,0 +1,132 @@ +{ + "name": "Двуручный меч \"Язык пламени\" / Flame Tongue Greatsword", + "type": "weapon", + "img": "icons/magic/fire/projectile-bolt-zigzag-orange.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "flame%20tongue%20greatsword_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Flame Tongue Greatsword", + "translated": true + } + }, + "system": { + "description": { + "value": "Вы можете использовать бонусное действие, чтобы произнести командное слово, и из магического меча вырвутся языки пламени. Это пламя испускает &reference[brightlight]{яркий свет} в 40-футовом радиусе и &reference[dimlight]{тусклый} ещё на 40 футов. Пока меч пылает, он дополнительно наносит [[/r 2d6]] урона огнём любой цели, по которой попадает. Пламя горит, пока вы не используете бонусное действие, чтобы снова произнести командное слово, или пока не уроните меч или не уберёте в ножны.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "2d6", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "mgc", + "hvy" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greatsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-ostroty-_-greatsword-of-sharpness.json b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-ostroty-_-greatsword-of-sharpness.json new file mode 100755 index 0000000..a700a74 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-mech-ostroty-_-greatsword-of-sharpness.json @@ -0,0 +1,132 @@ +{ + "name": "Двуручный меч остроты / Greatsword of Sharpness", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Sword_of_sharpness.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "greatsword%20of%20sharpness_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Greatsword of Sharpness", + "translated": true + } + }, + "system": { + "description": { + "value": "Оружие (меч, наносящий режущий урон), (требует настроенности)
Когда вы атакуете объект этим магическим мечом, при попадании считайте, что на костях урона оружия, нанесённого этой цели, выпали максимальные значения.
Когда вы атакуете существо этим оружием и выбрасываете 20 при броске атаки, цель дополнительно получает 14 режущего урона. Затем бросьте ещё один [[/r d20]]. Если выпало 20, вы отрубаете одну из конечностей цели, последствия такой потери определяет мастер. Если у цели нет конечностей, вы вместо этого отрубаете другую часть её тела.
Кроме того, вы можете произнести командное слово меча и заставить клинок испустить &reference[brightlight]{Яркий свет} в радиусе 10 футов и &reference[dimlight]{Тусклый} — ещё на 10 футов. Если снова произнести командное слово или убрать меч в ножны, свет гаснет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "Командное слово." + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": 20, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "4d6", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "mgc", + "hvy" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greatsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-molot-+2-_-maul-+2.json b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-molot-+2-_-maul-+2.json new file mode 100755 index 0000000..f284366 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-molot-+2-_-maul-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Двуручный молот +2 / Maul +2", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-double-engraved.webp", + "system": { + "description": { + "value": "Этот тяжелый двуручный молот сокрушает металл и кости с чудовищной силой.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "maul" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Maul +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-topor-+2-_-greataxe-+2.json b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-topor-+2-_-greataxe-+2.json new file mode 100755 index 0000000..d8e9ff0 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/dvuruchnyj-topor-+2-_-greataxe-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Двуручный топор +2 / Greataxe +2", + "type": "weapon", + "img": "icons/weapons/axes/axe-double-engraved-black.webp", + "system": { + "description": { + "value": "Этот огромный топор имеет два спаренных серповидных лезвия, установленных по обе стороны высокого шипастого древка. Предназначен для того, чтобы орудовать им обеими руками и рассекать врагов надвое.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 7, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greataxe" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greataxe +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/glefa-+2-_-glaive-+2.json b/test_tube_merchant/items/beautiful/weapon/glefa-+2-_-glaive-+2.json new file mode 100755 index 0000000..cd0af6c --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/glefa-+2-_-glaive-+2.json @@ -0,0 +1,128 @@ +{ + "name": "Глефа +2 / Glaive +2", + "type": "weapon", + "img": "icons/weapons/polearms/halberd-crescent-glowing.webp", + "system": { + "description": { + "value": "Лезвие в виде полумесяца закрепленное на конце высокого металлического древка. Это оружие позволяет атаковать со смертоносной эффективностью с большего расстояния, чем обычное оружие ближнего боя.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "rch", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "glaive" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Glaive +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/igla-dlya-trubki-+2-blowgun-needle.json b/test_tube_merchant/items/beautiful/weapon/igla-dlya-trubki-+2-blowgun-needle.json new file mode 100755 index 0000000..ea9bbac --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/igla-dlya-trubki-+2-blowgun-needle.json @@ -0,0 +1,114 @@ +{ + "name": "Игла для трубки +2 Blowgun Needle", + "type": "consumable", + "img": "icons/weapons/ammunition/arrows-war-red.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "%2b2%20blowgun%20needle_dmg" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "system": { + "description": { + "value": "У вас бонус +2 к броскам атаки и урона при использовании этого магического боеприпаса. Попав в цель, боеприпас перестаёт быть магическим.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.02, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "crewed": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/kavalerijskaya-pika-+2-_-lance.json b/test_tube_merchant/items/beautiful/weapon/kavalerijskaya-pika-+2-_-lance.json new file mode 100755 index 0000000..daf3813 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/kavalerijskaya-pika-+2-_-lance.json @@ -0,0 +1,127 @@ +{ + "name": "Кавалерийская пика +2 / Lance", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/lance.webp", + "system": { + "description": { + "value": "Сверкающий стальной наконечник пробивает защиту самого стойкого врага, вбиваемый силой мчащегося скакуна. Хотя кавалерийская пика лучше всего подходит для ведения боя верхом, в умелых руках она может стать смертельно опасной и в пешем бою.
\nОсобое. У вас помеха, если вы атакуете кавалерийской пикой цель в пределах 5 футов от вас. Кроме того, для использования кавалерийской пики нужно две руки, если вы не верхом на скакуне.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "rch", + "spc", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "lance" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Lance +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/kinzhal-+2-_-dagger-+2.json b/test_tube_merchant/items/beautiful/weapon/kinzhal-+2-_-dagger-+2.json new file mode 100755 index 0000000..a3b7454 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/kinzhal-+2-_-dagger-+2.json @@ -0,0 +1,128 @@ +{ + "name": "Кинжал +2 / Dagger +2", + "type": "weapon", + "img": "icons/weapons/daggers/dagger-jeweled-purple.webp", + "system": { + "description": { + "value": "Короткий металлический клинок, прикрепленный к небольшой рукояти и гарде. Кинжал является эффективным вспомогательным оружием для закаленных воинов или скрытым клинком для убийц и воров.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dagger +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/klevec-+2-_-war-pick-+2.json b/test_tube_merchant/items/beautiful/weapon/klevec-+2-_-war-pick-+2.json new file mode 100755 index 0000000..7f0e28b --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/klevec-+2-_-war-pick-+2.json @@ -0,0 +1,125 @@ +{ + "name": "Клевец +2 / War pick +2", + "type": "weapon", + "img": "icons/weapons/axes/pickaxe-iron-green.webp", + "system": { + "description": { + "value": "Грубый изогнутый шип, закрепленный на прочном древке. Предназначен для пробивания брони со смертоносной силой.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "warpick" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "War Pick +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/klyatvennyj-luk-_-oathbow.json b/test_tube_merchant/items/beautiful/weapon/klyatvennyj-luk-_-oathbow.json new file mode 100755 index 0000000..40c997c --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/klyatvennyj-luk-_-oathbow.json @@ -0,0 +1,163 @@ +{ + "name": "Клятвeнный лук / Oathbow", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Oathbow.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "oathbow_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "midi-qol": { + "fumbleThreshold": null, + "effectActivation": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "rollOther": false, + "critOther": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false + }, + "magicitems": { + "enabled": false, + "equipped": false, + "attuned": false, + "charges": "0", + "chargeType": "c1", + "destroy": false, + "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.", + "rechargeable": false, + "recharge": "0", + "rechargeType": "t1", + "rechargeUnit": "r1", + "sorting": "l" + }, + "babele": { + "hasTranslation": true, + "originalName": "Oathbow", + "translated": true + } + }, + "system": { + "description": { + "value": "Оружие (длинный лук), крайне редкое (требует настроенности)
\nЕсли наложить стрелу на тетиву этого лука, он шепчет по-эльфийски: «Скорой гибели моим врагам!» Совершая дистанционную атаку этим оружием, вы можете произнести командную фразу «Скорой смерти тебе, враг мой!». Цель вашей атаки становится для вас заклятым врагом, пока не умрёт или до рассвета через семь дней. У вас не может быть больше одного такого заклятого врага одновременно. Когда заклятый враг умирает, вы можете выбрать другого после следующего рассвета.
\nПри броске дистанционной атаки этим оружием по своему заклятому врагу у вас преимущество. Кроме того, цель не получает пользы от укрытия, кроме полного, а у вас нет помехи из-за дальней дистанции. Если атака попадает в заклятого врага, он дополнительно получает [[/r 3d6]] колющего урона.
\nПока ваш заклятый враг жив, у вас помеха к броскам атаки всем прочим оружием.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "Командная фраза." + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 150, + "long": 600, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "day", + "recovery": "", + "prompt": true + }, + "consume": { + "type": "ammo", + "target": "", + "amount": 1, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "3d6", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "two", + "mgc", + "hvy" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "longbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/knut-+2-_-whip-+2.json b/test_tube_merchant/items/beautiful/weapon/knut-+2-_-whip-+2.json new file mode 100755 index 0000000..39e6fb3 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/knut-+2-_-whip-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Кнут +2 / Whip +2", + "type": "weapon", + "img": "icons/weapons/misc/whip-red-yellow.webp", + "system": { + "description": { + "value": "Растягивающаяся плеть из кожи, шнура или цепи, которой можно поражать противников, нанося им рваные раны и изводя их на расстоянии.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "rch", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "whip" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Whip +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/kop�yo-+2-_-spear-+2.json b/test_tube_merchant/items/beautiful/weapon/kop�yo-+2-_-spear-+2.json new file mode 100755 index 0000000..ce03fd7 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/kop�yo-+2-_-spear-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Копьё +2 / Spear +2", + "type": "weapon", + "img": "icons/weapons/polearms/spear-flared-worn-grey.webp", + "system": { + "description": { + "value": "Сверкающее стальное острие на толстом деревянном древке, копьем можно орудовать одной или двумя руками, и оно способно пробить самую прочную броню со смертоносной силой.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "piercing" + ] + ], + "versatile": "1d8 + @mod +2" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "spear" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Spear +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/korotkij-luk-+2-_-shortbow-+2.json b/test_tube_merchant/items/beautiful/weapon/korotkij-luk-+2-_-shortbow-+2.json new file mode 100755 index 0000000..485bbd2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/korotkij-luk-+2-_-shortbow-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Короткий лук +2 / Shortbow +2", + "type": "weapon", + "img": "icons/weapons/bows/shortbow-recurve.webp", + "system": { + "description": { + "value": "Этот лук несколько меньше традиционного длинного, что делает его идеальным для быстрых атак в движении или верхом на скакуне.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "shortbow" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortbow +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/korotkij-mech-+2-_-shortsword-+2.json b/test_tube_merchant/items/beautiful/weapon/korotkij-mech-+2-_-shortsword-+2.json new file mode 100755 index 0000000..af99a3d --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/korotkij-mech-+2-_-shortsword-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Короткий меч +2 / Shortsword +2", + "type": "weapon", + "img": "icons/weapons/swords/sword-guard-brown.webp", + "system": { + "description": { + "value": "Средних размеров клинок с прочной гардой и обтянутой кожей рукоятью. Универсальное оружие, которое компенсирует универсальностью то, что ему не хватает длины.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "shortsword" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortsword +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/lyogkij-arbalet-+2-_-light-crossbow-+2.json b/test_tube_merchant/items/beautiful/weapon/lyogkij-arbalet-+2-_-light-crossbow-+2.json new file mode 100755 index 0000000..545443f --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/lyogkij-arbalet-+2-_-light-crossbow-+2.json @@ -0,0 +1,128 @@ +{ + "name": "Лёгкий арбалет +2 / Light Crossbow +2", + "type": "weapon", + "img": "icons/weapons/crossbows/crossbow-loaded-black.webp", + "system": { + "description": { + "value": "Небольшой арбалет с деревянным древком и натянутой тетивой, способен выпускать болты, пробивающие даже тяжелую броню на близком расстоянии.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "lightcrossbow" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Light Crossbow +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/lyogkij-molot-+2-_-light-hammer-+2.json b/test_tube_merchant/items/beautiful/weapon/lyogkij-molot-+2-_-light-hammer-+2.json new file mode 100755 index 0000000..58754e5 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/lyogkij-molot-+2-_-light-hammer-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Лёгкий молот +2 / Light Hammer +2", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-war-spiked.webp", + "system": { + "description": { + "value": "Этот прочный молот достаточно лёгок и удобен, чтобы им можно было ловко орудовать в сочетании с другим оружием.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "lighthammer" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Light Hammer +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/mech-ostroty-_-sword-of-sharpness.json b/test_tube_merchant/items/beautiful/weapon/mech-ostroty-_-sword-of-sharpness.json new file mode 100755 index 0000000..ddf3f0d --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/mech-ostroty-_-sword-of-sharpness.json @@ -0,0 +1,50 @@ +{ + "name": "Меч остроты / Sword of Sharpness", + "type": "loot", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Sword%20of%20Sharpness.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "sword%20of%20sharpness_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Sword of Sharpness", + "translated": true + } + }, + "system": { + "description": { + "value": "Любой меч, наносящий режущий урон
Когда вы атакуете объект этим магическим мечом, при попадании считайте, что на костях урона оружия, нанесённого этой цели, выпали максимальные значения. Когда вы атакуете существо этим оружием и выбрасываете 20 при броске атаки, цель дополнительно получает 14 режущего урона. Затем бросьте ещё один [[/r d20]]. Если выпало 20, вы отрубаете одну из конечностей цели, последствия такой потери определяет мастер. Если у цели нет конечностей, вы вместо этого отрубаете другую часть её тела.
Кроме того, вы можете произнести командное слово меча и заставить клинок испустить &reference[brightlight]{яркий} свет в радиусе 10 футов и &reference[dimlight]{тусклый} ещё на 10 футов. Если снова произнести командное слово или убрать меч в ножны, свет гаснет.
Базовые предметы.
Этот вариант предмета можно применить к следующим базовым предметам:
Металлическая сфера с острыми шипами, закрепленная на конце прочного древка. Служит смертоносным оружием, способным как пробить броню, так и изувечить плоть.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 +@mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "morningstar" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Morningstar +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(dlinnyj-mech)-_-frost-brand-longsword.json b/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(dlinnyj-mech)-_-frost-brand-longsword.json new file mode 100755 index 0000000..bff5d88 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(dlinnyj-mech)-_-frost-brand-longsword.json @@ -0,0 +1,188 @@ +{ + "name": "Морозный клинок (Длинный меч) / Frost Brand Longsword", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Frost%20Brand.webp", + "effects": [ + { + "changes": [ + { + "key": "system.traits.dr.value", + "mode": 2, + "value": "fire", + "priority": 7 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "_id": "jb2ps1jf5aa5eez1", + "origin": null, + "name": "Устойчивость к урону", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Frost%20Brand.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "frost%20brand%20longsword_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Frost Brand Longsword", + "translated": true + } + }, + "system": { + "description": { + "value": "Оружие (меч), крайне редкое (требует настроенности)
Если вы попадаете атакой этим магическим мечом, цель дополнительно получает [[/r 1d6]] урона холодом. Кроме того, пока вы держите этот меч, у вас устойчивость к урону огнём.
При морозе клинок испускает &reference[brightlight]{Яркий свет} в радиусе 10 футов и &reference[dimlight]{Тусклый} — ещё на 10 футов.
Когда вы выхватываете это оружие, вы можете погасить всё немагическое пламя в пределах 30 футов от вас. Это свойство можно использовать не чаще, чем раз в час.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "slashing" + ], + [ + "1d6", + "cold" + ] + ], + "versatile": "1d10 + @mod + 1d6" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "ver" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "longsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(dvuruchnyj-mech)-_-frost-brand-greatsword.json b/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(dvuruchnyj-mech)-_-frost-brand-greatsword.json new file mode 100755 index 0000000..50b034f --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(dvuruchnyj-mech)-_-frost-brand-greatsword.json @@ -0,0 +1,189 @@ +{ + "name": "Морозный клинок (Двуручный меч) / Frost Brand Greatsword", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Frost%20Brand.webp", + "effects": [ + { + "changes": [ + { + "key": "system.traits.dr.value", + "mode": 2, + "value": "fire", + "priority": 7 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "_id": "5ffgzvutnx5frfc3", + "origin": null, + "name": "Устойчивость к урону", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Frost%20Brand.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "frost%20brand%20greatsword_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Frost Brand Greatsword", + "translated": true + } + }, + "system": { + "description": { + "value": "Оружие (меч), крайне редкое (требует настроенности)
\nЕсли вы попадаете атакой этим магическим мечом, цель дополнительно получает [[/r 1d6]] урона холодом. Кроме того, пока вы держите этот меч, у вас устойчивость к урону огнём.
\nПри морозе клинок испускает &reference[brightlight]{Яркий свет} в радиусе 10 футов и &reference[dimlight]{Тусклый} — ещё на 10 футов.
\nКогда вы выхватываете это оружие, вы можете погасить всё немагическое пламя в пределах 30 футов от вас. Это свойство можно использовать не чаще, чем раз в час.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod", + "slashing" + ], + [ + "1d6", + "cold" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "mgc", + "hvy" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greatsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(rapira)-_-frost-brand-rapier.json b/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(rapira)-_-frost-brand-rapier.json new file mode 100755 index 0000000..3b2994d --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/moroznyj-klinok-(rapira)-_-frost-brand-rapier.json @@ -0,0 +1,188 @@ +{ + "name": "Морозный клинок (Рапира) / Frost Brand Rapier", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Frost%20Brand2.webp", + "effects": [ + { + "changes": [ + { + "key": "system.traits.dr.value", + "mode": 2, + "value": "fire", + "priority": 7 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "_id": "g0dnm1zdycar6cau", + "origin": null, + "name": "Устойчивость к урону", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Frost%20Brand2.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "frost%20brand%20rapier_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Frost Brand Rapier", + "translated": true + } + }, + "system": { + "description": { + "value": "Оружие (рапира), крайне редкое (требует настроенности)
\nЕсли вы попадаете атакой этим магическим мечом, цель дополнительно получает [[/r 1d6]] урона холодом. Кроме того, пока вы держите этот меч, у вас устойчивость к урону огнём.
\nПри морозе клинок испускает &reference[brightlight]{Яркий свет} в радиусе 10 футов и &reference[dimlight]{Тусклый} — ещё на 10 футов.
\nКогда вы выхватываете это оружие, вы можете погасить всё немагическое пламя в пределах 30 футов от вас. Это свойство можно использовать не чаще, чем раз в час.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 50000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ], + [ + "1d6", + "cold" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "fin" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "rapier" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/pika-+2-_-pike-+2.json b/test_tube_merchant/items/beautiful/weapon/pika-+2-_-pike-+2.json new file mode 100755 index 0000000..d06ebc9 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/pika-+2-_-pike-+2.json @@ -0,0 +1,128 @@ +{ + "name": "Пика +2 / Pike +2", + "type": "weapon", + "img": "icons/weapons/polearms/spear-flared-blue.webp", + "system": { + "description": { + "value": "Крепкое лезвие, закрепленное на конце длинного металлического древка. Предназначена как оборонительное оружие со значительной зоной досягаемости, чтобы отбиваться от противников и устрашать их.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 18, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "rch", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "pike" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pike +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/pilum-+2-_-javelin-+2.json b/test_tube_merchant/items/beautiful/weapon/pilum-+2-_-javelin-+2.json new file mode 100755 index 0000000..4a1769d --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/pilum-+2-_-javelin-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Пилум +2 / Javelin +2", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/javelin.webp", + "system": { + "description": { + "value": "Это лёгкое и гибкое копьё предназначено для метания, но достаточно универсально, чтобы его можно было использовать и в ближнем бою.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "javelin" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Javelin +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/prasha-+2-_-sling-+2.json b/test_tube_merchant/items/beautiful/weapon/prasha-+2-_-sling-+2.json new file mode 100755 index 0000000..502e91d --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/prasha-+2-_-sling-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Праща +2 / Sling +2", + "type": "weapon", + "img": "icons/weapons/slings/slingshot-wood.webp", + "system": { + "description": { + "value": "Гибкая кожаная плеть, прикрепленная к деревянной ручке, способная метать камни или металлические ядра со смертоносной скоростью.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "sling" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sling +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/rapira-+2-_-rapier-+2.json b/test_tube_merchant/items/beautiful/weapon/rapira-+2-_-rapier-+2.json new file mode 100755 index 0000000..6c5ed4a --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/rapira-+2-_-rapier-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Рапира +2 / Rapier +2", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/rapier.webp", + "system": { + "description": { + "value": "Тонкий клинок из ковкого металла, легкий по весу, но достаточно длинный, предназначен для нанесения молниеносных уколов по слабым местам в обороне противника.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "rapier" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Rapier +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/rapira-_yazyk-plameni_-_-flame-tongue-rapier.json b/test_tube_merchant/items/beautiful/weapon/rapira-_yazyk-plameni_-_-flame-tongue-rapier.json new file mode 100755 index 0000000..e5c6206 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/rapira-_yazyk-plameni_-_-flame-tongue-rapier.json @@ -0,0 +1,131 @@ +{ + "name": "Рапира \"Язык пламени\" / Flame Tongue Rapier", + "type": "weapon", + "img": "icons/magic/fire/projectile-bolt-zigzag-orange.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "flame%20tongue%20rapier_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Flame Tongue Rapier", + "translated": true + } + }, + "system": { + "description": { + "value": "Вы можете использовать бонусное действие, чтобы произнести командное слово, и из магической рапиры вырвутся языки пламени. Это пламя испускает &reference[brightlight]{яркий свет} в 40-футовом радиусе и &reference[dimlight]{тусклый} ещё на 40 футов. Пока оружие пылает, оно дополнительно наносит [[/r 2d6]] урона огнём любой цели, по которой попадает. Пламя горит, пока вы не используете бонусное действие, чтобы снова произнести командное слово, или пока не уроните рапиру или не уберёте в ножны.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "2d6", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "mgc" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "rapier" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/ruchnoj-arbalet-+2-_-hand-crossbow-+2.json b/test_tube_merchant/items/beautiful/weapon/ruchnoj-arbalet-+2-_-hand-crossbow-+2.json new file mode 100755 index 0000000..65011b5 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/ruchnoj-arbalet-+2-_-hand-crossbow-+2.json @@ -0,0 +1,128 @@ +{ + "name": "Ручной арбалет +2 / Hand Crossbow +2", + "type": "weapon", + "img": "icons/weapons/crossbows/handcrossbow-black.webp", + "system": { + "description": { + "value": "Лёгкий арбалет, предназначенный для использования в одной руке или пристегнутым к запястью для стрельбы лёгкими болтами.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lgt", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "handcrossbow" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hand Crossbow +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/serp-+2-_-sickle-+2.json b/test_tube_merchant/items/beautiful/weapon/serp-+2-_-sickle-+2.json new file mode 100755 index 0000000..1634c4b --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/serp-+2-_-sickle-+2.json @@ -0,0 +1,126 @@ +{ + "name": "Серп +2 / Sickle +2", + "type": "weapon", + "img": "icons/weapons/sickles/sickle-hooked-silver.webp", + "system": { + "description": { + "value": "Лезвие с крюком в виде полумесяца, закрепленное на короткой рукояти, достаточно легкое, чтобы держать его в одной руке для подрезания посевов или врагов.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "sickle" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sickle +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/skimitar-+2-_-scimitar-+2.json b/test_tube_merchant/items/beautiful/weapon/skimitar-+2-_-scimitar-+2.json new file mode 100755 index 0000000..decc734 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/skimitar-+2-_-scimitar-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Скимитар +2 / Scimitar +2", + "type": "weapon", + "img": "icons/weapons/swords/scimitar-worn-blue.webp", + "system": { + "description": { + "value": "Этот изогнутый клинок широк у обтянутой рукояти, но дугообразно сужается к сверкающему острию.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "scimitar" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Scimitar +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/strela-+2-_-arrow-+2.json b/test_tube_merchant/items/beautiful/weapon/strela-+2-_-arrow-+2.json new file mode 100755 index 0000000..f6ad367 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/strela-+2-_-arrow-+2.json @@ -0,0 +1,114 @@ +{ + "name": "Стрела +2 / Arrow +2", + "type": "consumable", + "img": "icons/weapons/ammunition/arrows-bodkin-yellow-red.webp", + "system": { + "description": { + "value": "Стандартные боеприпасы, используемые для луков всех видов. Эти стрелы сделаны из гладкого деревянного древка с оперением из гусиного пера и металлическими набалдашниками.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим боеприпасом. При попадании в цель, боеприпас перестаёт быть магическим.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.05, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Arrow +2" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/toporik-+2-_-handaxe-+2.json b/test_tube_merchant/items/beautiful/weapon/toporik-+2-_-handaxe-+2.json new file mode 100755 index 0000000..65737cc --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/toporik-+2-_-handaxe-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Топорик +2 / Handaxe +2", + "type": "weapon", + "img": "icons/weapons/axes/axe-broad-black.webp", + "system": { + "description": { + "value": "Этот одноручный топор легок и сбалансирован для метания, но при этом остается полезен в рукопашном бою.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "handaxe" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Handaxe +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/trezubec-+2-_-trident-+2.json b/test_tube_merchant/items/beautiful/weapon/trezubec-+2-_-trident-+2.json new file mode 100755 index 0000000..8bebcf8 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/trezubec-+2-_-trident-+2.json @@ -0,0 +1,127 @@ +{ + "name": "Трезубец +2 / Trident +2", + "type": "weapon", + "img": "icons/weapons/polearms/trident-ornate-red.webp", + "system": { + "description": { + "value": "Многозубчатое копье, предназначенное для пронзания цели в нескольких местах, пригвождая её к поверхности. Часто используется в сочетании с сетью для опутывания и изведения противников.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +2", + "piercing" + ] + ], + "versatile": "1d8 + @mod +2" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "thr", + "ver" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "trident" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Trident +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/tyazhyolyj-arbalet-+2-_-heavy-crossbow-+2.json b/test_tube_merchant/items/beautiful/weapon/tyazhyolyj-arbalet-+2-_-heavy-crossbow-+2.json new file mode 100755 index 0000000..5816601 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/tyazhyolyj-arbalet-+2-_-heavy-crossbow-+2.json @@ -0,0 +1,129 @@ +{ + "name": "Тяжёлый арбалет +2 / Heavy Crossbow +2", + "type": "weapon", + "img": "icons/weapons/crossbows/crossbow-purple.webp", + "system": { + "description": { + "value": "Большой арбалет, установленный на прочном деревянном блоке, который заряжается с помощью рукоятки и стреляет толстыми стальными болтами со смертоносным ускорением, пробивающими броню и плоть.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 18, + "units": "lb" + }, + "price": { + "value": 4000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 100, + "long": 400, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +2", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "hvy", + "two", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "heavycrossbow" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Heavy Crossbow +2" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/beautiful/weapon/yadro-dlya-prashi-+2-_-sling-bullet-+2.json b/test_tube_merchant/items/beautiful/weapon/yadro-dlya-prashi-+2-_-sling-bullet-+2.json new file mode 100755 index 0000000..37f63a2 --- /dev/null +++ b/test_tube_merchant/items/beautiful/weapon/yadro-dlya-prashi-+2-_-sling-bullet-+2.json @@ -0,0 +1,114 @@ +{ + "name": "Ядро для пращи +2 / Sling Bullet +2", + "type": "consumable", + "img": "icons/skills/ranged/bullets-triple-ball-yellow.webp", + "system": { + "description": { + "value": "Твёрдый снаряд из камня, кости или металла, который можно метать с большой скоростью с помощью пращи.
\nВы получаете бонус +2 к броскам атаки и урона этим магическим боеприпасом. При попадании в цель, боеприпас перестаёт быть магическим.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.075, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "2", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sling Bullet +2" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/adamantinovyj-kol�chatyj-dospeh-_-adamantine-ring-mail.json b/test_tube_merchant/items/good/armor/adamantinovyj-kol�chatyj-dospeh-_-adamantine-ring-mail.json new file mode 100755 index 0000000..61ca7c2 --- /dev/null +++ b/test_tube_merchant/items/good/armor/adamantinovyj-kol�chatyj-dospeh-_-adamantine-ring-mail.json @@ -0,0 +1,131 @@ +{ + "name": "Адамантиновый кольчатый доспех / Adamantine Ring Mail", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-banded-simple-leather-brown.webp", + "system": { + "description": { + "value": "Сделан из кожи, на которую нашиты толстые металлические кольца. Они защищают броню от ударов мечей и топоров.
\nЭта броня усилена адамантином – одним из прочнейших в мире металлов.
\nПока вы её носите, любой критический удар по вам становится обычным попаданием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 530, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 14, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "ringmail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Adamantine Ring Mail" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/adamantinovyj-kol�chuzhno-latnyj-dospeh-_-adamantine-half-plate-armor.json b/test_tube_merchant/items/good/armor/adamantinovyj-kol�chuzhno-latnyj-dospeh-_-adamantine-half-plate-armor.json new file mode 100755 index 0000000..505c0a4 --- /dev/null +++ b/test_tube_merchant/items/good/armor/adamantinovyj-kol�chuzhno-latnyj-dospeh-_-adamantine-half-plate-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Адамантиновый кольчужно-латный доспех / Adamantine Half Plate Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-cuirass-steel-grey.webp", + "system": { + "description": { + "value": "Состоит из кованых металлических пластин, покрывающих большую часть тела носителя. В него не входит защита ног, кроме простых поножей, закреплённых ремнями.
\nЭта броня усилена адамантином – одним из прочнейших в мире металлов.
\nПока вы её носите, любой критический удар по вам становится обычным попаданием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 1250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 15, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "halfplate" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Adamantine Half Plate Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/adamantinovyj-latnyj-dospeh-_-adamantine-plate-armor.json b/test_tube_merchant/items/good/armor/adamantinovyj-latnyj-dospeh-_-adamantine-plate-armor.json new file mode 100755 index 0000000..0bb7453 --- /dev/null +++ b/test_tube_merchant/items/good/armor/adamantinovyj-latnyj-dospeh-_-adamantine-plate-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Адамантиновый латный доспех / Adamantine Plate Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-collared-steel.webp", + "system": { + "description": { + "value": "Состоит из кованых металлических пластин, сцепленных друг с другом и покрывающих всё тело. В латный доспех входят рукавицы, тяжёлые кожаные сапоги, шлем с забралом и толстый поддоспешник. Пряжки и ремни позволяют распределить вес по всему телу.
\nЭта броня усилена адамантином – одним из прочнейших в мире металлов.
\nПока вы её носите, любой критический удар по вам становится обычным попаданием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 65, + "units": "lb" + }, + "price": { + "value": 2000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 18, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "plate" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Adamantine Plate Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/adamantinovyj-nagrudnik-_-adamantine-breastplate.json b/test_tube_merchant/items/good/armor/adamantinovyj-nagrudnik-_-adamantine-breastplate.json new file mode 100755 index 0000000..d46f53f --- /dev/null +++ b/test_tube_merchant/items/good/armor/adamantinovyj-nagrudnik-_-adamantine-breastplate.json @@ -0,0 +1,124 @@ +{ + "name": "Адамантиновый нагрудник / Adamantine Breastplate", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-collared-steel-grey.webp", + "system": { + "description": { + "value": "Подогнанная по размеру металлическая кираса, которую надевают на кожаный поддоспешник. Руки и ноги остаются не прикрыты, но доспех отлично защищает жизненно важные органы носителя, давая ему при этом относительную свободу движения.
\nЭта броня усилена адамантином – одним из прочнейших в мире металлов.
\nПока вы её носите, любой критический удар по вам становится обычным попаданием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 20, + "units": "lb" + }, + "price": { + "value": 900, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 14, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "breastplate" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Adamantine Breastplate" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/adamantinovyj-plastinchatyj-dospeh-_-adamantine-splint-armor.json b/test_tube_merchant/items/good/armor/adamantinovyj-plastinchatyj-dospeh-_-adamantine-splint-armor.json new file mode 100755 index 0000000..f720650 --- /dev/null +++ b/test_tube_merchant/items/good/armor/adamantinovyj-plastinchatyj-dospeh-_-adamantine-splint-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Адамантиновый пластинчатый доспех / Adamantine Splint Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-layered-steel.webp", + "system": { + "description": { + "value": "Сделан из тонких вертикальных полос металла, приклёпанных на кожаную основу, его носят поверх плотного поддоспешника. Сочленения прикрывает гибкая кольчуга.
\nЭта броня усилена адамантином – одним из прочнейших в мире металлов.
\nПока вы её носите, любой критический удар по вам становится обычным попаданием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 60, + "units": "lb" + }, + "price": { + "value": 700, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 17, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "splint" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Adamantine Splint Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/cheshujchatyj-dospeh-+1-_-scale-mail-+1.json b/test_tube_merchant/items/good/armor/cheshujchatyj-dospeh-+1-_-scale-mail-+1.json new file mode 100755 index 0000000..36d47cd --- /dev/null +++ b/test_tube_merchant/items/good/armor/cheshujchatyj-dospeh-+1-_-scale-mail-+1.json @@ -0,0 +1,131 @@ +{ + "name": "Чешуйчатый доспех +1 / Scale Mail +1", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Scale_mail-5e.webp", + "system": { + "description": { + "value": "Состоит из кожаной куртки и штанов (а иногда и отдельной юбки), покрытых внахлёст чешуйками из металла, похожими на рыбьи. Доспех включает и рукавицы.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +1 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 45, + "units": "lb" + }, + "price": { + "value": 1550, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 15, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "scalemail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Scale Mail +1" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/kol�chatyj-dospeh-+1-_-ring-mail-+1.json b/test_tube_merchant/items/good/armor/kol�chatyj-dospeh-+1-_-ring-mail-+1.json new file mode 100755 index 0000000..8f46ce9 --- /dev/null +++ b/test_tube_merchant/items/good/armor/kol�chatyj-dospeh-+1-_-ring-mail-+1.json @@ -0,0 +1,131 @@ +{ + "name": "Кольчатый доспех +1 / Ring Mail +1", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Ringmail-5e.webp", + "system": { + "description": { + "value": "Сделан из кожи, на которую нашиты толстые металлические кольца. Они защищают броню от ударов мечей и топоров. Кольчатый доспех похуже кольчуги, его, как правила, носят лишь те, кто не может себе позволить хорошую броню.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +1 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 1530, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 15, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "ringmail" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ring Mail +1" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/kol�chuzhno-latnyj-dospeh-+1-_-half-plate-armor-+1.json b/test_tube_merchant/items/good/armor/kol�chuzhno-latnyj-dospeh-+1-_-half-plate-armor-+1.json new file mode 100755 index 0000000..777cfcc --- /dev/null +++ b/test_tube_merchant/items/good/armor/kol�chuzhno-latnyj-dospeh-+1-_-half-plate-armor-+1.json @@ -0,0 +1,131 @@ +{ + "name": "Кольчужно-латный доспех +1 / Half Plate Armor +1", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-cuirass-steel-grey.webp", + "system": { + "description": { + "value": "Состоит из кованых металлических пластин, покрывающих большую часть тела носителя. В него не входит защита ног, кроме простых поножей, закреплённых ремнями.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +1 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 2250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 16, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "halfplate" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Half Plate Armor +1" + }, + "test_tube_merchant": { + "quantity": "1d2 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/kol�chuzhno-latnyj-dospeh-_-half-plate-armor.json b/test_tube_merchant/items/good/armor/kol�chuzhno-latnyj-dospeh-_-half-plate-armor.json new file mode 100755 index 0000000..8a723cd --- /dev/null +++ b/test_tube_merchant/items/good/armor/kol�chuzhno-latnyj-dospeh-_-half-plate-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Кольчужно-латный доспех / Half Plate Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-cuirass-steel-grey.webp", + "system": { + "description": { + "value": "Состоит из кованых металлических пластин, покрывающих большую часть тела носителя. В него не входит защита ног, кроме простых поножей, закреплённых ремнями.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 750, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 15, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "halfplate" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Half Plate Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 + 2" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/latnyj-dospeh-_-plate-armor.json b/test_tube_merchant/items/good/armor/latnyj-dospeh-_-plate-armor.json new file mode 100755 index 0000000..5756813 --- /dev/null +++ b/test_tube_merchant/items/good/armor/latnyj-dospeh-_-plate-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Латный доспех / Plate Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-collared-steel.webp", + "system": { + "description": { + "value": "Состоит из кованых металлических пластин, сцепленных друг с другом и покрывающих всё тело. В латный доспех входят рукавицы, тяжёлые кожаные сапоги, шлем с забралом и толстый поддоспешник. Пряжки и ремни позволяют распределить вес по всему телу.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 65, + "units": "lb" + }, + "price": { + "value": 1500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 18, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "plate" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Plate Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 + 2" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/mifral�naya-kol�chuga-_-mithral-chain-mail.json b/test_tube_merchant/items/good/armor/mifral�naya-kol�chuga-_-mithral-chain-mail.json new file mode 100755 index 0000000..d899dfb --- /dev/null +++ b/test_tube_merchant/items/good/armor/mifral�naya-kol�chuga-_-mithral-chain-mail.json @@ -0,0 +1,124 @@ +{ + "name": "Мифральная кольчуга / Mithral Chain Mail", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Chain_shirt-5e.webp", + "system": { + "description": { + "value": "Сделана из переплетённых металлических колец, её носят поверх стёганой ткани, чтобы она не звенела и чтобы смягчить удары. Доспех включает и рукавицы.
\nМифрал – лёгкий и гибкий металл. Мифральную кольчужную рубаху или нагрудник можно носить под обычной одеждой.
\nЕсли броня должна давать помеху к проверкам Ловкости (Скрытность) или требует определённого значения Силы, то с мифральным вариантом таких проблем нет.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 55, + "units": "lb" + }, + "price": { + "value": 875, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 16, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "chainmail" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mithral Chain Mail" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/mifral�naya-kol�chuzhnaya-rubaha-_-mithral-chain-shirt.json b/test_tube_merchant/items/good/armor/mifral�naya-kol�chuzhnaya-rubaha-_-mithral-chain-shirt.json new file mode 100755 index 0000000..4a742ce --- /dev/null +++ b/test_tube_merchant/items/good/armor/mifral�naya-kol�chuzhnaya-rubaha-_-mithral-chain-shirt.json @@ -0,0 +1,124 @@ +{ + "name": "Мифральная кольчужная рубаха / Mithral Chain Shirt", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-scale-grey.webp", + "system": { + "description": { + "value": "Сделана из переплетённых металлических колец, её обычно носят между слоями одежды. Она худо-бедно защищает торс носителя и позволяет приглушить звон колец друг об друга благодаря внешним слоям одежды.
\nМифрал – лёгкий и гибкий металл. Мифральную кольчужную рубаху или нагрудник можно носить под обычной одеждой.
\nЕсли броня должна давать помеху к проверкам Ловкости (Скрытность) или требует определённого значения Силы, то с мифральным вариантом таких проблем нет.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 20, + "units": "lb" + }, + "price": { + "value": 850, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 13, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "chainshirt" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mithral Chain Shirt" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/plastinchatyj-dospeh-+1-_-splint-armor-+1.json b/test_tube_merchant/items/good/armor/plastinchatyj-dospeh-+1-_-splint-armor-+1.json new file mode 100755 index 0000000..c9506c7 --- /dev/null +++ b/test_tube_merchant/items/good/armor/plastinchatyj-dospeh-+1-_-splint-armor-+1.json @@ -0,0 +1,131 @@ +{ + "name": "Пластинчатый доспех +1 / Splint Armor +1", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Splintmail-5e.webp", + "system": { + "description": { + "value": "Сделан из тонких вертикальных полос металла, приклёпанных на кожаную основу, его носят поверх плотного поддоспешника. Сочленения прикрывает гибкая кольчуга.
\nНа эту броню были нанесены могущественные руны, или она была выкована из волшебного материала, или благословлена великой сущностью с целью улучшить защиту владельца.
\nВы получаете бонус +1 к КБ при её ношении в дополнение к КБ самой брони.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 60, + "units": "lb" + }, + "price": { + "value": 1700, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 18, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "splint" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Splint Armor +1" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/serebro.json b/test_tube_merchant/items/good/armor/serebro.json new file mode 100755 index 0000000..bd263c2 --- /dev/null +++ b/test_tube_merchant/items/good/armor/serebro.json @@ -0,0 +1,40 @@ +{ + "name": "Серебро", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/silver.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/shit-+1-_-shield-+1.json b/test_tube_merchant/items/good/armor/shit-+1-_-shield-+1.json new file mode 100755 index 0000000..5a0bb10 --- /dev/null +++ b/test_tube_merchant/items/good/armor/shit-+1-_-shield-+1.json @@ -0,0 +1,124 @@ +{ + "name": "Щит +1 / Shield +1", + "type": "equipment", + "img": "icons/equipment/shield/round-wooden-boss-gold-brown.webp", + "system": { + "description": { + "value": "Щит из дерева или металла носят в одной руке. Использование щита увеличивает ваш класс брони на 2. Ношение более чем одного щита не принесёт дополнительной пользы.
\nЭтот щит сделан особо искусно или зачарован магией, увеличивая КБ владельца на +1 в дополнение к обычному бонусу КБ щита.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 1500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 3, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "shield", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shield +1" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/armor/shlem-s-kryl�yami.json b/test_tube_merchant/items/good/armor/shlem-s-kryl�yami.json new file mode 100755 index 0000000..0768efc --- /dev/null +++ b/test_tube_merchant/items/good/armor/shlem-s-kryl�yami.json @@ -0,0 +1,160 @@ +{ + "name": "Шлем с крыльями", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/helm_with_wings.png", + "system": { + "description": { + "value": "Доблестный и вычурный
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [ + { + "name": "Шлем с крыльями", + "origin": "Item.37LW49HWVzlhMMHX", + "duration": { + "rounds": null, + "startTime": null, + "seconds": null, + "combat": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "disabled": false, + "flags": { + "dnd5e": {}, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/helm_with_wings.png", + "_id": "TtaggToKmmY1fRoM", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.attributes.ac.bonus", + "mode": 2, + "value": "2", + "priority": 20 + } + ], + "description": "", + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0 + } + ], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/bars/chajnyj-nabor.json b/test_tube_merchant/items/good/bars/chajnyj-nabor.json new file mode 100755 index 0000000..1dcaad3 --- /dev/null +++ b/test_tube_merchant/items/good/bars/chajnyj-nabor.json @@ -0,0 +1,41 @@ +{ + "name": "Чайный набор", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/tea_set.png", + "system": { + "description": { + "value": "Идеальный для чайных церемоний.
", + "chat": "" + }, + "source": { + "custom": "CoS" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/bars/kruzhka-trezvosti-_-tankard-of-sobriety.json b/test_tube_merchant/items/good/bars/kruzhka-trezvosti-_-tankard-of-sobriety.json new file mode 100755 index 0000000..a47be57 --- /dev/null +++ b/test_tube_merchant/items/good/bars/kruzhka-trezvosti-_-tankard-of-sobriety.json @@ -0,0 +1,121 @@ +{ + "name": "Кружка трезвости / Tankard of Sobriety", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Tankard%20of%20Sobriety.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1", + "price": "1d50 + 48 + 1d2" + } + }, + "system": { + "description": { + "value": "На одной стороне этой кружки изображено суровое лицо. Вы можете пить из этой кружки эль, вино или любой другой немагический алкоголь и не пьянеть. Кружка не оказывает никакого эффекта на магический алкоголь и вредные вещества, такие как яд.
", + "chat": "" + }, + "source": { + "custom": "XGE" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 0, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/bars/osvezhayushaya-busina-_-bead-of-refreshment.json b/test_tube_merchant/items/good/bars/osvezhayushaya-busina-_-bead-of-refreshment.json new file mode 100755 index 0000000..4a57a56 --- /dev/null +++ b/test_tube_merchant/items/good/bars/osvezhayushaya-busina-_-bead-of-refreshment.json @@ -0,0 +1,128 @@ +{ + "name": "Освежающая бусина / Bead of Refreshment", + "type": "equipment", + "img": "icons/commodities/gems/pearls-white.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "Эта пористая безвкусная студенистая бусина растворяется в жидкости, превращая до пинты жидкости в свежую чистую холодную воду. Бусина не оказывает эффект на магические жидкости или опасные вещества типа яда.
\nОчень точный, но не слишком подробный
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1.5, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/books/instrumenty-kalligrafa-_-calligrapher's-supplies.json b/test_tube_merchant/items/good/books/instrumenty-kalligrafa-_-calligrapher's-supplies.json new file mode 100755 index 0000000..e300a22 --- /dev/null +++ b/test_tube_merchant/items/good/books/instrumenty-kalligrafa-_-calligrapher's-supplies.json @@ -0,0 +1,84 @@ +{ + "name": "Инструменты каллиграфа / Calligrapher's Supplies", + "type": "tool", + "img": "icons/commodities/materials/parchment-secrets.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия каллиграфией. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nКаллиграфия относится к письму как к прекрасному уточненному искусству. Каллиграфы создают текст, который радует глаз, используя стиль, который сложно подделать. Их инструменты также дают им возможность исследовать рукописный текст и определить его подлинность, поскольку обучение каллиграфа включало в себя многие часы обучения письму и попытки повторить его стиль и оформление.
\nКомпоненты. Инструменты каллиграфа включают в себя чернила, множество пергаментных листов и три писчих пера.
\nМагия. Хотя каллиграфия мало помогает в расшифровке содержимого магического текста, умение в обращении с этими инструментами помогает определить, кто написал магический текст.
\nИстория. Умение в обращении с этими инструментами может увеличить выгоду при успешной проверке, совершаемой для анализа или исследования древних записей, свитков или другого текста, включая руны, вырезанные на камне, а также письмена на фресках или других изображениях.
\nРасшифровка карты сокровищ. Умение в обращении с этими инструментами позволяет вам проводить экспертизу карт. Вы можете совершить проверку Интеллекта, чтобы оценить возраст карты, определить, содержит ли карта скрытое послание, и так далее.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Опознать писавшего немагический рукописный текст | \n10 | \n
| Определить душевное состояние писавшего | \n15 | \n
| Распознать поддельный текст | \n15 | \n
| Подделать подпись | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия картографией. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nИспользуя инструменты картографа, вы можете составить достоверную карту, чтобы сделать путешествие проще для вас и для тех, кто придёт после вас. Это может быть, как крупномасштабная карта, описывающая горные хребты и перевалы, так и схема, показывающая планировку уровня подземелья.
\nКомпоненты. Инструменты картографа включают в себя писчее перо, чернила, пергамент, компас, кронциркуль и линейку.
\nИстория, Магия, Религия. Вы можете использовать ваши познания в картах и различных местах, чтобы извлекать более детальную информацию при использовании этих навыков. Например, вы можете найти скрытое послание на карте, установить, когда была составлена карта, чтобы определить, какие географические особенности изменились с тех пор и так далее.
\nПрирода. Ваше знакомство с физической географией облегчает вам поиск ответов на вопросы и разрешение проблем, касающихся окружающей местности.
\nВыживание. Ваше понимание географии облегчает поиск пути к цивилизации, позволяет прогнозировать, в какой местности могут быть найдены деревни или городки, и уменьшает вероятность того, что вы заблудитесь. Вы изучили так много карт, что общие тенденции, например, как развиваются торговые маршруты или в каких местах обычно строят поселения, вам хорошо знакомы.
\nСоставление карты. Путешествуя, вы можете рисовать карту в дополнение к участию в других активностях.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Определить возраст и происхождение карты | \n10 | \n
| Прикинуть направление и расстояние до ориентира | \n15 | \n
| Понять, что карта поддельная | \n15 | \n
| Дорисовать недостающий кусок карты | \n20 | \n
классическая
«Приключения Шерлока Холмса»
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/books/kniga-novella.json b/test_tube_merchant/items/good/books/kniga-novella.json new file mode 100755 index 0000000..7251237 --- /dev/null +++ b/test_tube_merchant/items/good/books/kniga-novella.json @@ -0,0 +1,41 @@ +{ + "name": "Книга", + "type": "loot", + "img": "icons/sundries/books/book-embossed-jewel-gold-green.webp", + "system": { + "description": { + "value": "новелла
«Дроу в высоком замке»
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/books/putevoditel�-po-monstram.json b/test_tube_merchant/items/good/books/putevoditel�-po-monstram.json new file mode 100755 index 0000000..867c829 --- /dev/null +++ b/test_tube_merchant/items/good/books/putevoditel�-po-monstram.json @@ -0,0 +1,41 @@ +{ + "name": "Путеводитель по монстрам", + "type": "loot", + "img": "icons/sundries/books/book-black-grey.webp", + "system": { + "description": { + "value": "преимущество на проверки знаний и внимания
Информация об определенном типе монстров, обитающем поблизости
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 125, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/curse/fvtt-Item-kol�co-diplomatii-TWJaG1FmhYxyzBBK.json b/test_tube_merchant/items/good/curse/fvtt-Item-kol�co-diplomatii-TWJaG1FmhYxyzBBK.json new file mode 100755 index 0000000..d2051a2 --- /dev/null +++ b/test_tube_merchant/items/good/curse/fvtt-Item-kol�co-diplomatii-TWJaG1FmhYxyzBBK.json @@ -0,0 +1,182 @@ +{ + "name": "Кольцо дипломатии", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/curse/ring_dwarf.png", + "system": { + "description": { + "value": "Маленькое золотое колечко с внутренней гравировкой на дворфийском \"Эдбро Базак Дрррагна\". Cнаружи есть небольшой алый рубин с тусклым сиянием внутри.
+ 2 к Убеждение
После оконченной фразы носитель издаёт ехидный смешок: \"Хе-хе\"
Кольцо можно найти на трупе неудавшегося торговца на тракте с кинжалом в брюхе.
При обнаружении магии указывается школа очарования. Проклятие начинает действовать после третьей проверки убеждения.
До этого находится в пассивном состоянии. Кольцо можно снять, лишь пройдя сложность убеждения DC20, не обидев собеседника.
Чёрная бархатная маска с серебряным шитьём, предмет искусства стоимостью не меньше 25 зм.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/bezdelushka_-alebastrovaya-maska.json b/test_tube_merchant/items/good/fashion/bezdelushka_-alebastrovaya-maska.json new file mode 100755 index 0000000..e5432ad --- /dev/null +++ b/test_tube_merchant/items/good/fashion/bezdelushka_-alebastrovaya-maska.json @@ -0,0 +1,40 @@ +{ + "name": "Алебастровая маска", + "type": "loot", + "img": "icons/commodities/treasure/mask-bone-white.webp", + "system": { + "description": { + "value": "Алебастровая маска.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/bezdelushka_-banditskaya-maska.json b/test_tube_merchant/items/good/fashion/bezdelushka_-banditskaya-maska.json new file mode 100755 index 0000000..a578cc3 --- /dev/null +++ b/test_tube_merchant/items/good/fashion/bezdelushka_-banditskaya-maska.json @@ -0,0 +1,43 @@ +{ + "name": "Бандитская маска", + "type": "loot", + "img": "icons/commodities/cloth/ribbon-bow-red.webp", + "system": { + "description": { + "value": "Слегка поношенная алая бандитская маска.
", + "chat": "" + }, + "source": { + "book": "", + "page": "", + "custom": "AI", + "license": "" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "type": { + "value": "", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [] + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/bezdelushka_-maskaradnaya-maska.json b/test_tube_merchant/items/good/fashion/bezdelushka_-maskaradnaya-maska.json new file mode 100755 index 0000000..f03f0c7 --- /dev/null +++ b/test_tube_merchant/items/good/fashion/bezdelushka_-maskaradnaya-maska.json @@ -0,0 +1,40 @@ +{ + "name": "Безделушка: Маскарадная маска", + "type": "loot", + "img": "icons/equipment/head/mask-horned-brown.webp", + "system": { + "description": { + "value": "Пустая маскарадная маска.
", + "chat": "" + }, + "source": { + "custom": "VRGR" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/ochki.json b/test_tube_merchant/items/good/fashion/ochki.json new file mode 100755 index 0000000..aed8746 --- /dev/null +++ b/test_tube_merchant/items/good/fashion/ochki.json @@ -0,0 +1,129 @@ +{ + "name": "Очки", + "type": "consumable", + "img": "icons/tools/scribal/spectacles-glasses.webp", + "system": { + "description": { + "value": "Очки из кожи и стекла, защищающие глаза.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "trinket", + "subtype": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + }, + "scene-packer": { + "hash": "46053142b1824427cdcceaeffbb1fd7fcdb7796a", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/odezhda,-aristokratichnaya.json b/test_tube_merchant/items/good/fashion/odezhda,-aristokratichnaya.json new file mode 100755 index 0000000..7f28a22 --- /dev/null +++ b/test_tube_merchant/items/good/fashion/odezhda,-aristokratichnaya.json @@ -0,0 +1,144 @@ +{ + "name": "Одежда, аристократичная", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/aristocratic_clothes.png", + "system": { + "description": { + "value": "Аристократичная одежда, последний писк современной моды.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + }, + "scene-packer": { + "hash": "a65e4f083ffbc8e6bd7ff5ac936b74e17653b375", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/paradnaya-odezhda-_-fine-clothes.json b/test_tube_merchant/items/good/fashion/paradnaya-odezhda-_-fine-clothes.json new file mode 100755 index 0000000..453493a --- /dev/null +++ b/test_tube_merchant/items/good/fashion/paradnaya-odezhda-_-fine-clothes.json @@ -0,0 +1,121 @@ +{ + "name": "Парадная одежда / Fine Clothes", + "type": "equipment", + "img": "icons/equipment/back/cloak-heavy-fur-blue.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Fine Clothes" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Набор одежды, специально разработанный, чтобы выглядеть дорого и богато.
", + "chat": "" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/shlyapa,-avantyurista.json b/test_tube_merchant/items/good/fashion/shlyapa,-avantyurista.json new file mode 100755 index 0000000..bb5ebea --- /dev/null +++ b/test_tube_merchant/items/good/fashion/shlyapa,-avantyurista.json @@ -0,0 +1,144 @@ +{ + "name": "Шляпа, авантюриста", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/adventure_hat.png", + "system": { + "description": { + "value": "Широкополая кожаная шляпа для странствий.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + }, + "scene-packer": { + "hash": "ec44f64854620bc47d58332368fc0e9ed57a44c2", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/tyomnye-ochki.json b/test_tube_merchant/items/good/fashion/tyomnye-ochki.json new file mode 100755 index 0000000..0342bef --- /dev/null +++ b/test_tube_merchant/items/good/fashion/tyomnye-ochki.json @@ -0,0 +1,129 @@ +{ + "name": "Тёмные очки", + "type": "consumable", + "img": "icons/tools/scribal/spectacles-glasses.webp", + "system": { + "description": { + "value": "Тёмные очки, убирающие помеху при чувствительности к солнцу.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 350, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "trinket", + "subtype": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + }, + "scene-packer": { + "hash": "7b00cdd0a61cbc33da6620b3925a26751cf7b637", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/fashion/tyoplaya-odezhda.json b/test_tube_merchant/items/good/fashion/tyoplaya-odezhda.json new file mode 100755 index 0000000..f964be3 --- /dev/null +++ b/test_tube_merchant/items/good/fashion/tyoplaya-odezhda.json @@ -0,0 +1,39 @@ +{ + "name": "Тёплая одежда", + "type": "loot", + "system": { + "description": { + "value": "Эта экипировка состоит из тяжёлой подбитой мхом шубы или плаща поверх нескольких предметов одежды из шерсти, а также шапки или капюшона с меховой подкладкой, защитных очков, кожаных сапог и перчаток на меху. До тех пор, пока тёплая одежда остается сухой, её владелец автоматически преуспевает в испытаниях от воздействия чрезвычайного холода (см. @UUID[Compendium.laaru-dnd5-hw.intro.vD7YbJP9a9EsmZRU.JournalEntryPage.yrEvoLmiYw1m6XwR#silьnyj-holod]{Сильный холод})
", + "chat": "" + }, + "source": { + "custom": "IDRotF" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/outfit.webp", + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/cvetok-feniksa.json b/test_tube_merchant/items/good/flowers/cvetok-feniksa.json new file mode 100755 index 0000000..9f1266f --- /dev/null +++ b/test_tube_merchant/items/good/flowers/cvetok-feniksa.json @@ -0,0 +1,134 @@ +{ + "name": "Цветок феникса", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/pheonix_flower.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + }, + "core": { + "sourceId": "Compendium.dnd5e.items.BnOCLuNWhVvzHLjl" + }, + "midi-qol": { + "fumbleThreshold": null, + "effectActivation": false, + "forceCEOff": false, + "forceCEOn": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "autoFailFriendly": false, + "autoSaveFriendly": false, + "rollOther": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false + } + }, + "system": { + "description": { + "value": "Горит как факел, можно поджигать объекты
", + "chat": "Горит 1 час, даёт яркий свет в радиусе 20 футов и тусклый ещё на 20 футов. Если совершить горящим факелом атаку ближнего боя, при попадании он нанесёт 1 урон огнём.
" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "str", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/semena-—-cvetok-feniksa.json b/test_tube_merchant/items/good/flowers/semena-—-cvetok-feniksa.json new file mode 100755 index 0000000..7a424d2 --- /dev/null +++ b/test_tube_merchant/items/good/flowers/semena-—-cvetok-feniksa.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Цветок феникса", + "type": "loot", + "system": { + "description": { + "value": "Вырастает до 60 цветов феникса. Вырастают за 100 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/pheonix_flower.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/semena-—-fruktovoe-derevo.json b/test_tube_merchant/items/good/flowers/semena-—-fruktovoe-derevo.json new file mode 100755 index 0000000..7222b0a --- /dev/null +++ b/test_tube_merchant/items/good/flowers/semena-—-fruktovoe-derevo.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Фруктовое дерево", + "type": "loot", + "system": { + "description": { + "value": "Вырастает до 25 фруктовых деревьев; Яблоня, Груша или аналогичные. Вырастают за 1800 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/fruit_tree.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/semena-—-svetyashijsya-cvetok.json b/test_tube_merchant/items/good/flowers/semena-—-svetyashijsya-cvetok.json new file mode 100755 index 0000000..7fadadf --- /dev/null +++ b/test_tube_merchant/items/good/flowers/semena-—-svetyashijsya-cvetok.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Светящийся цветок", + "type": "loot", + "system": { + "description": { + "value": "Вырастает до 60 светящихся цветов. Вырастают за 100 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/glowin_flower.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/semena-—-svistyashaya-trava.json b/test_tube_merchant/items/good/flowers/semena-—-svistyashaya-trava.json new file mode 100755 index 0000000..abba554 --- /dev/null +++ b/test_tube_merchant/items/good/flowers/semena-—-svistyashaya-trava.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Свистящая трава", + "type": "loot", + "system": { + "description": { + "value": "Вырастает до 60 стеблей свистящей травы. Вырастают за 100 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/whistling_grass.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/svetyashijsya-cvetok.json b/test_tube_merchant/items/good/flowers/svetyashijsya-cvetok.json new file mode 100755 index 0000000..4d0636e --- /dev/null +++ b/test_tube_merchant/items/good/flowers/svetyashijsya-cvetok.json @@ -0,0 +1,41 @@ +{ + "name": "Светящийся цветок", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/glowin_flower.png", + "system": { + "description": { + "value": "Испускает тусклый свет в радиусе 10 футов
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/flowers/svistyashaya-trava.json b/test_tube_merchant/items/good/flowers/svistyashaya-trava.json new file mode 100755 index 0000000..b8f2885 --- /dev/null +++ b/test_tube_merchant/items/good/flowers/svistyashaya-trava.json @@ -0,0 +1,105 @@ +{ + "name": "Свистящая трава", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/whistling_grass.png", + "system": { + "description": { + "value": "Громко свистит, если дотронуться
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "trinket", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/fruktovyj-pirog-s-nachinkoj.json b/test_tube_merchant/items/good/food/fruktovyj-pirog-s-nachinkoj.json new file mode 100755 index 0000000..169ad1a --- /dev/null +++ b/test_tube_merchant/items/good/food/fruktovyj-pirog-s-nachinkoj.json @@ -0,0 +1,41 @@ +{ + "name": "Фруктовый пирог с начинкой", + "type": "loot", + "img": "icons/consumables/food/candy-taffy-yellow.webp", + "system": { + "description": { + "value": "Рецепт этого пирога довольно прост и любим в большинстве семей и пекарен. В него входят мука, молоко, подсластители, такие как сахар или мед, и различные фрукты. Чаще всего для пирогов используются яблоки, груши, вишни, виноград и многие другие фрукты, но нередко их смешивают, чтобы создать уникальные вкусовые сочетания. Эти пироги — любимое лакомство как искателей приключений, так и путешественников. Они вызывают чувство ностальгии и тоски по дому, а также дают заряд бодрости и энергии для будущих приключений.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/imbir�.json b/test_tube_merchant/items/good/food/imbir�.json new file mode 100755 index 0000000..598fcbb --- /dev/null +++ b/test_tube_merchant/items/good/food/imbir�.json @@ -0,0 +1,41 @@ +{ + "name": "Имбирь", + "type": "loot", + "img": "icons/consumables/vegetable/root-ginger-yellow.webp", + "system": { + "description": { + "value": "Имбирь, широко используется как специя и как лекарственное средство народной медицины. Его дают в виде чая тем, у кого пролемы с желудком, в том числе для борьбы с тошнотой.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/instrumenty-povara-_-cook's-utensils.json b/test_tube_merchant/items/good/food/instrumenty-povara-_-cook's-utensils.json new file mode 100755 index 0000000..943c252 --- /dev/null +++ b/test_tube_merchant/items/good/food/instrumenty-povara-_-cook's-utensils.json @@ -0,0 +1,92 @@ +{ + "name": "Инструменты повара / Cook's Utensils", + "type": "tool", + "img": "icons/tools/cooking/bowl-steaming-brown.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Cook's Utensils" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия готовкой. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nЖизнь искателя приключений тяжела. При наличии в компании повара ваша пища будет намного вкуснее, чем привычные галеты и сухофрукты.
\nКомпоненты. Инструменты повара включают в себя металлический котёл, ножи, вилки, ложку для размешивания и половник.
\nИстория. Ваши знания кулинарных методик позволяют вам оценивать структуру социального развития, основываясь на гастрономических обычаях этой культуры.
\nМедицина. Оказывая лечение, вы можете превратить горькое или кислое лекарство в приятную на вкус стряпню.
\nВыживание. Добывая еду, вы можете использовать собранные вами ингредиенты, которые другие не смогли бы приготовить.
\nПриготовление еды. Частью короткого отдыха, вы можете приготовить вкусное блюдо, которое поможет вашим компаньонам восстановить силы. Вы и до пяти существ на ваш выбор восстанавливаете по 1 дополнительному ПЗ за каждую потраченную во время короткого отдыха кость здоровья, при условии, что у вас есть доступ к вашим инструментам повара и достаточно еды.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Приготовить обычную пищу | \n10 | \n
| Повторить блюдо | \n10 | \n
| Обнаружить яд или примесь в еде | \n15 | \n
| Приготовить изысканное блюдо | \n15 | \n
Пышный и сочный; на 8 персон
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/pitanie,-bogatoe.json b/test_tube_merchant/items/good/food/pitanie,-bogatoe.json new file mode 100755 index 0000000..dc58ac6 --- /dev/null +++ b/test_tube_merchant/items/good/food/pitanie,-bogatoe.json @@ -0,0 +1,41 @@ +{ + "name": "Питание, богатое", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/beter_meal.png", + "system": { + "description": { + "value": "Хорошо приготовленный кусок мяса и десерт
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 8, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/pitanie,-komfortnoe.json b/test_tube_merchant/items/good/food/pitanie,-komfortnoe.json new file mode 100755 index 0000000..a16bb0c --- /dev/null +++ b/test_tube_merchant/items/good/food/pitanie,-komfortnoe.json @@ -0,0 +1,41 @@ +{ + "name": "Питание, комфортное", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/good_meal.png", + "system": { + "description": { + "value": "Слегка пряное мясо, подается с гарниром
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/povarskoj-kolpak.json b/test_tube_merchant/items/good/food/povarskoj-kolpak.json new file mode 100755 index 0000000..46683a3 --- /dev/null +++ b/test_tube_merchant/items/good/food/povarskoj-kolpak.json @@ -0,0 +1,120 @@ +{ + "name": "Поварской колпак", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/Chefs_hat.png", + "system": { + "description": { + "value": "Покажи, кто здесь шеф-повар
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0.3, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "gp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/shafran.json b/test_tube_merchant/items/good/food/shafran.json new file mode 100755 index 0000000..592b399 --- /dev/null +++ b/test_tube_merchant/items/good/food/shafran.json @@ -0,0 +1,105 @@ +{ + "name": "Шафран", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/Saffron.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "trinket", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/food/specii.json b/test_tube_merchant/items/good/food/specii.json new file mode 100755 index 0000000..6acd24a --- /dev/null +++ b/test_tube_merchant/items/good/food/specii.json @@ -0,0 +1,41 @@ +{ + "name": "Специи", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/spice_bag.png", + "system": { + "description": { + "value": "Перец, корица и подобные
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/akvamarin.json b/test_tube_merchant/items/good/jewelry/akvamarin.json new file mode 100755 index 0000000..efae160 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/akvamarin.json @@ -0,0 +1,40 @@ +{ + "name": "Аквамарин", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-cushion-teal.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "system": { + "description": { + "value": "Аквамарин — один из самых популярных светло-голубых драгоценных камней, который активно используется в ювелирном деле. Из аквамарина делают кольца, серьги и браслеты, и он особенно важен как камень для подвесок, причем самые крупные экземляры камей ограняются. Считается также, что когда-то он был компонентом для редкого и очень секретного заклинания.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/aleksandrit.json b/test_tube_merchant/items/good/jewelry/aleksandrit.json new file mode 100755 index 0000000..5480358 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/aleksandrit.json @@ -0,0 +1,40 @@ +{ + "name": "Александрит", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-oval-blue.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "
Считается, что если владелец этого прозрачного камня совершает благие поступки или защищает свою семью, то камень дарует ему удачу. В некоторых регионах драгоценный камень считается священным и приносится в дар богам или используется для освящения мест.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/ametist.json b/test_tube_merchant/items/good/jewelry/ametist.json new file mode 100755 index 0000000..9b08893 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/ametist.json @@ -0,0 +1,40 @@ +{ + "name": "Аметист", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-navette-purple.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "
\"Говорят, что первая Аметист была молодой и красивой жрицей, однако две богини боролись за ее верность и, к несчастью, погубили её. Когда богини оплакивали свою потерю, их слёзы соединились и образовали драгоценный камень, упавший на землю. Я не уверен, что в этой истории есть доля правды, ведь тот, кто её рассказывал, не спускал глаз с камня и пил много вина.\"
Это очень распространенный минерал, который встречается повсеместно. Он имеет красивый цвет и ограняется в ювелирных изделиях, что делает его одним из самых популярных драгоценных камней у ювелиров.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/belyj-zhemchug.json b/test_tube_merchant/items/good/jewelry/belyj-zhemchug.json new file mode 100755 index 0000000..2da1771 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/belyj-zhemchug.json @@ -0,0 +1,40 @@ +{ + "name": "Белый жемчуг", + "type": "loot", + "img": "icons/commodities/gems/pearls-white.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "
Этот специфический жемчуг обычно встречается в соленой воде и в основном пользуется спросом у королевских особ и знати из-за своей редкости. Самые крупные, размером с голову человека, используются в хрустальных шарах, однако они не должны иметь никаких дефектов.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/brosh�-shita-_-brooch-of-shielding.json b/test_tube_merchant/items/good/jewelry/brosh�-shita-_-brooch-of-shielding.json new file mode 100755 index 0000000..4e53728 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/brosh�-shita-_-brooch-of-shielding.json @@ -0,0 +1,182 @@ +{ + "name": "Брошь щита / Brooch of Shielding", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Brooch%20of%20Shielding_1.webp", + "effects": [ + { + "changes": [ + { + "key": "system.traits.dr.value", + "mode": 2, + "value": "force", + "priority": 7 + } + ], + "disabled": true, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "_id": "q5i0esajq4qld2jj", + "origin": null, + "name": "Устойчивость к урону силой", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "modules/laaru-dnd5-hw/assets/images/pic/Brooch%20of%20Shielding_1.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "brooch%20of%20shielding_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Brooch of Shielding", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
Пока вы носите эту брошь, у вас устойчивость к урону силой и невосприимчивость к урону заклинания @Compendium[laaru-dnd5-hw.spells.FgeTrsMqHnbTEIPl]{волшебная стрела}.
Полупрозрачный тёмно-зелёный с чёрными и золотыми вкраплениями самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/chyornyj-zhemchug.json b/test_tube_merchant/items/good/jewelry/chyornyj-zhemchug.json new file mode 100755 index 0000000..ddefbc9 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/chyornyj-zhemchug.json @@ -0,0 +1,40 @@ +{ + "name": "Чёрный жемчуг", + "type": "loot", + "img": "icons/magic/unholy/orb-glowing-purple.webp", + "system": { + "description": { + "value": "Непрозрачный чёрный самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/gagat.json b/test_tube_merchant/items/good/jewelry/gagat.json new file mode 100755 index 0000000..127ae47 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/gagat.json @@ -0,0 +1,40 @@ +{ + "name": "Гагат", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-round-black.webp", + "system": { + "description": { + "value": "Непрозрачный чёрный самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/goluboj-sapfir.json b/test_tube_merchant/items/good/jewelry/goluboj-sapfir.json new file mode 100755 index 0000000..ce80504 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/goluboj-sapfir.json @@ -0,0 +1,40 @@ +{ + "name": "Голубой сапфир", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-trillion-blue.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "Сапфир с глубоким синим цветом и отличной прозрачностью может достигать нескольких тысяч золотых монет за камень. Один из самых используемых предметов в магических заклинаниях, связанных с воздействием на разум. В некоторых регионах его используют при создании магических механических конструкций, таких как големы.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/granat.json b/test_tube_merchant/items/good/jewelry/granat.json new file mode 100755 index 0000000..09e9bdd --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/granat.json @@ -0,0 +1,40 @@ +{ + "name": "Гранат", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-navette-red.webp", + "system": { + "description": { + "value": "Прозрачный красный, коричнево-зелёный или фиолетовый самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/hrizoberill.json b/test_tube_merchant/items/good/jewelry/hrizoberill.json new file mode 100755 index 0000000..bf76f13 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/hrizoberill.json @@ -0,0 +1,40 @@ +{ + "name": "Хризоберилл", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-cushion-yellow.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Все цветные прозрачные разновидности Хризоберилла делают драгоценными камнями, однако, поскольку они трудно поддаются огранке и имеют небольшую ценность, их редко используют в ювелирных изделиях. В основном используется в качестве компонентов в магических искусствах и травничестве.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/hrizolit.json b/test_tube_merchant/items/good/jewelry/hrizolit.json new file mode 100755 index 0000000..e4ef637 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/hrizolit.json @@ -0,0 +1,40 @@ +{ + "name": "Хризолит", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-brilliant-green.webp", + "system": { + "description": { + "value": "
Прозрачный насыщенный оливково-зелёный самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/izumrud.json b/test_tube_merchant/items/good/jewelry/izumrud.json new file mode 100755 index 0000000..394ed98 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/izumrud.json @@ -0,0 +1,40 @@ +{ + "name": "Изумруд", + "type": "loot", + "img": "icons/commodities/gems/gem-cut-table-green.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "Изумруды гранят и полируют в форме драгоценных камней для ювелирных изделий. В основном дарятся в качестве подарков королевским особам или знати. В прошлом он ассоциировался со здоровьем, плодородием и ростом и использовался для украшения магических предметов, улучшающих целительские навыки.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/kol�co,-izyashnoe.json b/test_tube_merchant/items/good/jewelry/kol�co,-izyashnoe.json new file mode 100755 index 0000000..3970f7d --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/kol�co,-izyashnoe.json @@ -0,0 +1,40 @@ +{ + "name": "Кольцо, изящное", + "type": "loot", + "img": "icons/equipment/finger/ring-cabochon-engraved-gold-pink.webp", + "system": { + "description": { + "value": "Кольцо с драгоценным камнем.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/korall.json b/test_tube_merchant/items/good/jewelry/korall.json new file mode 100755 index 0000000..daeee46 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/korall.json @@ -0,0 +1,40 @@ +{ + "name": "Коралл", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-cushion-red-pink.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "
Порошкообразный коралл был очень востребованным ингредиентом при изготовлении зелий исцеления, так как гарантировал более высокую эффективность при минимальных сроках исцеления. В настоящее время используется только для создания редкого красного красителя.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/korona.json b/test_tube_merchant/items/good/jewelry/korona.json new file mode 100755 index 0000000..1fb0afc --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/korona.json @@ -0,0 +1,120 @@ +{ + "name": "Корона", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/crown.png", + "system": { + "description": { + "value": "
Обруч из драгоценного металла с камнями.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 750, + "denomination": "gp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "folder": "ih5oPLiGiI8Rapfp", + "flags": { + "test_tube_merchant": { + "quantity": "1d4-1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/medal�on-chteniya-myslej-_-medallion-of-thoughts.json b/test_tube_merchant/items/good/jewelry/medal�on-chteniya-myslej-_-medallion-of-thoughts.json new file mode 100755 index 0000000..609de43 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/medal�on-chteniya-myslej-_-medallion-of-thoughts.json @@ -0,0 +1,129 @@ +{ + "name": "Медальон чтения мыслей / Medallion of Thoughts", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/medallion-of-thoughts.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "medallion%20of%20thoughts_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Medallion of Thoughts", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
У медальона 3 заряда. Пока вы носите его, вы можете использовать действие и потратить 1 заряд, чтобы сотворить из него заклинание @Compendium[laaru-dnd5-hw.spells.MSM1XtWei12DFoLN]{обнаружение мыслей} (СЛ испытаний 13). Ежедневно на рассвете медальон восстанавливает [[/r 1d3]] потраченных заряда.
Его первоначальная форма называется Жадеит, после огранки он в основном используется в декоративных скульптурах и статуэтках. Музыканты всех мастей верили, что если они будут носить Нефрит, то улучшат свое музыкальное мастерство.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/ognennyj-opal.json b/test_tube_merchant/items/good/jewelry/ognennyj-opal.json new file mode 100755 index 0000000..fb82223 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/ognennyj-opal.json @@ -0,0 +1,40 @@ +{ + "name": "Огненный опал", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-teardrop-red.webp", + "system": { + "description": { + "value": "Полупрозрачный огненно-красный самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/opal.json b/test_tube_merchant/items/good/jewelry/opal.json new file mode 100755 index 0000000..ac605d6 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/opal.json @@ -0,0 +1,40 @@ +{ + "name": "Опал", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-round-blue.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "\"Во времена, когда магические эксперименты были еще в порядке вещей, два мага решили соединить огонь и молнию, зачаровав Опал. Произошел мощный взрыв, и о них больше ничего не было слышно. Те, кто обладает способностью чувствовать магию, время от времени могут ощущать отголоски этого взрыва. В некоторых местах объединение этих двух видов магии теперь запрещено законом.\"
Один из самых красочных драгоценных камней. Когда камень огранен идеально и так, что получается красивая цветовая гамма, он порой стоит больше, чем бриллиант. В основном используется в ювелирных изделиях, таких как подвески и центральные части колец.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/samocvet-yarkosti-_-gem-of-brightness.json b/test_tube_merchant/items/good/jewelry/samocvet-yarkosti-_-gem-of-brightness.json new file mode 100755 index 0000000..86721e1 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/samocvet-yarkosti-_-gem-of-brightness.json @@ -0,0 +1,114 @@ +{ + "name": "Самоцвет яркости / Gem of Brightness", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Gem%20of%20Brightness.jpg", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "gem%20of%20brightness_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Gem of Brightness", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
У этой призмы 50 зарядов. Пока вы её держите, вы можете использовать действие и произнести одно из трёх командных слов, чтобы вызвать один из следующих эффектов.
Потратив все свои заряды, самоцвет становится немагическим драгоценным камнем стоимостью 50 зм.
Прозрачный красный, красно-коричневый или тёмно-зеленый самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/topaz.json b/test_tube_merchant/items/good/jewelry/topaz.json new file mode 100755 index 0000000..b73c9db --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/topaz.json @@ -0,0 +1,40 @@ +{ + "name": "Топаз", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-octagon-yellow.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "system": { + "description": { + "value": "Бывает разных цветов, один из самых распространенных — светло-голубой, но самый ценный — ярко-желтый, также известный как Императорский топаз. Высоко ценится аристократами, так как обычно преподносится в качестве подарка на официальных мероприятиях. Огранкой драгоценных камней занимаются только самые опытные мастера.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/turmalin.json b/test_tube_merchant/items/good/jewelry/turmalin.json new file mode 100755 index 0000000..56af36f --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/turmalin.json @@ -0,0 +1,40 @@ +{ + "name": "Турмалин", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-rough-red.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Это один из ценнейших минералов, а его мелкие кристаллы могут быть красивейшими образцами в минеральном царстве. Многие мелкие кристаллы Турмалина не ограняют, а сохраняют их красоту в естественной форме. Считается также, что они могут поглощать любые заклинания, наложенные на них, и превращать их в молнии.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/tyomno-sinyaya-shpinel�.json b/test_tube_merchant/items/good/jewelry/tyomno-sinyaya-shpinel�.json new file mode 100755 index 0000000..072660c --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/tyomno-sinyaya-shpinel�.json @@ -0,0 +1,40 @@ +{ + "name": "Тёмно-синяя шпинель", + "type": "loot", + "img": "icons/commodities/gems/gem-shattered-violet.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "system": { + "description": { + "value": "Превосходный кристалл глубокого сине-фиолетового цвета, обычно используется в ювелирных изделиях.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/yantar�.json b/test_tube_merchant/items/good/jewelry/yantar�.json new file mode 100755 index 0000000..0235c87 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/yantar�.json @@ -0,0 +1,40 @@ +{ + "name": "Янтарь", + "type": "loot", + "img": "icons/commodities/gems/gem-amber-insect-orange.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + }, + "system": { + "description": { + "value": "Окаменевшая сосновая смола, может быть отполирована и использована в декоративных целях, например, для изготовления ювелирных бус. Янтарь востребован алхимиками, так как в нем могут быть заключены давно исчезнувшие существа.
\n", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/zhyoltyj-sapfir.json b/test_tube_merchant/items/good/jewelry/zhyoltyj-sapfir.json new file mode 100755 index 0000000..12ae993 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/zhyoltyj-sapfir.json @@ -0,0 +1,40 @@ +{ + "name": "Жёлтый сапфир", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-square-orange-red.webp", + "system": { + "description": { + "value": "
Прозрачный огненно-жёлтый или жёлто-зелёный самоцвет.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/zoloto.json b/test_tube_merchant/items/good/jewelry/zoloto.json new file mode 100755 index 0000000..47a71a3 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/zoloto.json @@ -0,0 +1,40 @@ +{ + "name": "Золото", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Gold.png", + "system": { + "description": { + "value": "Золотой слиток, используется в различных ремеслах.", + "chat": "" + }, + "source": { + "custom": "КИ 157" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/zvyozdchatyj-rubin.json b/test_tube_merchant/items/good/jewelry/zvyozdchatyj-rubin.json new file mode 100755 index 0000000..71fcb17 --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/zvyozdchatyj-rubin.json @@ -0,0 +1,40 @@ +{ + "name": "Звёздчатый рубин", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-radiant-red.webp", + "system": { + "description": { + "value": "Полупрозрачный рубин с белым центром в форме звезды.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/jewelry/zvyozdchatyj-sapfir.json b/test_tube_merchant/items/good/jewelry/zvyozdchatyj-sapfir.json new file mode 100755 index 0000000..6b53aea --- /dev/null +++ b/test_tube_merchant/items/good/jewelry/zvyozdchatyj-sapfir.json @@ -0,0 +1,40 @@ +{ + "name": "Звёздчатый сапфир", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-asscher-blue.webp", + "system": { + "description": { + "value": "Полупрозрачный синий сапфир с белым центром в форме звезды.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/mechanical/dinamit-(shashka)-_-dynamite-(stick).json b/test_tube_merchant/items/good/mechanical/dinamit-(shashka)-_-dynamite-(stick).json new file mode 100755 index 0000000..3b37560 --- /dev/null +++ b/test_tube_merchant/items/good/mechanical/dinamit-(shashka)-_-dynamite-(stick).json @@ -0,0 +1,143 @@ +{ + "name": "Динамит (шашка) / Dynamite (stick)", + "type": "weapon", + "system": { + "description": { + "value": "В качестве действия существо может поджечь фитиль динамитной шашки и метнуть её в точку на расстоянии до 60 футов. Каждое существо в пределах 5 футов от этой точки должно пройти испытание Ловкости со СЛ 12, получая [[/r 3d6]] дробящего урона при провале или половину этого урона при успехе. Персонаж может связать вместе несколько динамитных шашек, чтобы они взорвались одновременно. Каждая дополнительная шашка повышает урон на [[/r 1d6]] (максимум до [[/r 10d6]]) и радиус взрыва на 5 футов (максимум до 20 футов).
Динамит можно снабдить удлинённым фитилём, чтобы он взорвался через заданное время, обычно от 1 до 6 раундов. Сделайте бросок инициативы за динамит. После заданного количества раундов динамит взорвётся при своём значении инициативы.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 12, + "scaling": "flat" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr" + ], + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "img": "icons/weapons/thrown/dynamite-black.webp", + "flags": { + "midi-qol": { + "fumbleThreshold": null, + "effectActivation": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "autoFailFriendly": false, + "rollOther": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "autoSaveFriendly": false + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + }, + "babele": { + "hasTranslation": true, + "originalName": "Dynamite (stick)", + "translated": true + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/mechanical/instrumenty-mehanika-_-tinker's-tools.json b/test_tube_merchant/items/good/mechanical/instrumenty-mehanika-_-tinker's-tools.json new file mode 100755 index 0000000..b0058cb --- /dev/null +++ b/test_tube_merchant/items/good/mechanical/instrumenty-mehanika-_-tinker's-tools.json @@ -0,0 +1,91 @@ +{ + "name": "Инструменты механика / Tinker's Tools", + "type": "tool", + "img": "icons/commodities/tech/cog-bronze.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Tinker's Tools" + }, + "test_tube_merchant": { + "quantity": "1d4 + 1" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для работы с механизмами. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПредназначен для того, чтобы чинить множество обычных предметов. И хотя вы не можете создать большинство из них инструментами механика, вы можете починить порвавшуюся одежду, наточить затупившийся меч и подлатать истрепавшуюся кольчугу.
\nКомпоненты. Инструменты механика включают в себя различные ручные инструменты, нитки, иголки, точильный камень, куски ткани и кожи, небольшую банку клея.
\nИстория. Вы можете определить возраст и происхождение предмета, даже если у вас в наличии всего несколько частей, оставшихся от оригинала.
\nРасследование. Когда вы осматриваете повреждённый предмет, вы узнаёте, как и насколько давно он был повреждён.
\nПочинка. Вы можете восстанавливать по 10 ПЗ повреждённого предмета за каждый час работы. Для починки любого предмета вам необходим доступ к материалам, необходимым для ремонта. Для металлических предметов вам нужен доступ к открытому огню, жара которого достаточно, чтобы сделать металл пластичным.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Временно починить повреждённый механизм | \n10 | \n
| Починить предмет вдвое быстрее | \n15 | \n
| Смастерить из хлама временный предмет | \n20 | \n
Механическая птица, поёт 1 из 3 песен по команде, не летает.
", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 12, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/mechanical/mehanicheskij-drakon.json b/test_tube_merchant/items/good/mechanical/mehanicheskij-drakon.json new file mode 100755 index 0000000..3b74e0c --- /dev/null +++ b/test_tube_merchant/items/good/mechanical/mehanicheskij-drakon.json @@ -0,0 +1,40 @@ +{ + "name": "Механический дракон", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/mechanicalDragon.png", + "system": { + "description": { + "value": "Механический дракон, дышит огнём и может поджигать объекты.
", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/mechanical/mehanicheskij-kon�.json b/test_tube_merchant/items/good/mechanical/mehanicheskij-kon�.json new file mode 100755 index 0000000..df0d401 --- /dev/null +++ b/test_tube_merchant/items/good/mechanical/mehanicheskij-kon�.json @@ -0,0 +1,40 @@ +{ + "name": "Механический конь", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/mechanicalHorse.png", + "system": { + "description": { + "value": "Механический конь, имеет те же параметры, что и ездовой конь.
", + "chat": "" + }, + "source": { + "custom": "ММ 336" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/mechanical/nochnye-ochki-_-goggles-of-night.json b/test_tube_merchant/items/good/mechanical/nochnye-ochki-_-goggles-of-night.json new file mode 100755 index 0000000..b48bece --- /dev/null +++ b/test_tube_merchant/items/good/mechanical/nochnye-ochki-_-goggles-of-night.json @@ -0,0 +1,172 @@ +{ + "name": "Ночные очки / Goggles of Night", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Goggles%20of%20Night.webp", + "effects": [ + { + "_id": "FR1ayX97qzN49D5m", + "changes": [ + { + "key": "system.attributes.senses.darkvision", + "mode": 2, + "value": "+60", + "priority": 7 + } + ], + "disabled": true, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "origin": "Item.dYkyr33IwTatdWJs", + "transfer": true, + "flags": {}, + "tint": "#ffffff", + "name": "Ночное зрение +60 футов", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "icons/magic/control/hypnosis-mesmerism-eye-tan.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "goggles%20of%20night_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Goggles of Night", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Пока вы носите эти тёмные линзы, у вас &reference[darkvision]{ночное зрение} на расстоянии до 60 футов. Если у вас уже было ночное зрение, ношение этих очков увеличивает его дистанцию на 60 футов.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/mechanical/poroh-(bochonok)-_-gunpowder-(keg).json b/test_tube_merchant/items/good/mechanical/poroh-(bochonok)-_-gunpowder-(keg).json new file mode 100755 index 0000000..5dcb1fa --- /dev/null +++ b/test_tube_merchant/items/good/mechanical/poroh-(bochonok)-_-gunpowder-(keg).json @@ -0,0 +1,114 @@ +{ + "name": "Порох (бочонок) / Gunpowder (keg)", + "type": "consumable", + "img": "icons/containers/barrels/barrel-reinforced-cherry-red.webp", + "system": { + "description": { + "value": "Порох в основном используется для стрельбы пулями из стволов пистолетов и винтовок или создания бомб. Порох продают небольшими деревянными бочонками и водостойкими пороховыми рожками. Если поджечь контейнер, наполненный порохом, он взорвётся, нанеся урон огнём существам в пределах 10 футов от себя — [[/r 7d6]]. Успешное испытание Ловкости со СЛ 12 уменьшает урон вдвое. Если поджечь унцию пороха, она будет ярко гореть 1 раунд, испуская @UUID[Compendium.laaru-dnd5-hw.conditions.EvGCMCVp1VpUtCbI]{яркий свет} в радиусе 30 футов и @UUID[Compendium.laaru-dnd5-hw.conditions.BbWvc4m610EHv070]{тусклый} ещё на 30 футов.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 20, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "7d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 12, + "scaling": "flat" + }, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Gunpowder (keg)", + "translated": true + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/eliksir-zdorov�ya-_-elixir-of-health.json b/test_tube_merchant/items/good/potions/eliksir-zdorov�ya-_-elixir-of-health.json new file mode 100755 index 0000000..3ebce94 --- /dev/null +++ b/test_tube_merchant/items/good/potions/eliksir-zdorov�ya-_-elixir-of-health.json @@ -0,0 +1,114 @@ +{ + "name": "Эликсир здоровья / Elixir of Health", + "type": "consumable", + "img": "icons/consumables/potions/potion-flask-corked-shiny-red.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "elixir%20of%20health_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 + 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Elixir of Health", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы исцеляете все болезни, которые на вас действовали, а также состояния слепоты, глухоты, паралича и отравления.
\nЭто прозрачная красная жидкость, в которой плавают пузырьки света.
\nТакой яд обычно изготавливают только @Compendium[laaru-dnd5-hw.monsters.XMHGgKpjb0Ss6dYl]{Дроу} и только вдали от солнечного света. Существо, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 13, при провале оно &reference[poisoned]{отравлено} на 1 час. При провале на 5 или более существо также &reference[unconscious]{теряет сознание}, пока отравлено таким образом. Существо приходит в сознание, если получает урон или когда другое существо разбудит его, потратив действие.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "poison", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/zel�e-chteniya-myslej-_-potion-of-mind-reading.json b/test_tube_merchant/items/good/potions/zel�e-chteniya-myslej-_-potion-of-mind-reading.json new file mode 100755 index 0000000..28e3c72 --- /dev/null +++ b/test_tube_merchant/items/good/potions/zel�e-chteniya-myslej-_-potion-of-mind-reading.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье чтения мыслей / Potion of Mind Reading", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Mind%20Reading.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20mind%20reading_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Mind Reading", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы получаете эффект заклинания @Compendium[laaru-dnd5-hw.spells.MSM1XtWei12DFoLN]{Обнаружение мыслей} (СЛ испытаний 13).
\nВ плотной пурпурной жидкости этого зелья плавает овальное розовое облачко.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "crewed": false, + "unidentified": { + "description": "В плотной пурпурной жидкости этого зелья плавает овальное розовое облачко.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/zel�e-geroizma-_-potion-of-heroism.json b/test_tube_merchant/items/good/potions/zel�e-geroizma-_-potion-of-heroism.json new file mode 100755 index 0000000..fa8cfb0 --- /dev/null +++ b/test_tube_merchant/items/good/potions/zel�e-geroizma-_-potion-of-heroism.json @@ -0,0 +1,135 @@ +{ + "name": "Зелье героизма / Potion of Heroism", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Heroism.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20heroism_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "effectActivation": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "rollOther": false, + "critOther": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Heroism", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы получаете 10 временных ПЗ на 1 час. На это же время вы находитесь под эффектом заклинания @Compendium[laaru-dnd5-hw.spells.jYsMCeg6AbSHzq1F]{Благословение} (концентрация не требуется).
Это синее зелье пузырится и испускает пар, будто кипит.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10", + "temphp" + ] + ], + "versatile": "" + }, + "formula": "1d4", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "Это синее зелье пузырится и испускает пар, будто кипит.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/zel�e-umen�sheniya-_-potion-of-diminution.json b/test_tube_merchant/items/good/potions/zel�e-umen�sheniya-_-potion-of-diminution.json new file mode 100755 index 0000000..09fb9cc --- /dev/null +++ b/test_tube_merchant/items/good/potions/zel�e-umen�sheniya-_-potion-of-diminution.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье уменьшения / Potion of Diminution", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Growth.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20diminution_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 + 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Diminution", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы получаете эффект уменьшения заклинания @Compendium[laaru-dnd5-hw.spells.ImfucJ4hO0mnf3W6]{Увеличение/уменьшение} на [[/r 1d4]] часа (концентрация не требуется).
Краснота внутри зелья то сжимается до крохотной точки, то вновь расширяется, окрашивая жидкость вокруг. Если встряхнуть бутылку. этот процесс не прерывается.
*Для визуализации заклинания, можете добавить макрос на панель быстрого доступа и воспользоваться им при выпивания зелья:
@UUID[Compendium.laaru-dnd5-hw.macro.PbsokcPJs6YZZ44T]{Изменение Размера}
Краснота внутри зелья то сжимается до крохотной точки, то вновь расширяется, окрашивая жидкость вокруг. Если встряхнуть бутылку. этот процесс не прерывается.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/zel�e-vysshego-isceleniya-_-potion-of-superior-healing.json b/test_tube_merchant/items/good/potions/zel�e-vysshego-isceleniya-_-potion-of-superior-healing.json new file mode 100755 index 0000000..8578d4c --- /dev/null +++ b/test_tube_merchant/items/good/potions/zel�e-vysshego-isceleniya-_-potion-of-superior-healing.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье высшего исцеления / Potion of Superior Healing", + "type": "consumable", + "img": "icons/consumables/potions/bottle-round-corked-red.webp", + "system": { + "description": { + "value": "Зелье — красная жидкость, которая мерцает, если её встряхнуть.
Персонаж, выпивший магическую красную жидкость из этого пузырька, восстанавливает [[/r 8d4+8]] пункта здоровья.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d4 + 8", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [ + "mgc" + ], + "unidentified": { + "description": "Зелье — красная жидкость, которая мерцает, если её встряхнуть.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Potion of Superior Healing" + }, + "test_tube_merchant": { + "quantity": "1d4 + 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/zel�e-yasnovideniya-_-potion-of-clairvoyance.json b/test_tube_merchant/items/good/potions/zel�e-yasnovideniya-_-potion-of-clairvoyance.json new file mode 100755 index 0000000..2819784 --- /dev/null +++ b/test_tube_merchant/items/good/potions/zel�e-yasnovideniya-_-potion-of-clairvoyance.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье ясновидения / Potion of Clairvoyance", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Clairvoyance.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20clairvoyance_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 + 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Clairvoyance", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы получаете эффект заклинания @Compendium[laaru-dnd5-hw.spells.IopVF9lETFjtZTK6]{Ясновидение}.
\nВ этой желтоватой жидкости плавает глаз, но как только зелье откроют, он исчезает.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "В этой желтоватой жидкости плавает глаз.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/potions/zloba-_-malice.json b/test_tube_merchant/items/good/potions/zloba-_-malice.json new file mode 100755 index 0000000..5c44548 --- /dev/null +++ b/test_tube_merchant/items/good/potions/zloba-_-malice.json @@ -0,0 +1,114 @@ +{ + "name": "Злоба / Malice", + "type": "consumable", + "img": "icons/consumables/potions/bottle-conical-fumes-green.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "malice_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Malice", + "translated": true + } + }, + "system": { + "description": { + "value": "(вдыхаемый)
\nСущество, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 15, при провале оно &reference[poisoned]{отравлено} на 1 час. Пока существо отравлено, оно &reference[blinded]{ослеплено}.
\n\n(оружейный)
\nЭтот яд надо собрать у мёртвой или &reference[incapacitated]{выведенной из строя} @Compendium[laaru-dnd5-hw.monsters.HsLTyUOpDJvXQRAE]{гигантской ядовитой змеи}. Существо, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 11, получая 10 ([[/r 3d6]]) урона ядом при провале или половину этого урона при успехе.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "poison", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/religious/maz�-keotoma-_-keoghtom's-ointment.json b/test_tube_merchant/items/good/religious/maz�-keotoma-_-keoghtom's-ointment.json new file mode 100755 index 0000000..888117c --- /dev/null +++ b/test_tube_merchant/items/good/religious/maz�-keotoma-_-keoghtom's-ointment.json @@ -0,0 +1,119 @@ +{ + "name": "Мазь кеотома / Keoghtom's Ointment", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Keoghtom%27s%20Ointment.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "keoghtom's%20ointment_dmg" + }, + "test_tube_merchant": { + "quantity": "(1d2 - 1) * 1d2" + }, + "babele": { + "hasTranslation": true, + "originalName": "Keoghtom's Ointment", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Эта стеклянная банка диаметром 3 дюйма содержит [[/r 1d4 + 1]] порции густой смеси со слабым ароматом алоэ. Банка с содержимым весит 4 фунта.
В качестве действия можно проглотить или намазать одну порцию мази, при этом существо восстанавливает [[/r 2d8 + 2]] ПЗ, перестаёт быть &reference[poisoned]{отравленным} и исцеляется от любых болезней.
Требует настроенности друида, жреца или колдуна
Вы можете использовать действие, чтобы произнести командное слово и бросить посох наземь в пределах 10 футов от себя. Посох станет @Compendium[laaru-dnd5-hw.monsters.qS4RxBHWhSSMzZm8]{гигантским удавом} под вашим контролем, который совершает ходы при собственном значении инициативы. Если использовать бонусное действие, чтобы снова произнести командное слово, посох вернётся в обычную форму и останется на месте, где раньше был удав.
В свой ход вы можете мысленно отдать удаву приказ, если он в пределах 60 футов от вас и вы не &reference[incapacitated]{выведены из строя}. Вы можете решить, какое действие удав совершит и куда переместится в свой следующий ход, а можете и отдать приказ общего характера, например атаковать ваших врагов или охранять место.
Если ПЗ удава снижаются до 0, он умирает и превращается обратно в посох, а тот трескается и уничтожается. Если змея превратилась в посох до того, как потеряла все свои ПЗ, она полностью их восстанавливает.
Заклинание, дающее рекомендации к грядущим действиям.
Вы можете задать один вопрос, связанный с конкретной целью, событиями или деятельностью, которые случатся в ближайшие 7 дней. Мастер даст правдивый ответ. Этот ответ может быть короткой фразой, загадочным стихотворением или таинственным пророчеством.
", + "chat": "" + }, + "source": { + "custom": "КИ 264" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 210, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/religious/zaklinanie_-razgovor-s-myortvymi.json b/test_tube_merchant/items/good/religious/zaklinanie_-razgovor-s-myortvymi.json new file mode 100755 index 0000000..2d40019 --- /dev/null +++ b/test_tube_merchant/items/good/religious/zaklinanie_-razgovor-s-myortvymi.json @@ -0,0 +1,40 @@ +{ + "name": "Заклинание: Разговор с мёртвыми", + "type": "loot", + "img": "icons/magic/death/undead-ghost-scream-teal.webp", + "system": { + "description": { + "value": "Позволяет поговорить мертвецом (не нежитью).", + "chat": "" + }, + "source": { + "custom": "КИ 271" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 90, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/religious/zaklinanie_-snyatie-proklyat�ya.json b/test_tube_merchant/items/good/religious/zaklinanie_-snyatie-proklyat�ya.json new file mode 100755 index 0000000..09f4911 --- /dev/null +++ b/test_tube_merchant/items/good/religious/zaklinanie_-snyatie-proklyat�ya.json @@ -0,0 +1,40 @@ +{ + "name": "Заклинание: Снятие проклятья", + "type": "loot", + "img": "icons/magic/unholy/hand-light-pink.webp", + "system": { + "description": { + "value": "Снимает проклятье или связь с проклятым предметом.", + "chat": "" + }, + "source": { + "custom": "КИ 278" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 90, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Aura-chistoty-_-Aura-of-purity.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Aura-chistoty-_-Aura-of-purity.json new file mode 100755 index 0000000..365c675 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Aura-chistoty-_-Aura-of-purity.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура чистоты / Aura of purity", + "img": "icons/creatures/birds/songbird-yellow-flying.webp", + "system": { + "description": { + "value": "
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Aura-zhizni-_-Aura-of-life.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Aura-zhizni-_-Aura-of-life.json new file mode 100755 index 0000000..8bf07eb --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Aura-zhizni-_-Aura-of-life.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура жизни / Aura of life", + "img": "icons/magic/life/cross-yellow-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Энергия жизни исходит от вас в ауре радиусом 30 футов. Пока длится заклинание, аура перемещается вместе с вами — вы остаётесь в её центре. Каждое невраждебное существо в ауре (включая вас) получает @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к некротическому урону, а его максимум ПЗ нельзя уменьшить. Кроме того, каждое невраждебное живое существо внутри ауры восстанавливает 1 ПЗ, когда начинает свой ход в ауре с 0 ПЗ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bar�er-dlya-zhizni-_-Antilife-shell.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bar�er-dlya-zhizni-_-Antilife-shell.json new file mode 100755 index 0000000..4faea65 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bar�er-dlya-zhizni-_-Antilife-shell.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Барьер для жизни / Antilife shell", + "img": "icons/magic/control/debuff-chains-ropes-net-red-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Мерцающий барьер окружает вас в радиусе 10 футов и перемещается вместе с вами — вы остаетесь в его центре. Он ограждает вас от всех существ, кроме нежити и конструкций. Барьер существует, пока длится заклинание.
\nБарьер не даёт существу, на которое влияет, ни пройти, ни протянуться через него. Такое существо может творить заклинания, а также атаковать дистанционным или длинным оружием сквозь барьер.
\nЕсли вы перемещаетесь так, что подобное существо вынуждено пройти через барьер, заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bezuderzhnaya-plyaska-Otto-_-Otto’s-irresistible-dance.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bezuderzhnaya-plyaska-Otto-_-Otto’s-irresistible-dance.json new file mode 100755 index 0000000..85fa039 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bezuderzhnaya-plyaska-Otto-_-Otto’s-irresistible-dance.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Безудержная пляска Отто / Otto’s irresistible dance", + "img": "icons/skills/trades/music-notes-sound-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите одно существо, которое видите в пределах дистанции. Цель начинает смешно танцевать на месте: она будет дёргаться, притопывать и подпрыгивать, пока длится заклинание. Существа, которых нельзя &reference[charmed]{обворожить}, невосприимчивы к этому заклинанию.
Пляшущее существо должно тратить всё своё перемещение на танец, не покидая своего места, и получает помеху к испытаниям Ловкости и броскам атак. Пока заклинание влияет на цель, другие существа получают преимущество к броскам атаки по ней. В качестве действия танцующее существо может пройти испытание Мудрости, чтобы вернуть самоконтроль. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bolezn�-_-Contagion.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bolezn�-_-Contagion.json new file mode 100755 index 0000000..30d1daa --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bolezn�-_-Contagion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Болезнь / Contagion", + "img": "icons/magic/acid/dissolve-arm-flesh.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Ваше касание передаёт болезнь. Совершите атаку заклинанием в ближнем бою по существу в пределах вашей зоны досягаемости. При попадании цель &reference[poisoned]{отравлена }
В конце каждого своего хода отравленная цель должна пройти испытание Выносливости. Успешно пройдя испытание трижды, цель перестаёт быть отравленной, и заклинание прекращает действовать. Провалив испытание трижды, цель перестаёт быть отравленной, но заражается одной из болезней, описанных далее, на ваш выбор. Существо страдает этой болезнью, пока длится заклинание.
Поскольку это заклинание создает у цели естественную болезнь, любой эффект, исцеляющий или снимающий болезнь, действует на нее.
Воспаление мозга. Существо начинает бредить. Оно получает помеху к проверкам и испытаниям Интеллекта и ведёт себя в бою так, как будто оно под влиянием заклинания замешательство.
Гангрена. Плоть существа начинает гнить. Оно получает помеху к проверкам Харизмы и @UUID[Compendium.laaru-dnd5-hw.conditions.1DDNdECOUhTph3ui]{уязвимость} к любому урону.
Заражение крови. Дрожь и озноб охватывают тело существа. Оно получает помеху к проверкам и испытаниям Силы, а также броскам атаки, связанным с Силой.
Припадок. Существо начинает неудержимо трясти. Оно получает помеху к проверкам и испытаниям Ловкости, а также броскам атаки, связанным с Ловкостью.
Слепящий недуг. Боль охватывает разум существа, а его глаза становятся молочно-белыми. Оно &reference[blinded]{ слепнет} и получает помеху к проверками испытаниям Мудрости.
Склизкая погибель. Существо начинает неудержимо истекать кровью. Оно получает помеху к проверкам и испытаниям Выносливости. Кроме того, когда существо получает любой урон, оно оказывается &reference[stunned]{в шоке } до конца своего следующего хода.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "7", + "units": "day" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "9", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bozhestvennoe-otkrovenie-_-Commune.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bozhestvennoe-otkrovenie-_-Commune.json new file mode 100755 index 0000000..c7310e4 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bozhestvennoe-otkrovenie-_-Commune.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Божественное откровение / Commune", + "img": "icons/sundries/lights/candles-lit-red-evil.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы связываетесь со своим божеством или его посланником и задаёте не более трех вопросов, на которые можно ответить «да» или «нет». Вы должны задать вопросы, пока длится заклинание.
Вы получите точные ответы на все вопросы. Впрочем, даже божества не всегда всеведущи, так что вы можете получить ответ «неизвестно», если божество не знает того, что вам надо. В случае если односложный ответ может быть неправильно понят или противоречить интересам божества, мастер может дать ответ короткой фразой.
Если вы сотворите заклинание два или более раза, прежде чем завершите долгий отдых, появляется накапливающийся шанс (25% ([[/r 1d100]]) за каждое сотворение после первого), что вы не получите ответ. Мастер делает этот бросок тайно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bystryy-kolchan-_-Swift-Quiver.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bystryy-kolchan-_-Swift-Quiver.json new file mode 100755 index 0000000..a553009 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Bystryy-kolchan-_-Swift-Quiver.json @@ -0,0 +1,115 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Быстрый колчан / Swift Quiver", + "img": "icons/containers/ammunition/arrows-quiver-purple-silver.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Теперь ваш колчан содержит бесконечный запас немагических боеприпасов, которые будто сами прыгают вам в руку, стоит за ними потянуться.
В каждый ваш ход, пока длится заклинание, вы можете использовать бонусное действие, чтобы совершить две атаки оружием, тратящим боеприпасы из колчана. Каждый раз, когда вы совершаете такую дистанционную атаку, ваш колчан магически заменяет использованный вами боеприпас аналогичным немагическим боеприпасом. Все боеприпасы, созданные этим заклинанием, исчезают, когда заклинание прекращает действовать. Если колчан более не в вашем распоряжении, заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "mgc" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Chyornye-shchupalьtsa-Evarda-_-Evard’s-black-tentacles.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Chyornye-shchupalьtsa-Evarda-_-Evard’s-black-tentacles.json new file mode 100755 index 0000000..de059fb --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Chyornye-shchupalьtsa-Evarda-_-Evard’s-black-tentacles.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Чёрные щупальца Эварда / Evard’s black tentacles", + "img": "icons/creatures/tentacles/tentacles-octopus-black-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Извивающиеся угольно-чёрные щупальца заполняют 20-футовый квадрат на земле в месте, которое вы видите в пределах дистанции. Пока длится заклинание, щупальца превращают область заклинания в &reference[difficultterrain]{пересечённую местность}.
Существо, которое входит в область заклинания впервые за ход или начинает в ней свой ход, должно пройти испытание Ловкости. При провале оно получает [[/r 3d6]] дробящего урона и &reference[restrained]{обездвижено} щупальцами, пока длится заклинание. Обездвиженное щупальцами существо, которое начинает свой ход в области, получает [[/r 3d6]] дробящего урона.
Существо, &reference[restrained]{обездвиженное} щупальцами, может использовать действие, чтобы пройти проверку Силы или Ловкости (на свой выбор). СЛ равна СЛ испытаний против ваших заклинаний. При успехе существо освобождается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dezintegratsiya-_-Disintegrate.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dezintegratsiya-_-Disintegrate.json new file mode 100755 index 0000000..8ed7891 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dezintegratsiya-_-Disintegrate.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дезинтеграция / Disintegrate", + "img": "icons/magic/earth/strike-body-stone-crumble.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Тонкий зелёный луч срывается с вашего указательного пальца и поражает цель, которую вы видите в пределах дистанции. Целью может быть существо, объект или творение магической силы вроде стены, созданной заклинанием силовая стена.
Существо, ставшее целью этого заклинания, должно пройти испытание Ловкости. При провале цель получает [[/r 10d6 + 40]] урона силой. Если этот урон оставляет цель с 0 ПЗ, она дезинтегрирована.
Дезинтегрированное существо и всё, что оно носит или держит, кроме магических предметов, превращается в кучку мелкой серой пыли. Существо можно вернуть к жизни только заклинаниями @Compendium[laaru-dnd5-hw.spells.a6jbQhAxlZcgQ2Qb]{Истинное воскрешение} или @Compendium[laaru-dnd5-hw.spells.3DmrqW87SyWdaa8T]{Желание}
Заклинание автоматически дезинтегрирует любой немагический объект или творение магической силы, если они крупного @UUID[Compendium.laaru-dnd5-hw.conditions.sDPntYBdmN7jMZc6]{размера} или меньше. Если цель огромного размера или более, заклинание дезинтегрирует только её часть объёмом с 10-футовый куб. На магические предметы заклинание не действует.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, урон увеличивается на [[/r 3d6]] за каждый круг ячейки выше 6-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d6 + 40", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Drevesnyy-put�-_-Tree-Stride.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Drevesnyy-put�-_-Tree-Stride.json new file mode 100755 index 0000000..01601ff --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Drevesnyy-put�-_-Tree-Stride.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Древесный путь / Tree Stride", + "img": "icons/magic/nature/tree-elm-roots-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы получаете способность войти в дерево и переместиться из него в другое дерево того же вида в пределах 500 футов. Оба дерева должны быть живыми и хотя бы не меньшего размера, чем вы. Вам требуется потратить 5 футов перемещения, чтобы войти в дерево. Вы немедленно узнаете местоположение других деревьев того же вида в пределах 500 футов и, в качестве части того же перемещения, которым вошли в дерево, можете переместиться в одно из этих деревьев или выйти из того дерева, в которое вошли. Вы появляетесь в выбранной вами точке в пределах 5 футов от дерева, служащего местом назначения, потратив еще 5 футов перемещения. Если у вас не осталось перемещения, вы появляетесь в пределах 5 футов от дерева, в которое вошли изначально.
\nМожете использовать этот способ перемещения раз в раунд, пока длится заклинание. Каждый ход вы должны заканчивать вне дерева.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dver�-v-prostranstve-_-Dimension-Door.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dver�-v-prostranstve-_-Dimension-Door.json new file mode 100755 index 0000000..6cf96a6 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dver�-v-prostranstve-_-Dimension-Door.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дверь в пространстве / Dimension Door", + "img": "icons/commodities/treasure/stone-cracked-lightning-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы телепортируетесь из своего текущего местоположения в любую другую точку в пределах дистанции. Вы попадаете точно в желаемую точку. Это может быть место, которое вы видите либо которое можете представить или описать, назвав расстояние и направление, например: «200 футов прямо вниз» или «вверх на северо-запад под углом 45 градусов, на 300 футов».
\nВы можете брать с собой объекты, если их вес не превышает вашу грузоподъемность. Можете также взять с собой одно согласное существо вашего размера или меньше, снаряжение которого не превышает его грузоподъемность. Существо должно быть в пределах 5 фугов от вас, когда вы творите заклинание.
\nЕсли вы должны попасть в место, уже занятое объектом или существом, вы и любое существо, телепортировавшееся с вами, получаете по [[/r 4d6]] урона силой и заклинание вас не телепортирует.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": 500, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dvizhenie-grunta-_-Move-Earth.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dvizhenie-grunta-_-Move-Earth.json new file mode 100755 index 0000000..e4e5e33 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Dvizhenie-grunta-_-Move-Earth.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Движение грунта / Move Earth", + "img": "icons/skills/trades/mining-pickaxe-yellow-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите область земной поверхности размером не более чем 40 футов по любой стороне в пределах дистанции. Вы можете изменить форму глины, песка или земли в области любым образом на свой выбор, пока длится заклинание. Можете поднять или опустить уровень грунта, создать или заполнить овраг, воздвигнуть или срыть стену или столп. Масштабы этих изменений не могут выходить за половину наибольшего из измерений области. То есть, если вы меняете 40-футовый квадрат, можете создать столп до 20 футов высотой, поднять или опустить квадрат в пределах 20 футов, вырыть траншею глубиной до 20 футов и так далее. На совершение изменений уходит 10 минут.
\nПо истечении каждых 10 минут, потраченных на концентрацию на заклинании, вы можете выбрать новую область поверхности, на которую воздействуете.
\nПоскольку изменение поверхности происходит медленно, существа в области, как правило, не попадают в ловушку и не получают урона от движения грунта.
\nЗаклинание не может манипулировать природным камнем и каменными сооружениями. Камни и строения просто перемещаются с учётом новой поверхности. Если из-за ваших изменений строение потеряет равновесие, оно может обрушиться.
\nТакже заклинание не влияет на растения напрямую. При перемещении земля переносит растения вместе с собой.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "2", + "units": "hour" + }, + "cover": null, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Edinenie-s-prirodoy-_-Commune-with-Nature.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Edinenie-s-prirodoy-_-Commune-with-Nature.json new file mode 100755 index 0000000..ba711f6 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Edinenie-s-prirodoy-_-Commune-with-Nature.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Единение с природой / Commune with Nature", + "img": "icons/magic/nature/leaf-juggle-humanoid-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
На краткое время вы становитесь едины с природой и получаете знания об окружающей территории. Под открытым небом заклинание даёт вам знания о местности в пределах 3 миль от вас. В пещерах и прочих естественных подземельях радиус ограничен 300 футами. Там, где природу заменили постройки, например в городах и рукотворных подземельях, заклинание не работает.
\nВы мгновенно узнаёте до трёх фактов об округе, относящихся к любым из этих тем на ваш выбор:
\nК примеру, вы можете определить местоположение могущественной нежити, основных источников питьевой воды и ближайших городов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "ritual", + "vocal", + "somatic", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Geys-_-Geas.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Geys-_-Geas.json new file mode 100755 index 0000000..7a94f59 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Geys-_-Geas.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Гейс / Geas", + "img": "icons/magic/control/hypnosis-mesmerism-eye.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы отдаёте магический приказ существу, которое видите в пределах дистанции, и заставляете его сослужить некую службу или воздержаться от некоего действия или деятельности, которую вы выберете. Если существо может понять вас, оно должно пройти испытание Мудрости, при провале оно будет &reference[charmed]{обворожено } вами, пока длится заклинание. Пока существо обворожено вами, оно получает [[/r 5d10]] психического урона каждый раз, когда его действия противоречат вашим приказам, но не чаще раза в день. На существо, которое вас не понимает, заклинание не действует.
Вы можете отдать любой приказ, кроме такого, который приведёт цель к верной смерти. Если вы отдадите самоубийственный приказ, заклинание прекращает действовать.
Вы можете прекратить заклинание досрочно, потратив действие. Его также можно прекратить заклинаниями
@Compendium[laaru-dnd5-hw.spells.lFqzcFBz3F0u96i1]{Высшее восстановление}
@Compendium[laaru-dnd5-hw.spells.Y5EfiRqmCWKJ7Qhk]{Снятие проклятия}
@Compendium[laaru-dnd5-hw.spells.3DmrqW87SyWdaa8T]{Желание}.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го или 8-го круга, его длительность составит 1 год. Если использовать ячейку 9-го круга, заклинание длится, пока его не прекратят одним из упомянутых выше заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "30", + "units": "day" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d10", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Gigantskoe-nasekomoe-_-Giant-Insect.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Gigantskoe-nasekomoe-_-Giant-Insect.json new file mode 100755 index 0000000..9853380 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Gigantskoe-nasekomoe-_-Giant-Insect.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Гигантское насекомое / Giant Insect", + "img": "icons/creatures/invertebrates/beetle-stag-tan-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы превращаете до десяти многоножек, трех пауков, пяти ос или одного скорпиона в пределах дистанции в их гигантские варианты. На время, пока длится заклинание, они становятся гигантскими многоножками, гигантскими пауками, гигантскими осами или гигантским скорпионом соответственно
\nКаждое из этих существ подчиняется вашим устным приказам. В бою они действуют в ваш ход каждый раунд. У мастера есть параметры этих существ, он разыгрывает их действия и перемещение.
\nСущество остаётся гиганским, пока длится заклинание, пока его ПЗ не снизятся до 0 или пока вы не прекратите эффект, потратив действие.
\nС разрешения мастера вы можете выбрать другие цели. К примеру, если вы превратите пчелу, она может получить параметры гигантской осы.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Groznye-ochi-_-Eyebite.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Groznye-ochi-_-Eyebite.json new file mode 100755 index 0000000..ef0ef99 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Groznye-ochi-_-Eyebite.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Грозные очи / Eyebite", + "img": "icons/magic/nature/stealth-hide-eyes-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, ваши глаза наполняются чернильно-чёрной пустотой, в которой таится ужасающая мощь. Одно выбранное вами существо в пределах 60 футов от вас, которое вы видите, должно пройти испытание Мудрости. При провале на него воздействует один из этих эффектов на ваш выбор, пока длится заклинание. В каждый ваш ход, пока длится заклинание, можете использовать действие, чтобы выбрать целью другое существо, но не то, которое успешно прошло испытание против этого конкретного сотворения заклинания.
Болезнь. Цель получает помеху к броскам атак и проверкам характеристик. В конце каждого своего хода цель может пройти еще одно испытание Мудрости. При успехе эффект прекращается
Паника. Цель &reference[frightened]{испугана} вами. В каждый свой ход испуганное существо должно совершать действие Рывок и перемещаться как можно дальше от нас кратчайшим и безопасным путем, если ему есть куда бежать. Если цель переместится как минимум на 60 футов от вас и не будет вас больше видеть, эффект прекращается.
Усыпление. Цель &reference[unconscious]{теряет сознание}. Она приходит в себя, если получает урон или если другое существо использует действие, чтобы пробудить его.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Illyuzornaya-mestnost�-_-Hallucinatory-Terrain.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Illyuzornaya-mestnost�-_-Hallucinatory-Terrain.json new file mode 100755 index 0000000..a80643f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Illyuzornaya-mestnost�-_-Hallucinatory-Terrain.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Иллюзорная местность / Hallucinatory Terrain", + "img": "icons/magic/nature/tree-twisted-glow-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы заставляете естественную местность размером со 150-футовый куб в пределах дистанции выглядеть, звучать и пахнуть в точности как иной тип естественной местности. Просторные поля или дороги могут напоминать болота, холмы, овраги или иную пересечённую или непроходимую местность. Пруд может казаться цветущей лужайкой, обрыв — плавным склоном, а каменистое ущелье — широкой и чистой дорогой. Рукотворные строения, снаряжение и существа в пределах области не меняют свой облик.
\nМестность не меняется и на ощупь, так что существа, вошедшие в область, могут разоблачить иллюзию. Если разница на ощупь неочевидна, то существо может тщательно изучить иллюзию и пройти проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Существо, которое распознало иллюзию, видит её как туманный образ, наложенный на местность.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "150", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Istinnoe-videnie-_-True-Seeing.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Istinnoe-videnie-_-True-Seeing.json new file mode 100755 index 0000000..e8c7cf5 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Istinnoe-videnie-_-True-Seeing.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Истинное видение / True Seeing", + "img": "icons/magic/perception/eye-slit-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание даёт согласному существу, которого вы коснулись, способность видеть вещи такими, какие они на самом деле. Пока длится заклинание, у существа есть истинное зрение, оно замечает потайные двери, скрытые магией, и может видеть Эфирный план (всё это — в пределах 120 футов).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgnanie-_-Banishment.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgnanie-_-Banishment.json new file mode 100755 index 0000000..a542bf3 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgnanie-_-Banishment.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изгнание / Banishment", + "img": "icons/magic/control/silhouette-grow-shrink-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь отправить одно существо, которое видите в пределах дистанции, на другой план бытия. Цель должна пройти испытание Харизмы, при провале она изгнана.
Если цель родом с того же плана, где вы находитесь, она изгнана в безвредный демиплан. Цель &reference[incapacitated]{выведена из строя}, пока там находится. Она остаётся там, пока длится заклинание, после чего снова появляется на месте, где раньше находилась, или в ближайшем незанятом пространстве, если прежнее место занято.
Если цель родом с иного плана бытия, она с негромким хлопком исчезает и возвращается на родной план. Если заклинание прекратится раньше, чем прошла 1 минута, цель появится на месте, где раньше находилась, или в ближайшем незанятом пространстве, если прежнее место занято. В противном случае цель не возвращается вовсе.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 4-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgonyayushchaya-kara-_-Banishing-Smite.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgonyayushchaya-kara-_-Banishing-Smite.json new file mode 100755 index 0000000..b94dd38 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgonyayushchaya-kara-_-Banishing-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изгоняющая кара / Banishing Smite", + "img": "icons/magic/control/silhouette-fall-slip-prone.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием, пока длится заклинание, ваше оружие наделяется силой и атака дополнительно наносит цели [[/r 5d10]] урона силой. Кроме того, если атака снижает ПЗ цели до 50 и менее, вы изгоняете её. Если цель родом с иного плана бытия, она исчезает и возвращается на родной план. Если цель родом с того же плана, где вы находитесь, она изгнана в безвредный демиплан. Цель &reference[incapacitated]{выведена из строя}, пока там находится. Она остаётся там, пока длится заклинание, после чего снова появляется на месте, где раньше находилась, или в ближайшем незанятом пространстве, если прежнее место занято,
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d10", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgotovlenie-_-Fabricate.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgotovlenie-_-Fabricate.json new file mode 100755 index 0000000..87f28d8 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izgotovlenie-_-Fabricate.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изготовление / Fabricate", + "img": "icons/skills/trades/smithing-anvil-silver-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы превращаете сырьё в готовое изделие, изготовленное из него. К примеру, вы можете создать деревянный мост из брёвен, верёвку из пеньки или одежду из льна или шерсти.
\nВыберите сырьё, которое видите в пределах дистанции. Вы можете создать объект крупного &reference[size]{размера} или меньше (он должен поместиться в пределах 10-футового куба или восьми соединённых 5-футовых кубов), причём у вас должно быть достаточно сырья. Если вы работаете с металлом, камнем или иными минералами, изготовленный объект не может быть больше среднего размера (он должен поместиться в пределах одного 5-футового куба). Качество предметов, созданных заклинанием, соответствует качеству сырья.
\nС помощью заклинания нельзя создать существ и магические предметы или использовать их в качестве сырья. Вы также не можете создавать предметы, требующие высокого мастерства, например ювелирные украшения, оружие, стекло или броню, если только у вас нет умения в обращении с инструментами ремесленника для создания соответствующих предметов.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izlechenie-_-Heal.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izlechenie-_-Heal.json new file mode 100755 index 0000000..5f21c02 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Izlechenie-_-Heal.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Излечение / Heal", + "img": "icons/magic/life/heart-cross-strong-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выберите существо, которое видите в пределах дистанции. Его окутывает прилив позитивной энергии, восстанавливающий ему 70 ПЗ. Заклинание также снимает с цели &reference[blinded]{слепоту}, &reference[deafened]{глухоту} и любые болезни. Заклинание не действует на конструкции и нежить.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, исцеление увеличивается на 10 за каждый круг ячейки выше 6-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "70", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Kamennaya-kozha-_-Stoneskin.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Kamennaya-kozha-_-Stoneskin.json new file mode 100755 index 0000000..e55b32d --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Kamennaya-kozha-_-Stoneskin.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Каменная кожа / Stoneskin", + "img": "icons/magic/earth/strike-fist-stone-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Kamennaya-stena-_-Wall-of-Stone.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Kamennaya-stena-_-Wall-of-Stone.json new file mode 100755 index 0000000..15b080c --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Kamennaya-stena-_-Wall-of-Stone.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Каменная стена / Wall of Stone", + "img": "icons/environment/settlement/fence-stone-brick.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Немагическая стена из твердого камня появляется в выбранной вами точке в пределах дистанции. Стена толщиной 6 дюймов и состоит из десяти участков размером 10 на 10 футов. Все участки должны быть состыкованы в единое целое. Как вариант, вы можете создать участки размером 10 на 20 футов, но толщиной всего 3 дюйма.
\nЕсли стена при появлении проходит через пространство, занимаемое существом, она выталкивает его по одну из сторон стены (на ваш выбор). Если существо оказывается окружено со всех сторон стеной (или стеной и другой твёрдой поверхностью), оно может пройти испытание Ловкости. При успехе оно может использовать ответное действие, чтобы переместиться на расстояние вплоть до значения своей скорости так, чтобы стена его больше не окружала.
\nСтена может принять любую форму на ваш выбор, но не может занимать одно пространство с существом или объектом. Стена не обязана быть вертикальной или опираться на твёрдое основание. Однако она должна сливаться с уже существующим камнем, чтобы он ее поддерживал. Таким образом можно перекинуть мост через пропасть или создать наклонный подъём.
\nЕсли вы создаёте пролёт длиннее 20 футов, придётся вдвое уменьшить размер каждого участка, чтобы создать опоры. Можете создать на стене грубо сделанные зубцы, бойницы и другие простые детали на ваш выбор. Стена — это каменный объект, который можно повредить или пробить. У каждого её участка КБ 15 и по 30 ПЗ за каждый дюйм толщины. Если довести ПЗ участка до 0, он будет уничтожен, а связанные с ним соседние участки могут обвалиться, если так решит мастер.
\nЕсли вы концентрируетесь на заклинании всю его длительность, стена становится постоянной и её нельзя будет рассеять. В противном случае стена исчезает, когда заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Koldovskoy-sosud-_-Magic-Jar.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Koldovskoy-sosud-_-Magic-Jar.json new file mode 100755 index 0000000..d7a17f1 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Koldovskoy-sosud-_-Magic-Jar.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Колдовской сосуд / Magic Jar", + "img": "icons/commodities/tech/tube-chamber-lightning.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Ваше тело погружается в состояние анабиоза, а ваша душа покидает его и помещается в сосуд, использо- ванный как реагент при сотворении. Пока ваша душа находится в сосуде, вы воспринимаете, что происходит вокруг, как если бы находились на месте сосуда. Однако вы не можете перемещаться и использовать ответные действия. Единственное доступное вам действие — спроецировать свою душу в пределах 100 футов от сосуда и либо вернуться в своё живое тело (после чего заклинание прекращается), либо попытаться вселиться в тело гуманоида.
\nВы можете попытаться вселиться в тело любого гуманоида в пределах 100 футов от вас, которое вы видите (нельзя вселяться в существ, защищенных такими заклинаниями, как @Compendium[laaru-dnd5-hw.spells.31Wl6sI9H1RspwYu]{Защита от зла и от добра} или @Compendium[laaru-dnd5-hw.spells.9EdFCD8XJNdmJmrn]{Магический круг}). Цель должна пройти испытание Харизмы. При провале ваша душа занимает тело цели, а душа цели оказывается заперта в сосуде. При успехе цель отбивает вашу попытку похитить её тело, и вы не можете снова попытаться вселиться в неё ближайшие 24 часа.
\nВселившись в чужое тело, вы его контролируете. Вы используете игровые параметры захваченного тела, но сохраняете своё мировоззрение и значения Интеллекта, Мудрости и Харизмы. Вы также сохраняете свои классовые особенности. Если у цели были уровни в классах, вы не можете воспользоваться ее классовыми особенностями.
\nТем временем душа существа, чьё тело вы похитили, воспринимает все, что происходит вокруг сосуда, но не может перемещаться или совершать действия. Пока вы вселились в чужое тело, вы можете использовать действие, чтобы вернуться из тела в сосуд, если он в пределах 100 футов от вас, при этом душа существа вернётся в своё тело.
\nЕсли чужое тело умрёт, пока вы в нем находитесь, существо умирает, а вы должны пройти испытание Харизмы со СЛ, равной СЛ испытаний против ваших заклинаний. При успехе вы возвращаетесь в сосуд, если он в пределах 100 футов от вас. В ином случае вы умираете.
\nЕсли сосуд уничтожен или заклинание прекращает действовать, ваша душа немедленно возвращается в ваше тело. Если ваше тело находится дальше чем в 100 футах от вас или уже мертво на момент возвращения, вы умираете. Если в момент, когда сосуд был уничтожен, в нем находилась душа другого существа, эта душа возвращается в своё тело, если оно ещё живо и в пределах 100 футов. В ином случае это существо умирает.
\nКогда заклинание прекращает действовать, сосуд уничтожается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Konus-kholoda-_-Cone-of-cold.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Konus-kholoda-_-Cone-of-cold.json new file mode 100755 index 0000000..f6c606c --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Konus-kholoda-_-Cone-of-cold.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Конус холода / Cone of cold", + "img": "icons/magic/air/wind-tornado-wall-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Волна холодного воздуха срывается с ваших рук. Каждое существо в 60-футовом конусе должно пройти испытание Выносливости. Существо получает [[/r 8d8]] урона холодом при провале или половину этого урона при успехе. Существо, убитое этим заклинанием, становится ледяной статуей, пока не растает.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 5-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d8", + "cold" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-moshchi-_-Circle-of-Power.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-moshchi-_-Circle-of-Power.json new file mode 100755 index 0000000..d522059 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-moshchi-_-Circle-of-Power.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Круг мощи / Circle of Power", + "img": "icons/magic/light/orb-shadow-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-smerti-_-Circle-of-Death.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-smerti-_-Circle-of-Death.json new file mode 100755 index 0000000..cba27ac --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-smerti-_-Circle-of-Death.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Круг смерти / Circle of Death", + "img": "icons/creatures/eyes/void-single-black-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Сфера негативной энергии радиусом 60 футов вырывается из точки в пределах дистанции. Каждое существо в этой области должно пройти испытание Выносливости. Цель получает [[/r 8d6]] некротического урона при провале или половину этого урона при успехе.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, урон увеличивается на [[/r 2d6]] за каждый круг ячейки выше 6-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d6", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-teleportatsii-_-Teleportation-Circle.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-teleportatsii-_-Teleportation-Circle.json new file mode 100755 index 0000000..088e031 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Krug-teleportatsii-_-Teleportation-Circle.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Круг телепортации / Teleportation Circle", + "img": "icons/magic/symbols/runes-star-pentagon-orange-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Когда вы сотворяете заклинание, вы рисуете на земле круг диаметром 10 футов, испещрённый по краям символами. Он связывает место, где вы находитесь, с постоянным кругом телепортации на ваш выбор, последовательность символов которого вы знаете и который находится с вами на одном плане бытия. В круге открывается мерцающий портал, который остаётся там до конца вашего следующего хода. Любое существо, войдя в портал, мгновенно окажется в пределах 5 футов от круга назначения или в ближайшем незанятом пространстве рядом с ним, если это место занято.
На территории многих крупных храмов, гильдий и прочих важных мест есть постоянные круги телепортации. Каждому такому кругу соответствует последовательность символов – магических рун, расположенных в виде определённого узора. Когда вы впервые получаете возможность творить это заклинание, вы узнаете последовательности символов для двух мест на Материальном плане по усмотрению вашего мастера. Другие последовательности символов вы можете узнать в ходе ваших приключений. Вы можете запомнить новую последовательность символов, после того как потратите 1 минуту на ее изучение.
Вы можете создать постоянный круг телепортации, сотворяя это заклинание на одном и том же месте каждый день на протяжении года. При этом вам необязательно телепортироваться через начерченный круг, чтобы заклинание сработало таким образом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "material", + "vocal", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ledyanaya-burya-_-Ice-storm.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ledyanaya-burya-_-Ice-storm.json new file mode 100755 index 0000000..53341d2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ledyanaya-burya-_-Ice-storm.json @@ -0,0 +1,120 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ледяная буря / Ice storm", + "img": "icons/magic/light/projectiles-salvo-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "bludgeoning" + ], + [ + "4d6", + "cold" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Lichiny-_-Seeming.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Lichiny-_-Seeming.json new file mode 100755 index 0000000..97c53bb --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Lichiny-_-Seeming.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Личины / Seeming", + "img": "icons/creatures/mammals/humanoid-fox-cat-archer.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание позволяет вам изменить облик любого количества существ, которых вы видите в пределах дистанции. Вы можете придать каждой цели новый иллюзорный облик на ваш выбор. Несогласная цель может пройти испытание Харизмы, при успехе заклинание на неё не подействует.
\nЗаклинание изменяет физический облик, а также одежду, броню, оружие и снаряжение. Вы можете заставить любое существо казаться на 1 фут выше или ниже, более тощим, толстым или средним. Однако вы не можете полностью поменять тела — нужно придать им форму с таким же набором конечностей. В остальном параметры иллюзии зависят только от вас. Иллюзия существует, пока длится заклинание или пока вы сами не прекратите ее, потратив действие.
\nПеремены, вызванные этим заклинанием, не выдерживают физического осмотра. К примеру, если вы с помощью заклинания добавите к образу существа шляпу, сквозь неё будут проходить предметы и любой, кто к ней прикоснется, не почувствует ничего, кроме волос на голове. Если с помощью заклинания вы заставляете существо казаться худее, чем есть, любой, кто протянет к нему руку, упрётся в невидимые бока.
\nСущество может использовать действие, чтобы изучить облик цели, и должно пройти проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. При успехе оно узнаёт, что внешность цели изменена.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Lichnoe-ubezhishche-Mordenkaynena-_-Mordenkainen's-Private-Sanctum.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Lichnoe-ubezhishche-Mordenkaynena-_-Mordenkainen's-Private-Sanctum.json new file mode 100755 index 0000000..352a259 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Lichnoe-ubezhishche-Mordenkaynena-_-Mordenkainen's-Private-Sanctum.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Личное убежище Морденкайнена / Mordenkainen's Private Sanctum", + "img": "icons/commodities/treasure/puzzle-box-glowing-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, то можете увеличить размер куба на 100 футов за каждый круг ячейки выше 4-го. Таким образом, вы можете защитить куб размером до 200 футов по одной стороне, если сотворить его, используя ячейку 5-го круга.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Manipulyatsiya-pamyat�yu-_-Modify-Memory.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Manipulyatsiya-pamyat�yu-_-Modify-Memory.json new file mode 100755 index 0000000..ffa35c2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Manipulyatsiya-pamyat�yu-_-Modify-Memory.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Манипуляция памятью / Modify Memory", + "img": "icons/magic/control/hypnosis-mesmerism-pendulum.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь изменить воспоминания другого существа. Одно существо, которое вы видите, должно пройти испытание Мудрости. Если вы сражаетесь с существом, у него преимущество к испытанию. При провале цель &reference[charmed]{обворожена} вами, пока длится заклинание. Обворожённая цель &reference[incapacitated]{выведена из строя} и не знает, что происходит вокруг, но может слышать вас. Если цель получает любой урон или становится целью иного заклинания, это заклинание прекращает действовать и память цели не меняется.
Пока действует это обворожение, вы можете изменить воспоминания цели о событии, случившемся в последние 24 часа и продолжавшемся не более 10 минут. Вы можете просто навсегда стереть воспоминания об этом событии, позволить цели вспомнить событие в точности, изменить детали этого воспоминания или создать воспоминание о другом событии.
Вы должны говорить с целью, чтобы описать, как меняются ее воспоминания, и она должна понимать ваш язык, чтобы воспоминания закрепились. Разум цели сам заполняет пробелы в деталях вашего описания. Если заклинание прекращает действовать, прежде чем вы закончили описание, память существа не меняется. В противном случае изменённые воспоминания сохраняются по окончании действия заклинания.
Изменённая память не всегда влияет на поведение существа, особенно если воспоминания противоречат его природным наклонностям, мировоззрению или убеждениям. Нелогичную изменённую память — например, о том, как существо радостно плескалось в кислоте, — оно отвергнет, как дурной сон. Мастер может посчитать изменённые воспоминания слишком бессмысленными, и они не повлияют на поведение существа.
Сотворённые на цель заклинания @Compendium[laaru-dnd5-hw.spells.Y5EfiRqmCWKJ7Qhk]{Снятие проклятия} или @Compendium[laaru-dnd5-hw.spells.lFqzcFBz3F0u96i1]{Высшее восстановление} возвращают ей истинную память.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, то можете изменить воспоминания цели о событии давностью до 7 дней (6-й круг), 30 дней (7-й круг), 1 года (8-й круг) или любого времени в прошлом существа (9-й круг).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Massovoe-istselenie-ran-_-Mass-Cure-Wounds.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Massovoe-istselenie-ran-_-Mass-Cure-Wounds.json new file mode 100755 index 0000000..5083b21 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Massovoe-istselenie-ran-_-Mass-Cure-Wounds.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Массовое исцеление ран / Mass Cure Wounds", + "img": "icons/magic/life/cross-beam-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Massovoe-vnushenie-_-Mass-Suggestion.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Massovoe-vnushenie-_-Mass-Suggestion.json new file mode 100755 index 0000000..d411e8f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Massovoe-vnushenie-_-Mass-Suggestion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Массовое внушение / Mass Suggestion", + "img": "icons/skills/social/diplomacy-unity-alliance.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы внушаете некие действия (их нужно описать одним-двумя предложениями) не более чем двенадцати существам на ваш выбор, которых вы видите в пределах дистанции и которые могут вас слышать и понимать. На существ с невосприимчивостью к &reference[charmed]{обворожению} заклинание не действует. Внушение должно быть сформулировано так, чтобы действия казались разумными. Если вы прикажете существу заколоться, броситься на копьё, поджечь себя или каким-то ещё образом явно нанести себе вред, эффект заклинания не сработает.
Каждая цель должна пройти испытание Мудрости, При провале она выполняет внушённые вами действия по мере своих возможностей. Выполнение может занимать всю длительность заклинания. Если внушённые действия можно совершить быстрее, заклинание прекращает действовать, как только цель совершит их.
Можно также указать условия, при которых внушение сработает в пределах длительности. К примеру, вы можете внушить группе солдат отдать все свои деньги первому встречному нищему. Если условия не выполняются до конца длительности, действия тоже не совершаются.
Если вы или ваши спутники наносят существу, находящемуся под влиянием этого заклинания, урон, оно прекращает действовать для этого существа.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга, его длительность — 10 дней. Если использовать ячейку 8-го круга, длительность — 30 дней. Если использовать ячейку 9-го круга, длительность — год и один день.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "12", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "material", + "vocal", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Mgnovennye-prizyvy-Draumizha-_-Drawmij's-Instant-Summons.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Mgnovennye-prizyvy-Draumizha-_-Drawmij's-Instant-Summons.json new file mode 100755 index 0000000..07bc3ee --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Mgnovennye-prizyvy-Draumizha-_-Drawmij's-Instant-Summons.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Мгновенные призывы Драумижа / Drawmij's Instant Summons", + "img": "icons/commodities/treasure/statue-runed-blue-grey.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к предмету весом не более 10 фунтов и размером не более 6 футов в любом измерении. Заклинание оставляет невидимую отметку на поверхности объекта и невидимо записывает название предмета на сапфире, который вы использовали как реагент. Каждый раз, когда вы сотворяете это заклинание, вы должны использовать новый сапфир
\nВпоследствии в любой момент вы можете использовать действие, чтобы произнести название предмета и раздавить сапфир. Предмет мгновенно появится у вас в руке, на каком бы расстоянии и плане бытия он ни находился. После этого заклинание прекращает действовать.
\nЕсли предмет держит или несёт другое существо, он к вам не перемещается, но вы узнаете, какое существо им владеет и где примерно находится в данный момент.
\n@Compendium[laaru-dnd5-hw.spells.ZdDJVUlzYudd4nHO]{Рассеивание магии} или иной подобный эффект, примененный к сапфиру, прекращает действие заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Moroznyy-shar-Otilyuka-_-Otiluke's-Freezing-Sphere.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Moroznyy-shar-Otilyuka-_-Otiluke's-Freezing-Sphere.json new file mode 100755 index 0000000..2171a98 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Moroznyy-shar-Otilyuka-_-Otiluke's-Freezing-Sphere.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Морозный шар Отилюка / Otiluke's Freezing Sphere", + "img": "icons/commodities/gems/pearl-water.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d6", + "cold" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Obmanka-_-Mislead.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Obmanka-_-Mislead.json new file mode 100755 index 0000000..f05616e --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Obmanka-_-Mislead.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обманка / Mislead", + "img": "icons/magic/death/mouth-bite-fangs-vampire.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы становитесь &reference[invisible]{невидимы}, и одновременно на вашем месте появляется ваш иллюзорный двойник. Он существует, пока длится заклинание, но невидимость прекращается, если вы атакуете или сотворите заклинание.
Вы можете использовать действие, чтобы перемещать двойника со скоростью вдвое быстрее вашей и заставлять его жестикулировать, говорить и вести себя по вашему усмотрению.
Вы можете видеть глазами двойника и слышать его ушами, как если бы вы находились на его месте. В каждый ваш ход в качестве бонусного действия вы можете переключиться с его органов восприятия на свои или обратно. Пока вы используете его восприятие, вы &reference[blinded]{слепы} и &reference[deafened]{глухи} к тому, что происходит вокруг вашего тела.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "somatic", + "concentration", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennaya-stena-_-Wall-of-Fire.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennaya-stena-_-Wall-of-Fire.json new file mode 100755 index 0000000..3f1e6c7 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennaya-stena-_-Wall-of-Fire.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненная стена / Wall of Fire", + "img": "icons/magic/fire/barrier-wall-flame-ring-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennyy-shchit-_-Fire-Shield.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennyy-shchit-_-Fire-Shield.json new file mode 100755 index 0000000..af1764a --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennyy-shchit-_-Fire-Shield.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный щит / Fire Shield", + "img": "icons/equipment/shield/heater-steel-crystal-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Тонкие подвижные язычки пламени охватывают ваше тело, пока длится заклинание, испуская яркий свет в радиусе 10 футов и тусклый ещё на 10 футов. Вы можете досрочно прекратить заклинание, потратив действие.
\nПламя даёт вам тёплый или морозный щит на ваш выбор. Тёплый щит даёт вам @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к урону холодом, а морозный — к урону огнем
\nКроме того, когда существо в пределах 5 футов от вас попадает по вам атакой ближнего боя, щит извергает пламя. Атакующий получает [[/r 2d8]] урона огнём от тёплого щита или [[/r 2d8]] урона холодом от морозного.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennyy-stolp-_-Flame-Strike.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennyy-stolp-_-Flame-Strike.json new file mode 100755 index 0000000..3c3ac54 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ognennyy-stolp-_-Flame-Strike.json @@ -0,0 +1,120 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный столп / Flame Strike", + "img": "icons/magic/fire/beam-jet-stream-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "radiant" + ], + [ + "4d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Okhrannye-chary-_-Guards-and-Wards.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Okhrannye-chary-_-Guards-and-Wards.json new file mode 100755 index 0000000..8f7490c --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Okhrannye-chary-_-Guards-and-Wards.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Охранные чары / Guards and Wards", + "img": "icons/commodities/metal/clasp-steel-braid-glowing.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте охранные чары, защищающие до 2 500 квадратных футов поверхности (либо 50-футовый квадрат, либо сто 5-футовых квадратов, либо двадцать пять 10-футовых квадратов). Защищённая область может быть до 20 футов в высоту и любой формы. Вы можете защитить несколько этажей резиденции, разделив область между ними, если вы можете зайти в каждую из смежных областей, пока творите заклинание.
Когда вы творите это заклинание, вы можете указать лиц, на которых не будут влиять все или часть эффектов на ваш выбор. Вы можете также указать пароль: тот, кто его произнесёт, будет невосприимчив к этим эффектам
Заклинание создает следующие эффекты в пределах защищаемой области.
Двери. Все двери в защищённой области магически запираются, словно бы заклинанием @Compendium[laaru-dnd5-hw.spells.CuRWKGEoSXJmDPsh]{Волшебный засов}. Кроме того, вы можете скрыть до десяти дверей иллюзией (аналогичной иллюзорному образу, созданному заклинанием @Compendium[laaru-dnd5-hw.spells.4rjhJZz5ob7yJX7T]{Малая иллюзия}), чтобы они казались частью стены.
Коридоры. Туман заполняет все защищённые коридоры, крайне затрудняя в них видимость. Кроме того, на любом перекрёстке или ответвлении, где нужно выбрать направление, есть шанс [[/r 1d100]] 50%, что любое существо, кроме вас, ошибется и направится в противоположном направлении относительно выбранного.
Лестницы. Паутина заполняет все лестницы в защищённой области сверху донизу, аналогично заклинанию @Compendium[laaru-dnd5-hw.spells.UJeW7iSqWn2q3pxM]{Паутина}. Если паутину сжечь или разорвать, она вырастает заново через 10 минут, пока длятся охранные чары.
Эффекты других заклинаний. Вы можете поместить один из этих магических эффектов в пределах защищённой области.
Вся защищённая область излучает магию. Заклинание @Compendium[laaru-dnd5-hw.spells.ZdDJVUlzYudd4nHO]{Рассеивание магии}, сотворённое на определённый эффект, при успехе рассеивает только его. Вы можете защитить строение постоянными охранными чарами, творя это заклинание в нём ежедневно целый год.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Oshelomlyayushchaya-kara-_-Staggering-Smite.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Oshelomlyayushchaya-kara-_-Staggering-Smite.json new file mode 100755 index 0000000..e477586 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Oshelomlyayushchaya-kara-_-Staggering-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ошеломляющая кара / Staggering Smite", + "img": "icons/skills/melee/strike-axe-energy-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваше оружие пронзает и тело врага, и его разум, а атака дополнительно наносит цели [[/r 4d6]] психического урона. Цель должна пройти испытание Мудрости. При провале она получает помеху к броскам атаки и проверкам характеристики не может совершать ответные действия до конца своего следующего хода.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Osvyashchenie-_-Hallow.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Osvyashchenie-_-Hallow.json new file mode 100755 index 0000000..b918d08 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Osvyashchenie-_-Hallow.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Освящение / Hallow", + "img": "icons/magic/symbols/cross-circle-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь некой точки и наделяете область вокруг неё священной (или нечестивой) силой. Область может иметь радиус до бо футов. Заклинание не срабатывает, если в этот радиус уже входит область другого заклинания освящение. В области заклинания действуют следующие эффекты.
Бестии, небожители, нежить, феи и элементали не могут входить в область. Они также не могут &reference[charmed]{обворожить}, &reference[frightened]{испугать} или вселиться в существ в пределах области. Любое существо, обвороженное или испуганное таким существом либо в которое такое существо вселилось, избавляется от этого воздействия, войдя в область. Вы можете исключить один или несколько типов существ из этого перечня.
Кроме того, вы можете добавить в области дополнительный эффект. Выберите его из списка ниже или добавьте один из вариантов, предложенных вашим мастером. Некоторые эффекты касаются существ, находящихся в области; вы можете указать, влияют ли они на всех существ, на подчиняющихся определённому божеству или лидеру существ или на существ определённого вида вроде орков или троллей. Когда существо, на которое заклинание должно повлиять, входит в его область впервые за ход или начинает в ней свой ход, оно может пройти испытание Харизмы. При успехе дополнительный эффект не действует на существо, пока оно не выйдет из области.
Вечный покой. Мёртвые тела, захороненные в области, нельзя превратить в нежить.
Дневной свет. Область заполняет @UUID[Compendium.laaru-dnd5-hw.conditions.EvGCMCVp1VpUtCbI]{яркий свет}. Магическая тьма, созданная заклинаниями менее высокого круга, чем тот, с использованием ячейки которого вы сотворили это заклинание, не может затмить этот свет.
Защита от энергии. У существ под влиянием заклинания в области появляется @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к одному типу урона на ваш выбор, кроме дробящего, колющего и режущего.
Межпространственные помехи. Существа под влиянием заклинания в области не могут телепортироваться или путешествовать с помощью межпространственных и межпланарных способов.
Отвага. Существ под влиянием заклинания нельзя @UUID[Compendium.laaru-dnd5-hw.conditions.bM6mDYvBFw64wDMp]{испугать}, пока они находятся в области.
Полиглот. Существа под влиянием заклинания могут общаться с любым другим существом в области, даже если у них нет общего языка.
Страх. Существа под влиянием заклинания &reference[frightened]{испуганы}, пока находятся в области.
Тишина. Никакой звук не может возникнуть в области, и никакой звук снаружи в нее не проникает.
Тьма. Область заполняет @UUID[Compendium.laaru-dnd5-hw.conditions.QaHqDYEkBSnpDwhB]{тьма}. Обычный свет, а также магический свет, созданный заклинаниями менее высокого круга, чем тот, с использованием ячейки которого вы сотворили это заклинание, не может осветить эту тьму.
Уязвимость к энергии. У существ под влиянием заклинания в области появляется @UUID[Compendium.laaru-dnd5-hw.conditions.1DDNdECOUhTph3ui]{уязвимость} к одному типу урона на ваш выбор, кроме дробящего, колющего и режущего.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "hour", + "cost": 24, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ozhivlenie-predmetov-_-Animate-Objects.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ozhivlenie-predmetov-_-Animate-Objects.json new file mode 100755 index 0000000..59ddafb --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ozhivlenie-predmetov-_-Animate-Objects.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Оживление предметов / Animate Objects", + "img": "icons/sundries/gaming/chess-pawn-white-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Предметы оживают и подчиняются вам. Выберите до десяти немагических объектов в пределах дистанции, кроме тех, что носят или держат. Среднего размера цели считаются за два объекта, крупные — за четыре, огромные — за восемь. Нельзя оживить предмет больше огромного. Каждая цель оживает и становится существом под вашим контролем, пока длится заклинание или пока его ПЗ не снизятся до 0.
В качестве бонусного действия вы можете отдать мысленный приказ любому существу, которое вы создали этим заклинанием, если оно в пределах 500 футов от вас. Если вы контролируете несколько существ, можете отдать одинаковый приказ любому их количеству одновременно. Вы можете решить, какое действие совершит существо и куда переместится в свой следующий ход, а можете отдать приказ общего характера, например охранять конкретную комнату или коридор. Если вы не прикажете ничего, то существо будет только защищаться от враждебных существ. Получив приказ, существо следует ему до выполнения задачи.
| Размер | ПЗ | КБ | Атака | Сил | Лвк |
|---|---|---|---|---|---|
| @Compendium[laaru-dnd5-hw.monsters.ZXnE6Xll6WiGV1Q7]{Маленький} | 20 | 18 | [[/r 1d20+8]] (+8) к броску, [[/r 1d4 + 4]] урона | [[/r 1d20 - 3]] (4) | [[/r 1d20 + 4]] (18) |
| @Compendium[laaru-dnd5-hw.monsters.uVg666mcjfs46Ty8]{Небольшой} | 25 | 16 | [[/r 1d20+6]] (+6) к броску, [[/r 1d8 + 2]] урона | [[/r 1d20 - 2]] (6) | [[/r 1d20 + 2]] (14) |
| @Compendium[laaru-dnd5-hw.monsters.Hd8xRyuOAcZMSmjT]{Средний} | 40 | 13 | [[/r 1d20+5]] (+5) к броску, [[/r 2d6 + 1]] урона | [[/r 1d20]] (10) | [[/r 1d20 + 1]] (12) |
| @Compendium[laaru-dnd5-hw.monsters.XqWJiFuT26cpKK1F]{Крупный} | 50 | 10 | [[/r 1d20+6]] (+6) к броску, [[/r 2d10 + 2]] урона | [[/r 1d20 + 2]] (14) | [[/r 1d20]] (10) |
| @Compendium[laaru-dnd5-hw.monsters.ABR4VWn8a2WB3OMx]{Огромный} | 80 | 10 | [[/r 1d20+8]] (+8) к броску, [[/r 2d12 + 4]] урона | [[/r 1d20 + 4]] (18) | [[/r 1d20 - 3]] (6) |
Оживший предмет — это конструкция с КБ, ПЗ, атаками, Силой и Ловкостью, зависящими от его размера. Его Выносливость равна 10, Интеллект и Мудрость по 3, Харизма 1. Ero скорость — 30 футов; если у него нет ножек или иных конечностей, он получает скорость полёта 30 футов и может парить. Если предмет надёжно приделан к поверхности или к другому объекту, например к стене, его скорость равна 0. У него &reference[blindsight]{Слепозрение} в радиусе 30 футов, за пределами этого радиуса он &reference[blinded]{слеп}. Когда ПЗ предмета снижаются до 0, он возвращается в свою обычную форму, а оставшийся урон переносится на неё.
Если приказать предмету атаковать, он может совершить одну атаку ближнего боя по существу в пределах 5 футов от себя. Это крушащий удар с бонусом атаки и дробящим уроном, зависящими от размера предмета. Мастер может решить, что конкретный предмет наносит режущий или колющий урон в зависимости от его формы
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, то можете оживить два дополнительных объекта за каждый круг ячейки выше 5-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Paralich-chudovishcha-_-Hold-Monster.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Paralich-chudovishcha-_-Hold-Monster.json new file mode 100755 index 0000000..b2604d5 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Paralich-chudovishcha-_-Hold-Monster.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паралич чудовища / Hold Monster", + "img": "icons/sundries/misc/pet-collar-spiked-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите существо, которое видите в пределах дистанции. Цель должна пройти испытание Мудрости, при провале она &reference[paralyzed]{парализована}, пока длится заклинание. На нежить заклинание не действует. В конце каждого своего хода цель может пройти ещё одно испытание Мудрости. При успехе заклинание прекращает действовать на цель.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 5-го. Все эти существа должны быть в пределах 30 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Perekhod-po-rasteniyam-_-Transport-via-Plants.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Perekhod-po-rasteniyam-_-Transport-via-Plants.json new file mode 100755 index 0000000..8f2b72c --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Perekhod-po-rasteniyam-_-Transport-via-Plants.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Переход по растениям / Transport via Plants", + "img": "icons/magic/nature/leaf-oak-glow-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "2", + "width": null, + "units": "spec", + "type": "object", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Pir-geroev-_-Heroes'-Feast.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Pir-geroev-_-Heroes'-Feast.json new file mode 100755 index 0000000..b5590e7 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Pir-geroev-_-Heroes'-Feast.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пир героев / Heroes' Feast", + "img": "icons/magic/holy/chalice-glowing-gold.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы устраиваете грандиозный пир с роскошной едой и напитками. На то, чтобы насладиться ими, требуется 1 час, после чего пир исчезает, а до тех пор его благотворное воздействие не проявляется. В пире могут поучаствовать двенадцать или менее существ.
Существо, принявшее участие в пире, получает следующую пользу. Оно исцеляется от всех болезней и ядов, становится невосприимчиво к яду и &reference[frightened]{испугу} и проходит все испытания Мудрости с преимуществом. Его максимум ПЗ также увеличивается на [[/r 2d10]], и оно получает столько же ПЗ. Эти эффекты сохраняются 24 часа.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Planarnyy-sluga-_-Planar-Binding.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Planarnyy-sluga-_-Planar-Binding.json new file mode 100755 index 0000000..e57457f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Planarnyy-sluga-_-Planar-Binding.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Планарный слуга / Planar Binding", + "img": "icons/magic/control/debuff-chains-shackles-movement-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Этим заклинанием вы пытаетесь заставить бестию, небожителя, фею или элементаля служить вам. Существо должно оставаться в пределах дистанции все время, пока вы творите заклинание. Как правило, существо призывают в центр вывернутого @Compendium[laaru-dnd5-hw.spells.9EdFCD8XJNdmJmrn]{магического круга}, чтобы удерживать его там, пока творится заклинание. Когда заклинание завершено, цель должна пройти испытание Харизмы. При провале она обязана служить вам, пока длится заклинание. Если существо было призвано или создано иным заклинанием, длительность того заклина- ния продлевается так, чтобы соответствовать длительности вашего заклинания.
\nПодчинённое существо выполняет ваши приказы так хорошо, как только может. Вы можете приказать существу сопровождать вас в приключениях, охранять какое-то место или доставить сообщение. Существо буквально выполнит ваши инструкции, но, если существо вам враждебно, оно попытается извратить ваши слова, чтобы достичь своих целей. Если существо выполнит ваши приказы полностью до того, как заклинание прекратит действовать, оно вернётся к вам и доложит об этом, если вы на том же плане бытия. Если вы на другом плане, оно вернется туда, где вы его подчинили, и будет оставаться там, пока заклинание не прекратит действовать.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку более высокого круга, его длительность увеличивается до 10 дней при использовании ячейки 6-го круга, до 30 дней для 7-го круга, до 180 дней для 8-го круга и до года и одного дня для 9-го круга.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Planarnyy-soyuznik-_-Planar-Ally.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Planarnyy-soyuznik-_-Planar-Ally.json new file mode 100755 index 0000000..140bb6f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Planarnyy-soyuznik-_-Planar-Ally.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Планарный союзник / Planar Ally", + "img": "icons/creatures/unholy/demon-female-succubus-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы просите о помощи потустороннюю сущность. Эта сущность должна быть вам известна: божество, первозданный, князь демонов или иная сущность космической мощи. Сущность посылает верного союзника — бестию, небожителя или элементаля — помогать вам. Это существо появляется в незанятом пространстве в пределах дистанции. Если вы знаете имя этого конкретного существа, можете назвать его при сотворении заклинания, чтобы потребовать именно его, однако вы можете в итоге получить и совсем другое существо (по решению мастера).
\nКогда существо появляется, оно не вынуждено действовать каким-то определённым образом. Вы можете попросить существо сослужить вам службу за плату, но оно это делать не обязано. Служба может быть как простой (перенести вас через пропасть или помочь в бою), так и сложной (шпионить за врагами, защищать группу во время похода в подземелье). Вы должны быть способны общаться с существом, чтобы заключить с ним сделку.
\nПлата может быть самой разнообразной. Небожитель может потребовать внушительное пожертвование дружественному храму в виде золота или магических предметов. Бестия может потребовать живую жертву или сокровище. Некоторые существа оказывают услугу за услугу и дают вам задания.
\nВ среднем служба, которую можно выполнить за несколько минут, стоит 100 зм в минуту, Служба, которая занимает часы, стоит 1 000 зм в час. А если служба занимает несколько дней (до 10 дней), она стоит 10 000 зм вдень. Мастер может изменить цены в зависимости от обстоятельств, в которых вы сотворили заклинание. Если задание сообразно этике существа, оно может снизить цену вдвое, а то и вообще помочь бесплатно. Неопасные задачи обычно стоят вдвое меньше, а особо опасные могут стоить особенно дорого. За самоубийственные задания существа обычно не берутся.
\nВыполнив задачу или когда истечет оговоренный срок службы, существо возвращается на свой родной план, сперва отчитавшись перед вами, если того требует задание и если это возможно. Если вы не сумели договориться с существом о цене службы, оно немедленно возвращается на родной план. Существо, вступившее в вашу группу, считается её членом и получает полноценную долю опыта.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Plot�-v-kamen�-_-Flesh-to-Stone.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Plot�-v-kamen�-_-Flesh-to-Stone.json new file mode 100755 index 0000000..c9a8f82 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Plot�-v-kamen�-_-Flesh-to-Stone.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Плоть в камень / Flesh to Stone", + "img": "icons/magic/earth/strike-fist-stone.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь обратить в камень одно существо, которое видите в пределах дистанции. Если тело цели состоит из плоти, она должна пройти испытание Выносливости. При провале цель &reference[restrained]{обездвижена}, а её плоть начинает твердеть. При успехе заклинание не срабатывает на цель.
Существо, обездвиженное этим заклинанием, должно проходить испытание Выносливости в конце каждого своего хода. Если оно успешно пройдёт это испытание трижды, заклинание прекратит действовать. Провалив испытание трижды, существо обратится в камень — получит состояние &reference[petrified]{окаменения}, пока длится заклинание. Успехи и провалы необязательно должны быть подряд; подсчитывайте их, пока чего-то не наберётся три.
Если существо получает физические повреждения, будучи окаменевшим, после возвращения в обычную форму оно сохраняет эту травму.
Если вы концентрируетесь на заклинании всю его длительность, существо останется окаменевшим, пока эффект не будет снят.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Podchinenie-gumanoida-_-Dominate-Person.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Podchinenie-gumanoida-_-Dominate-Person.json new file mode 100755 index 0000000..5658557 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Podchinenie-gumanoida-_-Dominate-Person.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Подчинение гуманоида / Dominate Person", + "img": "icons/magic/death/projectile-skull-flaming-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь подчинить гуманоида, которого видите в пределах дистанции. Он должен пройти испытание Мудрости, при провале он &reference[charmed]{обворожён} вами, пока длится заклинание. Если вы или дружественные вам существа сражаетесь с этим гуманоидом, у него преимущество к испытанию.
Пока цель &reference[charmed]{обворожена}, у вас есть с ней телепатическая связь, если вы оба находитесь на одном плане бытия. Вы можете с помощью этой телепатической связи отдавать существу приказы, пока вы в сознании (действие не требуется), и оно будет выполнять их, насколько сможет. Можете отдавать простые приказы общего характера, например: «Атакуй это существо», «Беги туда», «Схвати этот предмет». Если существо выполняет приказ и больше не получает от вас новых указаний, оно бросает все силы на самозащиту.
Вы можете использовать действие, чтобы обрести полный и точный контроль над целью. До конца вашего следующего хода существо совершает только те действия, которые выбираете вы, и не делает ничего, что вы ему не разрешили. В это время вы можете заставить существо совершить ответное действие, но это также потратит ваше ответное действие.
Всякий раз, когда цель получает урон, она снова проходит испытание Мудрости против заклинания. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга, его длительность - концентрация, до 10 минут. Если использовать ячейку 7-го круга, его длительность — концентрация, до 1 часа. Если использовать ячейку 8-го круга или выше, его длительность - концентрация, до 8 часов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Podchinenie-zhivotnogo-_-Dominate-Beast.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Podchinenie-zhivotnogo-_-Dominate-Beast.json new file mode 100755 index 0000000..2ef30fd --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Podchinenie-zhivotnogo-_-Dominate-Beast.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Подчинение животного / Dominate Beast", + "img": "icons/weapons/misc/whip-red-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь подчинить животное, которое видите в пределах дистанции. Оно должно пройти испытание Мудрости, при провале оно &reference[charmed]{обворожено} вами, пока длится заклинание. Если вы или дружественные вам существа сражаетесь с этим животным, у него преимущество к испытанию.
Пока цель &reference[charmed]{обворожена}, у вас есть с ней телепатическая связь, если вы оба находитесь на одном плане бытия. Вы можете с помощью этой телепатической связи отдавать существу приказы, пока вы в сознании (действие не требуется), и оно будет выполнять их, насколько сможет. Можете отдавать простые приказы общего характера, например: «Атакуй это существо», «Беги туда», «Схвати этот предмет». Если существо выполняет приказ и больше не получает от вас новых указаний, оно бросает все силы на самозащиту.
Вы можете использовать действие, чтобы обрести полный и точный контроль над целью. До конца вашего следующего хода существо совершает только те действия, которые выбираете вы, и не делает ничего, что вы ему не разрешили. В это время вы можете заставить существо совершить @UUID[Compendium.laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{ответное действие}, но это также потратит ваше ответное действие.
Всякий раз, когда цель получает урон, она снова проходит испытание Мудрости против заклинания. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга, его длительность - концентрация, до 10 минут. Если использовать ячейку 6-го круга, его длительность — концентрация, до 1 часа. Если использовать ячейку 7-го круга или выше, его длительность — концентрация, до 8 часов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Poisk-puti-_-Find-the-Path.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Poisk-puti-_-Find-the-Path.json new file mode 100755 index 0000000..88abfac --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Poisk-puti-_-Find-the-Path.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поиск пути / Find the Path", + "img": "icons/environment/wilderness/terrain-river-road-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Заклинание позволяет вам найти кратчайший и наиболее прямой физический путь в определённое знакомое вам неподвижное место, которое находится на этом же плане бытия. Если вы назовёте место на другом плане бытия, передвигающееся место (вроде мобильной крепости) или недостаточно конкретное (например, «логово зелёного дракона»), заклинание не сработает.
\nПока длится заклинание и пока вы на том же плане бытия, что и место назначения, вы знаете, как далеко оно ив каком направлении. Направляясь туда, вы автоматически знаете самый короткий и прямой путь к цели на любых развилках (но не всегда самый безопасный).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "day" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Poisk-sushchestva-_-Locate-Creature.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Poisk-sushchestva-_-Locate-Creature.json new file mode 100755 index 0000000..e51ebd1 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Poisk-sushchestva-_-Locate-Creature.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поиск существа / Locate Creature", + "img": "icons/creatures/birds/corvid-watchful-glowing-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Назовите или опишите знакомое вам существо. Вы ощутите, в каком направлении находится это существо, если оно в пределах 1000 футов от вас. Если существо перемещается, вы узнаете, в каком направлении.
\nЗаклинание может найти либо конкретное знакомое вам существо, либо ближайшее существо определённого вида (например, человека или единорога), если вы хоть раз видели подобное существо вблизи (в пределах 30 футов). Если описанное вами существо приняло иную форму, например из-за эффекта заклинания @Compendium[laaru-dnd5-hw.spells.8qeo9ZE7VnkmVKcv]{Полиморф}, это заклинание не сможет найти существо.
\nЗаклинание не может найти существо, если прямой путь между ними вами преграждает текущая вода не менее 10 футов в ширину.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Polimorf-_-Polymorph.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Polimorf-_-Polymorph.json new file mode 100755 index 0000000..9e66772 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Polimorf-_-Polymorph.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полиморф / Polymorph", + "img": "icons/creatures/amphibians/bullfrog-glowing-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Заклинание превращает существо, которое вы видите в пределах дистанции, в новую форму. Несогласное существо должно пройти испытание Мудрости, чтобы избежать эффекта. На перевёртышей и существ с 0 ПЗ заклинание не действует.
\nПревращение сохраняется, пока длится заклинание, или пока ПЗ цели не снизятся до 0 или пока она не умрёт. Новая форма может быть любым животным с классом опасности не выше класса опасности цели (или ее уровня, если у цели нет класса опасности). Параметры цели, в том числе значения ментальных характеристик, меняются на параметры выбранного животного. Цель сохраняет своё мировоззрение и личность.
\nЦель получает ПЗ новой формы. Вернувшись в обычную форму, цель возвращается к тем ПЗ, которые у неё были до превращения. Если она превращается обратно из-за снижения ПЗ до 0, любой избыточный урон переносится на обычную форму; если этот урон не снижает ПЗ обычной формы до 0, существо не теряет сознания.
\nДействия существа ограничены возможностями его новой формы: оно не может говорить, творить заклинания и совершать любые иные действия, требующие дара речи или рук.
\nСнаряжение цели сливается с её новой формой. Цель не может его использовать, активировать или иным образом получать от него пользу.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Povrezhdenie-_-Harm.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Povrezhdenie-_-Harm.json new file mode 100755 index 0000000..22fc438 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Povrezhdenie-_-Harm.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Повреждение / Harm", + "img": "icons/weapons/daggers/knife-kitchen-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы поражаете опасной болезнью существо, которое видите в пределах дистанции. Цель должна пройти испытание Выносливости. При провале она получает [[/r 14d6]] некротического урона, при успехе — половину этого урона. Урон не может уменьшить ПЗ цели ниже 1. Если цель провалила испытание, её максимум ПЗ уменьшается на значение, равное полученному некротическому урону, на 1 час. Любой эффект, исцеляющий болезнь существа, досрочно восстанавливает его максимум ПЗ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "14d6", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Preobrazhenie-kamnya-_-Stone-Shape.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Preobrazhenie-kamnya-_-Stone-Shape.json new file mode 100755 index 0000000..6156dee --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Preobrazhenie-kamnya-_-Stone-Shape.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Преображение камня / Stone Shape", + "img": "icons/magic/symbols/runes-carved-stone-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prinuzhdenie-_-Compulsion.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prinuzhdenie-_-Compulsion.json new file mode 100755 index 0000000..4f68f8c --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prinuzhdenie-_-Compulsion.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Принуждение / Compulsion", + "img": "icons/magic/unholy/hands-circle-light-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Существа на ваш выбор, которых вы видите в пределах дистанции и которые слышат вас, должны пройти испытание Мудрости. Цель автоматически успешно проходит испытание, если невосприимчива к &reference[charmed]{обворожению}. При провале заклинание действует на цель. Пока длится заклинание, вы можете использовать бонусное действие в любой свой ход, чтобы назначить направление по горизонтали относительно себя. Каждая цель под влиянием заклинания должна потратить как можно больше перемещения, чтобы переместиться в указанном направлении в свой следующий ход. Перед таким перемещением цель может совершить действие. После перемещения она может повторно пройти испытание Мудрости, чтобы при успехе прекратить эффект.
\nНельзя принудить цель переместиться в явно опасное место, например в огонь или в пропасть, но она будет провоцировать внеочередные атаки, чтобы перемещаться в требуемом направлении.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-elementalya-_-Conjure-Elemental.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-elementalya-_-Conjure-Elemental.json new file mode 100755 index 0000000..f3768b0 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-elementalya-_-Conjure-Elemental.json @@ -0,0 +1,176 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв элементаля / Conjure Elemental", + "img": "icons/magic/earth/construct-stone.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете слугу-элементаля. Выберите область воздуха, земли, огня или воды объёмом с 10-футовый куб в пределах дистанции. Элементаль с классом опасности не выше 5, соответствующий выбранной вами области, появляется в незанятом пространстве в пределах 10 футов от неё. К примеру, элементаль огня вылезает из костра, элементали земли — из-под земли. Элементаль исчезает, когда его ПЗ снижаются до 0 или когда заклинание прекращает действовать.
Элементаль дружественен вам и вашим спутникам, пока длится заклинание. Сделайте бросок инициативы для элементаля, чтобы он совершал собственные ходы. Он подчиняется вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, он защищается от враждебных существ, но других действий не совершает. Если ваша концентрация нарушена, элементаль не исчезнет, но вы потеряете контроль над ним. Он станет враждебен вам и вашим спутникам и может атаковать. Вы не можете прервать призыв неуправляемого элементаля, он исчезнет сам через 1 час после призыва. Параметры элементалей есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, класс опасности увеличивается на 1 за каждый круг ячейки выше 5-го.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1.5", + "width": null, + "units": "m", + "type": "cube", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [], + "profiles": [ + { + "count": "", + "name": "", + "_id": "DWs8uBvjdXgrrTvW", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.gjHtJBqTBE8FGOll", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "YXCsTVdDWIdGzO9v", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.Y9UnzitcFp76rhQt", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "P16LNG51Yin3SSy3", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.GvwIu2ijVKLJ8rFB", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "eo6pa62fGcFL0rGo", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.TlvQWedVV0VongAK", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-fei-_-Conjure-Fey.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-fei-_-Conjure-Fey.json new file mode 100755 index 0000000..051cd10 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-fei-_-Conjure-Fey.json @@ -0,0 +1,152 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв феи / Conjure Fey", + "img": "icons/creatures/magical/fae-fairy-winged-glowing-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете фею с классом опасности не выше 6 или духа феи в форме животного с классом опасности не выше 6 (параметры этих существ есть у мастера). Существо появляется в незанятом пространстве, которое вы видите в пределах дистанции. Фея исчезает, когда её ПЗ снижаются до 0 или когда заклинание прекращает действовать.
Фея дружественна вам и вашим спутникам, пока длится заклинание. Сделайте бросок инициативы для феи, чтобы она совершала собственные ходы. Она подчиняется вашим устным приказам (действие от вас не требуется), если они не противоречат её мировоззрению. Если вы не отдаёте приказов, она защищается от враждебных существ, но больше ничего не делает.
Если ваша концентрация нарушена, фея не исчезнет, но вы потеряете контроль над ней. Она станет враждебна вам и вашим спутниками может атаковать. Вы не можете прервать призыв неуправляемой феи, она исчезает сама через 1 час после призыва.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, класс опасности увеличивается на 1 за каждый круг ячейки выше 6-го.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Другие разновидности фей можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [], + "profiles": [ + { + "count": "", + "name": "", + "_id": "k8mDk12TrIT3Yp3L", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.uDZbU8bbECyzkkQX", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "YdZXhK4MDdXOWF8F", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.0yd5h7aKa0JIOl5t", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-lesnykh-sozdaniy-_-Conjure-Woodland-Beings.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-lesnykh-sozdaniy-_-Conjure-Woodland-Beings.json new file mode 100755 index 0000000..bef2c40 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-lesnykh-sozdaniy-_-Conjure-Woodland-Beings.json @@ -0,0 +1,178 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв лесных созданий / Conjure Woodland Beings", + "img": "icons/creatures/mammals/deer-movement-leap-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете фей. Они появляются в незанятых местах, которые вы видите в пределах дистанции. Выберите один из вариантов того, что появится:
Призванное существо исчезает, когда его ПЗ снижаются до 0 или когда заклинание прекращает действовать.
Призванные существа дружественны вам и вашим спутникам. Сделайте бросок инициативы для призванных существ как для группы, которая совершает собственные ходы. Они подчиняются вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, они защищаются от враждебных существ, но других действий не совершают.
Параметры существ есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку определённого более высокого круга, то можете выбрать один из перечисленных выше вариантов, но фей появляется больше: вдвое больше для ячейки 6-го круга и втрое - для ячейки 8-го круга.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Для призыва прописаны популярные феи, других можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fey" + ], + "profiles": [ + { + "count": "4", + "name": "Гигантская рысь КО 1/2", + "_id": "K3lOlO1C2ssa39IH", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.bi4mYbUhLzVdbFue", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "2", + "name": "Дриада КО 1", + "_id": "tUy9gpZcPF1DV8xh", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.6F7QYvvi3Ogg6uKN", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "1", + "name": "Морская карга КО 2", + "_id": "qLdWATot8OxmG5du", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.xLhRNNokALdaGzNJ", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "8", + "name": "Пикси КО 1/4", + "_id": "zWzUVtb7IZolM2BT", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.TzUWGKXsuAeOje3b", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-malykh-elementaley-_-Conjure-Minor-Elementals.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-malykh-elementaley-_-Conjure-Minor-Elementals.json new file mode 100755 index 0000000..8139447 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-malykh-elementaley-_-Conjure-Minor-Elementals.json @@ -0,0 +1,174 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв малых элементалей / Conjure Minor Elementals", + "img": "icons/creatures/magical/spirit-mischief-fire-ice-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете элементалей. Они появляются в незанятых местах, которые вы видите в пределах дистанции. Выберите один из вариантов того, что появится:
Призванный элементаль исчезает, когда его ПЗ снижаются до 0 или когда заклинание прекращает действовать.
Призванные существа дружественны вам и вашим спутникам. Сделайте бросок инициативы для призванных существ как для группы, которая совершает собственные ходы. Они подчиняются вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, они защищаются от враждебных существ, но других действий не совершают.
Параметры существ есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку определённого более высокого круга, то можете выбрать один из перечисленных выше вариантов, но элементалей появляется больше: вдвое больше для ячейки 6-го круга и втрое — для ячейки 8-го круга.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Для призыва прописаны известные элементали, других можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [], + "profiles": [ + { + "count": "8", + "name": "Грязевой мефит КО 1/4", + "_id": "48baKl0SI0tZdyHr", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.dvpD94MbrhljIEjA", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "2", + "name": "Огненная змея КО 1", + "_id": "U2aYgSc9SHVH0qkG", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.g0Ow5A0s8utTtlkz", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "4", + "name": "Магмин КО 1/2", + "_id": "xSZwuVHQqpXxefr4", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.n7XbFBTXOdGJWosy", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "1", + "name": "Эйзер КО 2", + "_id": "CSoz9F25O7DGZMwY", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.XzO0zNuDxsmP2qXW", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-zalpa-_-Conjure-Volley.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-zalpa-_-Conjure-Volley.json new file mode 100755 index 0000000..b8c4bb2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prizyv-zalpa-_-Conjure-Volley.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв залпа / Conjure Volley", + "img": "icons/magic/holy/projectiles-blades-salvo-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы метаете немагическое оружие или стреляете немагическим боеприпасом в воздух и выбираете точку в пределах дистанции. Сотни копий использованного вами боеприпаса или оружия обрушиваются залпом с небес, а затем исчезают. Каждое существо в цилиндре радиусом 40 футов и высотой 20 футов с центром в выбранной точке должно пройти испытание Ловкости. Существо получает [[/r 8d8]] урона при провале или половину этого урона при успехе. Тип урона тот же, что у использованного оружия или боеприпаса.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Probuzhdenie-_-Awaken.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Probuzhdenie-_-Awaken.json new file mode 100755 index 0000000..44b010d --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Probuzhdenie-_-Awaken.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пробуждение / Awaken", + "img": "icons/magic/nature/tree-animated-strike.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Проведите время сотворения, отслеживая магические пути внутри драгоценного камня. Затем прикоснитесь к животному или растению огромного размера или меньше. У цели должно либо не быть значения Интеллекта вовсе, либо он должен быть не выше 3. Цель получает Интеллект 10 и способность говорить на одном известном вам языке. Если цель - растение, она получает возможность двигать ветвями, корнями, побегами и прочим, а также способы восприятия, схожие с человеческими. Мастер выбирает параметры, подходящие для пробуждённого растения, будь то пробуждённый куст или пробуждённое дерево.
Пробуждённое животное или растение &reference[charmed]{обворожено} вами на 30 дней или пока вы или ваш спутник не нанесете ему вред. Когда обворожение прекращается, пробуждённое существо само выбирает, остаться или дружественным к вам, в зависимости от того, как вы с ним обращались.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "hour", + "cost": 8, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Programmiruemaya-illyuziya-_-Programmed-Illusion.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Programmiruemaya-illyuziya-_-Programmed-Illusion.json new file mode 100755 index 0000000..4ce938f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Programmiruemaya-illyuziya-_-Programmed-Illusion.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Программируемая иллюзия / Programmed Illusion", + "img": "icons/skills/trades/academics-book-study-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте иллюзию объекта, существа или иного видимого явления в пределах дистанции. Иллюзия активируется при определенных условиях, а до тех пор незаметна. Она не может быть больше 30-футового куба, Вы сами решаете при сотворении, как иллюзия будет себя вести и какие звуки издавать. Запрограммированное воспроизведение иллюзии длится не более 5 минут.
\nПри наступлении указанных условий иллюзия появляется и ведёт себя так, как вы её запрограммировали. Закончив воспроизведение, она исчезает и переходит в спящий режим на 10 минут. По истечении этого времени иллюзию можно снова активировать.
\nУсловие, запускающее иллюзию, может быть примерным или конкретным на ваш выбор, но оно должно быть основано на видимых или слышимых обстоятельствах, происходящих в пределах 30 футов от области. К примеру, вы можете заставить свой иллюзорный образ появиться и предупредить пришельцев, чтобы они не открывали дверь, или можете настроить иллюзию на появление только при условии, что существо произнесет конкретное слово или фразу.
\nФизическое взаимодействие с образом выдаёт, что это иллюзия, потому что предметы проходят сквозь неё. Существо, которое использует действие, чтобы изучить образ, сможет понять, что это иллюзия, успешно пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Если существа распознаёт иллюзию, оно может видеть сквозь образ, а звуки образа становятся для него едва различимыми.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prokhod-skvoz�-stenu-_-Passwall.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prokhod-skvoz�-stenu-_-Passwall.json new file mode 100755 index 0000000..d6e4450 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Prokhod-skvoz�-stenu-_-Passwall.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Проход сквозь стену / Passwall", + "img": "icons/skills/trades/security-locksmith-key-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
В выбранной вами точке, которую вы видите на деревянной, гипсовой или каменной поверхности (вроде стены, потолка или пола) в пределах дистанции, появляется проход. Он существует, пока длится заклинание. Вы сами выбираете параметры прохода в определенных пределах: до 5 футов в ширину, 8 футов в высоту и 20 футов в глубину. Проход не нарушает стабильность строения вокруг себя.
\nПри закрытии прохода любые существа или объекты, находившиеся в нём на этот момент, оказываются безопасно вытолкнуты в ближайшее незанятое пространство рядом с той стороной прохода, с которой вы его сотворили.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Proritsanie-_-Divination.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Proritsanie-_-Divination.json new file mode 100755 index 0000000..07fd177 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Proritsanie-_-Divination.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Прорицание / Divination", + "img": "icons/commodities/treasure/gem-framed-spiral-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Ваша магия и жертвоприношение позволяют вам связаться с божеством или его слугами. Вы можете задать один вопрос, связанный с конкретной целью, событиями или деятельностью, которые случатся в ближайшие 7 дней. Мастер даст правдивый ответ. Этот ответ может быть короткой фразой, загадочным стихотворением или таинственным пророчеством.
Заклинание не учитывает возможные обстоятельства, способные изменить ход событий, к примеру сотворение новых заклинаний, потери или прибавления в группе. Если вы сотворите это заклинание два или более раза, прежде чем завершите долгий отдых, появляется накапливающийся шанс [[/r 1d100]]{25%} (за каждое сотворение после первого), что будет получено случайное толкование. Мастер делает этот бросок тайно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Puteshestvie-s-vetrom-_-Wind-Walk.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Puteshestvie-s-vetrom-_-Wind-Walk.json new file mode 100755 index 0000000..9ad1320 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Puteshestvie-s-vetrom-_-Wind-Walk.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Путешествие с ветром / Wind Walk", + "img": "icons/skills/movement/feet-winged-boots-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы и не более десяти согласных существ на ваш выбор, которых вы видите в пределах дистанции, принимаете газообразную форму и выглядите как облака, пока длится заклинание. Оставаясь в форме облака, существо может перемещаться со скоростью полёта 300 футов и получает @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к урону от немагического оружия. Единственные действия, доступные в этой форме, — @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок} и возвращение в обычную форму. На возвращение уходит 1 минута, во время которой существо &reference[incapacitated]{выведено из строя} и не может перемещаться. Пока длится заклинание, существо может снова вернуться в форму облака, на это превращение тоже требуется 1 минута.
\nЕсли существо находится в форме облака и летит в момент, когда заклинание прекращает действовать, существо опускается на 60 футов за раунд в течение 1 минуты, чтобы безопасно приземлиться. Если оно не успевает приземлиться за 1 минуту, оставшееся расстояние оно падает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "11", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Rasseivanie-zla-i-dobra-_-Dispel-Evil-and-Good.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Rasseivanie-zla-i-dobra-_-Dispel-Evil-and-Good.json new file mode 100755 index 0000000..6d948a6 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Rasseivanie-zla-i-dobra-_-Dispel-Evil-and-Good.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рассеивание зла и добра / Dispel Evil and Good", + "img": "icons/magic/air/wind-vortex-swirl-blue-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Мерцающая энергия окружает вас, защищая от фей, нежити и тварей, происходящих не с Материального плана. Пока длится заклинание, бестии, небожители, нежить, феи и элементали получают помеху к броскам атаки по вам.
Вы можете прервать заклинание досрочно, использовав одну из перечисленных особых функций.
Разрушение чар. В качестве действия вы касаетесь существа в зоне вашей досягаемости, которое &reference[charmed]{обворожено} или &reference[frightened]{испугано} бестией, небожителем, нежитью, феей или элементалем либо в которое вселилось подобное существо, и прекращаете этот эффект.
Возвращение. В качестве действия совершите атаку заклинанием в ближнем бою по бестии, небожителю, нежити, фее или элементалю в зоне вашей досягаемости. При попадании вы можете попытаться отправить существо на его родной план. Существо должно пройти испытание Харизмы, при провале оно отправится на родной план (если оно ещё не там). Нежить, если она не на родном плане, отправляется в Царство Теней, а феи — в Страну Фей.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "9", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Reinkarnatsiya-_-Reincarnate.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Reinkarnatsiya-_-Reincarnate.json new file mode 100755 index 0000000..18d9ae2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Reinkarnatsiya-_-Reincarnate.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Реинкарнация / Reincarnate", + "img": "icons/magic/nature/plant-vines-skull-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь мёртвого гуманоида или части мертвого гуманоида. Если это существо было мертво не более 10 дней, заклинание создаёт для него новое взрослое тело и вызывает его душу занять это тело. Если душа цели несвободна или не хочет вернуться, заклинание не сработает.
\nМагия создаёт для существа новое тело, из-за чего его раса может поменяться. Мастер бросает [[/r d100]] и сверяется с таблицей, чтобы определить, какую форму существо примет, вернувшись к жизни. Как вариант, мастер может сам выбрать форму
\n| [[/r d100]] | \nРаса | \n
|---|---|
| 01-04 | \nДраконорождённый | \n
| 05-13 | \nДварф холмовой | \n
| 14-21 | \nДварф горный | \n
| 22-25 | \nЭльф тёмный | \n
| 26-34 | \nЭльф высший | \n
| 35-42 | \nЭльф лесной | \n
| 43-46 | \nГном лесной | \n
| 47-52 | \nГном скальный | \n
| 53-56 | \nПолуэльф | \n
| 57-60 | \nПолуорк | \n
| 61-68 | \nПолурослик легконогий | \n
| 69-76 | \nПолурослик крепкий | \n
| 77-96 | \nЧеловек | \n
| 97-00 | \nТифлинг | \n
Реинкарнированное существо помнит о своей прошлой жизни и её событиях. Оно сохраняет прежние способности и особенности, кроме тех, что были связаны с расой. Вместо последних оно получает особенности новой расы.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Roy-saranchi-_-Insect-Plague.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Roy-saranchi-_-Insect-Plague.json new file mode 100755 index 0000000..c311b3f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Roy-saranchi-_-Insect-Plague.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рой саранчи / Insect Plague", + "img": "icons/creatures/invertebrates/wasp-swarm-tan.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Рой кусающейся саранчи заполняет сферу радиусом 20 футов вокруг выбранной вами точки в пределах дистанции. Сфера распространяется и за углы. Сфера существует, пока длится заклинание, видимость в ней слегка &reference[lightlyobscured]{затруднена}, а её область - &reference[difficultterrain]{пересечённая местность}.
Когда сфера появляется, каждое существо в ней должно пройти испытание Выносливости. Существо получает [[/r 4d10]] колющего урона при провале или половину этого урона при успехе. Существо также должно пройти это испытание, когда впервые за ход входит в область заклинания или заканчивает в ней свой ход.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 5-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d10", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ruka-Bigbi-_-Bigby's-Hand.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ruka-Bigbi-_-Bigby's-Hand.json new file mode 100755 index 0000000..c390ac1 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ruka-Bigbi-_-Bigby's-Hand.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рука Бигби / Bigby's Hand", + "img": "icons/magic/perception/hand-eye-black.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте ладонь крупного размера из мерцающей полупрозрачной силы в незанятом пространстве, которое видите в пределах дистанции. Рука существует, пока длится заклинание, и перемещается по вашему приказу, повторяя движение вашей руки
Рука — это объект с КБ 20 и ПЗ, равными вашему максимуму ПЗ. Если её ПЗ снижаются до 0, заклинание прекращается. У руки Сила 26 ([[/r 1d20+8]] (+8)) и Ловкость 10 ([[/r 1d20+0]] (+0)). Рука не занимает пространство полностью
Когда вы сотворяете это заклинание, а также в качестве бонусного действия в свои последующие ходы, вы можете переместить руку на расстояние до 60 футов, а затем вызвать с её помощью один из следующих эффектов.
Могучая рука. Рука пытается толкнуть существо в пределах 5 футов от себя в направлении на ваш выбор. Пройдите проверку Силы руки в состязании с проверкой Силы (Атлетика) цели. Если цель среднего размера или меньше, у вас преимущество. При успехе рука отталкивает цель на расстояние до 5 футов плюс количество футов, равное вашему модификатору заклинательной характеристики, умноженному на 5. Рука перемещается вместе с целью, оставаясь в пределах 5 футов от неё.
Преграждающая рука. Рука становится между вами и существом на ваш выбор, пока вы не дадите ей другой приказ. Рука перемещается, чтобы всегда оставаться между вами и целью, и дает вам &reference[cover]{укрытие наполовину} от цели. Цель не может пройти сквозь пространство руки, если Сила цели ниже или равна Силе руки. Если Сила цели выше, она может пройти сквозь пространство руки, но оно считается для цели &reference[difficultterrain]{пересеченной местностью}.
Сжатый кулак. Рука наносит удар существу или объекту в пределах 5 футов от себя. Совершите атаку заклинанием в ближнем бою с помощью руки, используя ваши параметры. При попадании цель получает [[/r 4d8]] урона силой.
Хваткая рука. Рука пытается захватить существо размером не более огромного в пределах 5 футов от неё. Используйте значение Силы руки при проверке захвата. Если цель среднего размера или меньше, у вас преимущество к проверке. Пока рука держит цель в &reference[grappled]{захвате}, вы можете использовать бонусное действие, чтобы заставить руку сдавить цель. При этом цель получает дробящий урон, равный [[/r 2d6]] + ваш модификатор заклинательной характеристики.
На высоких кругах.
Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, урон от сжатого кулака увеличивается на [[/r 2d8]], а урон от хваткой руки на [[/r 2d6]]за каждый круг ячейки выше 5-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d8", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "9", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Sfera-neuyazvimosti-_-Globe-of-Invulnerability.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Sfera-neuyazvimosti-_-Globe-of-Invulnerability.json new file mode 100755 index 0000000..bb06e6f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Sfera-neuyazvimosti-_-Globe-of-Invulnerability.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сфера неуязвимости / Globe of Invulnerability", + "img": "icons/magic/unholy/orb-glowing-yellow-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Неподвижный, слабо мерцающий барьер возникает в 10-футовом радиусе вокруг вас и существует, пока длится заклинание.
\n\n\nЛюбое заклинание 5-го круга или ниже, сотворённое за пределами барьера, не влияет на существ и объекты в пределах барьера, даже если оно сотворено с использованием ячейки более высокого круга. Такое заклинание может быть нацелено на существ и объекты под защитой барьера, но не подействует на них. Аналогично область в пределах барьера исключена из областей, на которые воздействуют заклинания извне.\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, барьер блокирует заклинания на один круг выше за каждый круг ячейки выше 6-го.Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Silovaya-sfera-Otilyuka-_-Otiluke's-Resilient-Sphere.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Silovaya-sfera-Otilyuka-_-Otiluke's-Resilient-Sphere.json new file mode 100755 index 0000000..a748812 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Silovaya-sfera-Otilyuka-_-Otiluke's-Resilient-Sphere.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Силовая сфера Отилюка / Otiluke's Resilient Sphere", + "img": "icons/magic/control/debuff-chains-orb-movement-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Мерцающая силовая сфера окружает существо или объект крупного размера или меньше в пределах дистанции. Несогласное существо должно пройти испытание Ловкости. При провале существо останется в плену сферы, пока длится заклинание.
Ничто — ни физические объекты, ни энергия, ни заклинания и их эффекты — не может пройти сквозь этот барьер ни внутрь, ни наружу. Впрочем, существо может свободно дышать внутри барьера. Сфера невосприимчива ко всему урону. Существо или объект внутри сферы нельзя поразить атаками или эффектами извне, а само оно не может нанести урон кому-либо снаружи.
Сфера невесома и имеет точно такой размер, чтобы внутри поместилось существо или объект. Запертое в сфере существо может использовать действие, чтобы надавить на стены сферы и катить её с половиной своей скорости или менее. Аналогично сферу могут поднимать или перемещать снаружи другие существа
Заклинание @Compendium[laaru-dnd5-hw.spells.KMGALOtvIkVjYggc]{Дезинтеграция}, сотворённое на сферу, уничтожает ее, не нанося вреда тому, кто внутри.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Silovaya-stena-_-Wall-of-Force.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Silovaya-stena-_-Wall-of-Force.json new file mode 100755 index 0000000..b1bf136 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Silovaya-stena-_-Wall-of-Force.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Силовая стена / Wall of Force", + "img": "icons/magic/air/air-pressure-shield-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Невидимая стена из магической силы возникает в выбранной вами точке в пределах дистанции. Вы выбираете, как ориентирована стена, она может быть как горизонтальной, так и вертикальной или под углом. Она может свободно парить в воздухе или стоять на твёрдой поверхности. Вы можете придать ей форму полушария или сферы радиусом до 10 футов либо форму плоской поверхности, состоящей из десяти участков 10 на 10 футов каждый. Все участки должны быть состыкованы в единое целое. В любой форме толщина стены 4 дюйма. Она существует, пока длится заклинание. Если стена при появлении проходит через пространство, где находилось существо, она выталкивает его по одну из сторон стены (на ваш выбор).
\nНичто не может физически пройти сквозь стену. Она невосприимчива к любому урону, её нельзя рассеять заклинанием @Compendium[laaru-dnd5-hw.spells.ZdDJVUlzYudd4nHO]{Рассеивание магии}. Заклинание @Compendium[laaru-dnd5-hw.spells.KMGALOtvIkVjYggc]{Дезинтеграция} мгновенно уничтожает стену. Стена также существует на Эфирном плане, преграждая эфирное перемещение сквозь неё.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Slovo-vozvrashcheniya-_-Word-of-Recall.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Slovo-vozvrashcheniya-_-Word-of-Recall.json new file mode 100755 index 0000000..32b633f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Slovo-vozvrashcheniya-_-Word-of-Recall.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слово возвращения / Word of Recall", + "img": "icons/environment/settlement/house-wooden-fence.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы и не более пяти согласных существ в пределах 5 футов от вас мгновенно телепортируетесь в заранее подготовленное убежище. Вы и существа, телепортировавшиеся с вами, появляетесь в незанятом пространстве, ближайшем к точке, которую вы выбрали при подготовке убежища (см. далее). Если вы сотворите заклинание, не подготовив заранее убежище, оно не сработает.
\nВам надо заранее подготовить убежище, сотворив это заклинание в неком месте, посвященном вашему божеству или связанном с ним, например в храме. Если вы попытаетесь сотворить заклинание таким образом вместе, никак не связанном с вашим божеством, оно не сработает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "6", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Smertel�noe-oblako-_-Cloudkill.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Smertel�noe-oblako-_-Cloudkill.json new file mode 100755 index 0000000..a9290d5 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Smertel�noe-oblako-_-Cloudkill.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Смертельное облако / Cloudkill", + "img": "icons/creatures/slimes/slime-movement-swirling-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте сферу ядовитого жёлто-зелёного тумана радиусом 20 футов вокруг выбранной вами точки в пределах дистанции. Туман распространяется и за углы. Он существует, пока длится заклинание или пока его не развеет сильный ветер. В его области &reference[heavilyobscured]{видимость крайне затруднена}.
Когда существо впервые за ход входит в область заклинания или начинает в ней свой ход, оно должно пройти испытание Выносливости. Существо получает [[/r 5d8]] урона ядом при провале или половину этого урона при успехе. Яд влияет на существ, даже если они задерживают дыхание или в принципе не дышат.
В начале каждого вашего хода область тумана перемещается от вас на 10 футов, двигаясь вдоль поверхности земли. Поскольку пары тяжелее воздуха, они спускаются в любые расселины в земле и просачиваются вниз в отверстия.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 6-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 5-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "poison" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Snovidenie-_-Dream.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Snovidenie-_-Dream.json new file mode 100755 index 0000000..c2322e2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Snovidenie-_-Dream.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сновидение / Dream", + "img": "icons/magic/nature/moon-crescent.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание управляет сновидениями существа. Выберите известное вам существо целью заклинания. Цель должна быть на том же плане бытия, что и вы. На существ, которые никогда не спят (вроде эльфов), заклинание не действует. Вы или согласное существо, которого вы коснетесь, входите в состояние транса и действуете как посланник. Находясь в трансе, посланник знает, что происходит вокруг него, но не может ни действовать, ни перемещаться.
\nЕсли цель спит, посланник появляется в ее сне и может общаться с целью, пока она спит и пока длится заклинание. Посланник также может менять мир сна: создавать в нём новые места, предметы и другие образы. Посланник может выйти из транса в любой момент, досрочно прервав действие заклинания. Проснувшись, цель будет в точности помнить сон. Если цель не спит, когда вы сотворяете заклинание, посланник узнаёт об этом и может или выйти из транса (и прекратить заклинание), или подождать, пока цель заснет, после чего посланник сможет войти в ее сны.
\nВы можете придать посланнику жуткий образ, пугающий цель. В таком случае посланник может доставить сообщение не длиннее 10 слов, а затем цель должна пройти испытание Мудрости. При провале отголосок ужаса будет преследовать цель на протяжении всего сна, превратив его в кошмар, и в результате цель не получит пользы от отдыха. Кроме того, когда цель проснётся, она получит [[/r 3d6]] психического урона. Если у вас есть локон волос, ноготь или другая часть тела цели, она проходит испытание с помехой.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Solnechnyy-luch-_-Sunbeam.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Solnechnyy-luch-_-Sunbeam.json new file mode 100755 index 0000000..fe630f5 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Solnechnyy-luch-_-Sunbeam.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Солнечный луч / Sunbeam", + "img": "icons/magic/light/projectile-beam-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Луч ослепительного света исходит из вашей руки в виде линии шириной 5 футов и длиной 60 футов. Каждое существо на линии должно пройти испытание Выносливости. При провале существо получает [[/r 6d8]] лучистого урона и &reference[blinded]{ослеплено} до вашего следующего хода. При успехе оно получает половину этого урона и не ослеплено. Нежить и жижи проходят испытание с помехой.
Вы можете в качестве действия создать новый луч в любой ход, пока длится заклинание.
Пока длится заклинание, у вас в руке светится сияющая крупица. Она испускает &reference[brightlight]{яркий свет} в радиусе 30 футов и &reference[dimlight]{тусклый} ещё на 30 футов. Свет считается солнечным.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "line", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d8", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Sozdanie-nezhiti-_-Create-Undead.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Sozdanie-nezhiti-_-Create-Undead.json new file mode 100755 index 0000000..6d6e855 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Sozdanie-nezhiti-_-Create-Undead.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Создание нежити / Create Undead", + "img": "icons/magic/death/undead-skeleton-worn-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это заклинание можно сотворить только ночью. Выберите не более трёх трупов небольших или средних гуманоидов в пределах дистанции. Каждый труп становится упырём под вашим контролем (параметры этих существ есть у мастера). В каждый ваш ход вы можете использовать бонусное действие, чтобы отдать мысленный приказ любому существу, которое вы создали этим заклинанием, если оно в пределах 120 футов от вас. Если вы контролируете несколько существ, можете отдать одинаковый приказ любому их количеству одновременно. Вы можете решить, какое действие совершит существо и куда переместится в свой следующий ход, а можете отдать приказ общего характера, например охранять конкретную комнату или коридор. Если вы не прикажете ничего, то существо будет только защищаться от враждебных существ. Получив приказ, существо следует ему до выполнения задачи. Существо остаётся под вашим контролем 24 часа, после чего перестаёт подчиняться вашим приказам. Чтобы сохранить контроль над существом ещё на 24 часа, вам надо снова сотворить на него это заклинание, пока нынешние 24 часа не истекли. Подобное применение заклинания позволяет вам сохранить контроль над тремя или менее существами, которых вы оживили этим заклинанием, вместо того, чтобы оживлять новых.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга, то можете оживить или продлить контроль над четырьмя упырями. Используя ячейку 8-го круга, вы можете оживить или продлить контроль над пятью упырями либо двумя вурдалаками или умертвиями. Используя ячейку 9-го круга, вы можете оживить или продлить контроль над шестью упырями, либо тремя вурдалаками или умертвиями, либо двумя мумиями.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "3", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Stena-lezviy-_-Blade-Barrier.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Stena-lezviy-_-Blade-Barrier.json new file mode 100755 index 0000000..f5abf90 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Stena-lezviy-_-Blade-Barrier.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стена лезвий / Blade Barrier", + "img": "icons/skills/ranged/daggers-thrown-salvo-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте вертикальную стену вращающихся острых лезвий из магической энергии. Стена появляется в пределах дистанции и существует, пока длится заклинание. Вы можете сделать прямую стену длиной до 100 футов, высотой до 20 футов и толщиной до 5 футов либо кольцевую стену диаметром до 60 футов, высотой до 20 футов и толщиной до 5 футов. Стена даёт существам за ней &reference[cover]{укрытие} на три четверти, ее пространство — &reference[difficultterrain]{пересеченная местность}.
Когда существо входит в область стены впервые за ход или начинает там свой ход, оно должно пройти испытание Ловкости. При провале существо получает [[/r 6d10]] режущего урона, при успехе — половину этого урона.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d10", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Stena-l�da-_-Wall-of-Ice.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Stena-l�da-_-Wall-of-Ice.json new file mode 100755 index 0000000..7388370 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Stena-l�da-_-Wall-of-Ice.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стена льда / Wall of Ice", + "img": "icons/magic/water/barrier-ice-wall-explosion.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте ледяную стену на твёрдой поверхности в пределах дистанции. Вы можете придать ей форму полушария или сферы радиусом до 10 футов либо форму плоской поверхности, состоящей из десяти участков 10 на 10 футов каждый. Все участки должны быть состыкованы в единое целое. В любой форме толщина стены 1 фут. Она существует, пока длится заклинание.
Если стена при появлении проходит через пространство, где находилось существо, она выталкивает его по одну из сторон стены. При этом существо должно пройти испытание Ловкости. При провале оно получает [[/r 10d6]] урона холодом, при успехе половину этого урона.
Стена — это объект, который можно повредить или пробить. У каждого 10-футового участка КБ 12 и 30 ПЗ, и у него @UUID[Compendium.laaru-dnd5-hw.conditions.1DDNdECOUhTph3ui]{уязвимость} к урону огнём. Если довести ПЗ 10-футового участка до 0, он будет уничтожен и превратится в завесу ледяного воздуха на том месте, где раньше находился. Существо, впервые за ход проходящее через завесу ледяного воздуха, должно пройти испытание Выносливости. При провале существо получает [[/r 5d6]] урона холодом, при успехе — половину этого урона.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, урон, который стена наносит при появлении, увеличивается на [[/r 2d6]], а урон завесы ледяного воздуха увеличивается на [[/r 1d6]] за каждый круг ячейки выше 6-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d6", + "cold" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Strazh-very-_-Guardian-of-Faith.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Strazh-very-_-Guardian-of-Faith.json new file mode 100755 index 0000000..7e5fd58 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Strazh-very-_-Guardian-of-Faith.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Страж веры / Guardian of Faith", + "img": "icons/creatures/magical/spirit-undead-winged-ghost.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, призрачный страж крупного &reference[size]{размера} появляется и парит в незанятом пространстве на ваш выбор, которое вы видите в пределах дистанции. Страж занимает это пространство. У него нет отличительных черт, кроме сверкающего меча и щита, на котором нанесён символ вашего божества.
\nЛюбое существо, враждебное вам, которое впервые за ход переместится в область в пределах 10 футов от стража, должно пройти испытание Ловкости. Существо получает 20 лучистого урона при провале или половину этого урона при успехе. Страж исчезает после того, как нанесёт суммарно 60 урона.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "20", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Svoboda-dvizheniy-_-Freedom-of-Movement.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Svoboda-dvizheniy-_-Freedom-of-Movement.json new file mode 100755 index 0000000..4158a38 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Svoboda-dvizheniy-_-Freedom-of-Movement.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Свобода движений / Freedom of Movement", + "img": "icons/magic/control/debuff-chains-shackles-movement-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу. Пока длится заклинание, &reference[difficultterrain]{пересечённая местность} не влияет на его перемещение, а заклинания и другие магические эффекты не могут ни снизить его скорость, ни &reference[paralyzed]{парализовать} его, ни &reference[restrained]{обездвижить}.
Цель также может потратить 5 футов перемещения, чтобы автоматически освободиться из немагических пут вроде кандалов или &reference[grappled]{захвата} другого существа. Наконец, нахождение под водой не даёт штрафов к перемещению и атакам цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Svyaz�-s-inym-planom-_-Contact-Other-Plane.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Svyaz�-s-inym-planom-_-Contact-Other-Plane.json new file mode 100755 index 0000000..d1735b0 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Svyaz�-s-inym-planom-_-Contact-Other-Plane.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Связь с иным планом / Contact Other Plane", + "img": "icons/creatures/slimes/bubbling-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы мысленно связываетесь с полубогом, духом давно почившего мудреца или иной таинственной сущностью с иного плана бытия. Связь с межпланарным разумом может повредить вашему собственному рассудку или даже свести с ума. Когда вы творите это заклинание, пройдите испытание Интеллекта со СЛ 15. При провале вы получаете [[/r 6d6]] психического урона и остаётесь безумны, пока не завершите долгий отдых. Во время безумия вы не можете совершать действия, не понимаете, что говорят другие существа, не можете читать и говорите только бред. Заклинание @Compendium[laaru-dnd5-hw.spells.lFqzcFBz3F0u96i1]{Высшее восстановление}, сотворенное на вас, прекращает этот эффект.
\nПри успехе вы можете задать сущности не более пяти вопросов. Вы должны задать вопросы, пока длится заклинание. Мастер ответит на каждый вопрос одним словом, например: «да», «нет», «возможно», «никогда», «неважно» или «неизвестно» (если сущность не знает ответа на вопрос). В случае если подобный ответ может быть неправильно понят, мастер может дать ответ короткой фразой.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "int", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "ritual", + "vocal", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Taynovidenie-_-Scrying.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Taynovidenie-_-Scrying.json new file mode 100755 index 0000000..fa9f464 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Taynovidenie-_-Scrying.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Тайновидение / Scrying", + "img": "icons/commodities/treasure/crystal-ball-blue-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы можете видеть и слышать конкретное существо на ваш выбор, если оно на одном плане бытия с вами. Цель должна пройти испытание Мудрости, модификаторы к которому зависят от того, насколько хорошо вы знаете цель и какого рода физическую связь с ней имеете. Если цель знает, что вы творите это заклинание, она может добровольно провалить испытание, если она согласна на ваше наблюдение
| Знание | Модификатор испытания |
|---|---|
| Из вторых рук (вы слышали о цели) | +5 |
| Из первых рук (вы встречали цель) | +0 |
| Знакомы (вы хорошо знаете цель) | −5 |
| Связь | Модификатор испытания |
|---|---|
| Портрет | −2 |
| Предмет или одежда | −4 |
| Часть тела, локон волос, ноготь и тому подобное | −10 |
При успехе испытания заклинание не влияет на цель, а вы не можете снова сотворить это заклинание против нее следующие 24 часа.
При провале заклинание создаёт невидимый сенсор в пределах 10 футов от цели. Вы можете видеть и слышать так, будто находитесь на месте сенсора. Сенсор перемещается вместе с целью, всегда оставаясь в 10 футах от неё, пока длится заклинание. Существо, способное видеть &reference[invisible]{невидимое}, видит сенсор как светящийся шар размером с ваш кулак.
Вместо того чтобы выбрать целью существо, можете выбрать место, которое видели раньше. При этом сенсор появляется в указанном месте и не перемещается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Taynyy-sunduk-Leomunda-_-Leomund's-Secret-Chest.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Taynyy-sunduk-Leomunda-_-Leomund's-Secret-Chest.json new file mode 100755 index 0000000..3297ba0 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Taynyy-sunduk-Leomunda-_-Leomund's-Secret-Chest.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Тайный сундук Леомунда / Leomund's Secret Chest", + "img": "icons/containers/chest/chest-wooden-tied-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы прячете сундук вместе со всем его содержимым на Эфирном плане. Вам надо коснуться сундука и его модели, которые служат реагентами для заклинания. Сундук может вмещать до 12 кубических футов неживой материи (3 фута на 2 фута на 2 фута).
\nПока сундук остаётся на эфирном плане, вы можете использовать действие и коснуться его модели, чтобы вызвать сундук. Он появится в незанятом пространстве на земле в пределах 5 футов от вас. Вы можете отправить сундук обратно на Эфирный план, использовав действие и коснувшись и сундука, и его модели.
\nПо истечении 60 дней появляется накапливающийся шанс (5% в день), что заклинание прекратит действовать. Оно также прекращает действовать, если вы снова сотворите это заклинание, если модель сундука уничтожена или если вы прекратите заклинание, потратив действие. Если заклинание прекращает действовать, пока большой сундук находится на Эфирном плане, он утерян безвозвратно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Telekinez-_-Telekinesis.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Telekinez-_-Telekinesis.json new file mode 100755 index 0000000..43d83b6 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Telekinez-_-Telekinesis.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Телекинез / Telekinesis", + "img": "icons/skills/toxins/cup-goblet-poisoned-spilled.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы получаете способность силой мысли перемещать существ или объекты и манипулировать ими. Когда вы сотворяете это заклинание и в качестве действия в каждый раунд, пока оно длится, вы можете управлять силой мысли одним существом или объектом, который вы видите в пределах дистанции, создавая один из перечисленных далее эффектов. Вы можете воздействовать на одну и ту же цель в каждом раунде, а можете каждый раз выбирать новую. Если вы поменяете цель, заклинание прекращает влиять на предыдущую.
Существо. Вы можете переместить существо огромного размера или меньше. Пройдите проверку вашей заклинательной характеристики в состязании с проверкой Силы существа. Если вы выиграли, можете переместить существо на расстояние до 30 футов в любом направлении, в том числе вверх, но не за пределы дистанции заклинания. До конца вашего следующего хода существо &reference[restrained]{обездвижено} вашим телекинетическим захватом. Существо, поднятое вверх, останется подвешенным в воздухе.
В последующие раунды вы можете использовать действие, чтобы попытаться поддержать ваш телекинетический захват на существе, повторяя это состязание.
Объект. Вы можете переместить объект, весящий не более 1 000 фунтов. Если это не предмет, который носят или держат, переместите его на расстояние до 30 футов в любом направлении, но не за пределы дистанции заклинания.
Если это предмет, который носит или держит существо, пройдите проверку вашей заклинательной характеристики в состязании с проверкой Силы существа. При успехе можете забрать предмет у существа и переместить его на расстояние до 30 футов в любом направлении, но не за пределы дистанции заклинания.
Вы можете в точности контролировать движения предметов телекинетическим захватом: орудовать простыми инструментами, открывать двери и контейнеры, доставать из контейнеров предметы и убирать их, выливать содержимое пузырьков.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Telepaticheskie-uzy-Rari-_-Rary's-Telepathic-Bond.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Telepaticheskie-uzy-Rari-_-Rary's-Telepathic-Bond.json new file mode 100755 index 0000000..4c1267d --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Telepaticheskie-uzy-Rari-_-Rary's-Telepathic-Bond.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Телепатические узы Рари / Rary's Telepathic Bond", + "img": "icons/magic/control/energy-stream-link-large-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте телепатическую связь между не более чем восемью согласными существами на ваш выбор в пределах дистанции. Вы соединяете каждое существо со всеми остальными, пока длится заклинание. На существ со значением Интеллекта 2 или ниже заклинание не действует.
Пока длится заклинание, цели могут общаться телепатически, даже если не знают общий язык. Связь возможна на любом расстоянии, но не между разными планами бытия.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "9", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ternovaya-stena-_-Wall-of-Thorns.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ternovaya-stena-_-Wall-of-Thorns.json new file mode 100755 index 0000000..8a968d0 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ternovaya-stena-_-Wall-of-Thorns.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Терновая стена / Wall of Thorns", + "img": "icons/magic/nature/root-vine-barrier-wall-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте стену из толстых и гибких переплетённых ветвей, ощетинившихся острыми, как иглы, колючками. Стена появляется в пределах дистанции на твёрдой поверхности и существует, пока длится заклинание. Стена может быть до 60 футов в длину, 10 футов в высоту и 5 футов в толщину либо может быть кольцом до 20 футов в диаметре, 20 футов в высоту и 5 футов в толщину. Стена блокирует линию видимости.
\nКогда стена появляется, каждое существо в пределах ее области должно пройти испытание Ловкости. При провале существо получает [[/r 7d8]] колющего урона, при успехе — половину этого урона.
\nСущество может пройти сквозь стену, но это долго и больно. За каждый фут перемещения сквозь стену существо тратит 4 фута скорости. Кроме того, когда существо впервые за ход входит в стену или заканчивает в ней свой ход, оно должно пройти испытание Ловкости. При провале существо получает [[/r 7d8]] режущего урона, при успехе — половину этого урона.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 7-го круга или выше, оба типа урона увеличиваются на [[/r 1d8]] за каждый круг ячейки выше 6-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "7d8", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tsepkaya-liana-_-Grasping-Vine.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tsepkaya-liana-_-Grasping-Vine.json new file mode 100755 index 0000000..f15b081 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tsepkaya-liana-_-Grasping-Vine.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Цепкая лиана / Grasping Vine", + "img": "icons/magic/nature/root-vine-beanstolk-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете лиану, которая вырастает из-под земли в незанятом пространстве на ваш выбор, которое вы видите в пределах дистанции. Когда вы творите это заклинание, можете приказать лиане, чтобы она притянула существо в пределах 30 футов от неё, которое вы видите. Существо должно пройти испытание Ловкости, при провале оно будет притянуто на 20 футов по прямой в сторону лианы.
Пока длится заклинание, вы можете в качестве бонусного действия в ваш ход приказать лиане притянуть это же существо или другое.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tsep�-molniy-_-Chain-Lightning.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tsep�-molniy-_-Chain-Lightning.json new file mode 100755 index 0000000..53c4831 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tsep�-molniy-_-Chain-Lightning.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Цепь молний / Chain Lightning", + "img": "icons/magic/lightning/bolt-forked-large-blue-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "10d8", + "lightning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tvorenie-_-Creation.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tvorenie-_-Creation.json new file mode 100755 index 0000000..8696048 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Tvorenie-_-Creation.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Творение / Creation", + "img": "icons/magic/light/explosion-star-glow-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы вытягиваете клочья теневой ткани из Царства Теней и создаёте в пределах дистанции неживой объект из растительной материи: ткани, верёвки, древесину или что-то подобное. Вы можете также использовать заклинание, чтобы создать минеральные объекты, такие как камни, кристаллы или металл. Созданный объект должен быть не больше 5-футового куба и иметь форму и материал, которые вы раньше видели.
\nДлительность заклинания зависит от материала объекта. Если он создан из разных материалов, используйте самую короткую длительность.
\n| Материал | \n\n Длительность \n | \n
|---|---|
| Растительная материя | \n1 день | \n
| Камень или кристалл | \n12 часов | \n
| Драгоценный металл | \n1 час | \n
| Драгоценный камень | \n10 минут | \n
| Адамантин или мифрал | \n1 минута | \n
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "spec" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ubiystvennyy-fantazm-_-Phantasmal-Killer.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ubiystvennyy-fantazm-_-Phantasmal-Killer.json new file mode 100755 index 0000000..ed4841f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Ubiystvennyy-fantazm-_-Phantasmal-Killer.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Убийственный фантазм / Phantasmal Killer", + "img": "icons/magic/death/undead-ghost-strike-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы проникаете в кошмары существа, которое видите в пределах дистанции, и создаёте иллюзорный образ его тайных страхов, который видит только сама цель. Цель должна пройти испытание Мудрости. При провале цель &reference[frightened]{испугана}, пока длится заклинание. Цель проходит испытание Мудрости в конце каждого своего хода, пока длится заклинание, и при провале получает [[/r 4d10]] психического урона. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 4-го,
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d10", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Upravlenie-vodoy-_-Control-Water.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Upravlenie-vodoy-_-Control-Water.json new file mode 100755 index 0000000..2684c1c --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Upravlenie-vodoy-_-Control-Water.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Управление водой / Control Water", + "img": "icons/magic/symbols/rune-sigil-horned-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы управляете любой свободной водой в выбранной вами области (куб с ребром до 100 футов). При сотворении вы можете выбрать один из перечисленных эффектов заклинания. В качестве действия в свой ход вы можете повторить тот же эффект или выбрать другой.
Водоворот. Для этого эффекта требуется водоём площадью не менее 50 на 50 футов и глубиной не менее 25 футов. Водоворот образует воронку 5 футов в ширину у основания, 50 футов в ширину наверху и 25 футов в высоту в центре области. Любое существо или объект в воде в пределах 25 футов от воронки будет притянуто на 10 футов в её сторону. Существо может отплыть от воронки, успешно пройдя проверку Силы (Атлетика). СЛ равна СЛ испытаний против ваших заклинаний.
Когда существо впервые за ход попадает в воронку или начинает в ней свой ход, оно должно пройти испытание Силы. При провале существо получает [[/r 2d8]] дробящего урона и остаётся затянутым в воронку, пока длится заклинание. При успехе существо получает половину этого урона и не затянуто в воронку. Существо, затянутое в воронку, может использовать действие, чтобы попытаться выплыть из нее, как описано выше, но у него помеха к этой проверке Силы (Атлетика).
Когда объект впервые за ход оказывается в воронке, он получает [[/r 2d8]] дробящего урона. Этот урон повторяется каждый раунд, пока он остаётся в воронке.
Перенаправление потока. Вы заставляете текущую воду в области течь в другом направлении на ваш выбор, даже если воде придется перетекать через препятствия, вверх по стенам или в других необычных направлениях. Вода в области двигается туда, куда вы её направите, но, выйдя за пределы области, она снова течёт в обычном направлении. Вода продолжает течь в указанном вами направлении, пока длится заклинание или пока вы не выберете иной эффект.
Потоп. Вы заставляете уровень всей стоячей воды в области подняться на 20 футов. Если в область входит берег, вода выплескивается на него.
Если вы выбрали область внутри большего водоёма, вместо этого вы создаёте 20-футовую волну, которая проносится с одной стороны области на другую, а затем обрушивается. Любой транспорт огромного размера или меньше на пути волны будет перенесён на другой конец области. Любой транспорт огромного размера или меньше, попавший под удар волны, переворачивается с шансом [[/r 1d100]]{25%}.
Уровень воды остаётся высоким, пока длится заклинание или пока вы не выберете иной эффект. Если эффект вызвал волну, она повторяется в начале вашего следующего хода, пока длится эффект потопа.
Разделение вод. Вы заставляете воду в области расступиться, создав проход. Он тянется через всю область действия, а расступившаяся вода образует стены по бокам. Проход остаётся, пока длится заклинание или пока вы не выберете иной эффект. После этого воды плавно заполнят проход в течение следующего раунда, пока не восстановится обычный уровень воды.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Uvyadanie-_-Blight.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Uvyadanie-_-Blight.json new file mode 100755 index 0000000..8a16f0f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Uvyadanie-_-Blight.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Увядание / Blight", + "img": "icons/commodities/treasure/mask-bone-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Энергия некромантии омывает существо по вашему выбору, которое вы видите в пределах дистанции, и высасывает из него жизненные соки. Цель должна пройти испытание Выносливости. При провале цель получает [[/r 8d8]] некротического урона, при успехе — половину этого урона. Заклинание не действует на нежить и конструкции.
Если ваша цель — существо-растение или магическое растение, оно проходит испытание с помехой и заклинание наносит ему максимальный урон.
Если ваша цель — немагическое растение (не существо, а просто дерево или куст), оно не проходит испытание, а просто засыхает и умирает.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 4-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d8", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vernaya-sobaka-Mordenkaynena-_-Mordenkainen's-Faithful-Hound.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vernaya-sobaka-Mordenkaynena-_-Mordenkainen's-Faithful-Hound.json new file mode 100755 index 0000000..c4bd848 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vernaya-sobaka-Mordenkaynena-_-Mordenkainen's-Faithful-Hound.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Верная собака Морденкайнена / Mordenkainen's Faithful Hound", + "img": "icons/creatures/mammals/humanoid-wolf-dog-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете призрачную сторожевую собаку в незанятом пространстве, которое видите в пределах дистанции. Она остается там, пока длится заклинание, пока вы не прекратите его действием или пока не переместитесь более чем на 100 футов от нее.
Собака &reference[invisible]{невидима } для всех существ, кроме вас, и ей нельзя навредить. Когда существо размером не меньше небольшого проходит в пределах 30 футов от собаки, не назвав пароль, который вы устанавливаете при сотворении, собака начинает громко лаять. Собака видит невидимых существ и даже Эфирный план, а иллюзии игнорирует.
В начале каждого вашего хода собака пытается укусить враждебное вам существо в пределах 5 футов от себя. Бонус атаки собаки равен вашему модификатору заклинательной характеристики + ваш бонус умения. При попадании она наносит [[/r 4d8]] колющего урона.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d8", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volna-razrusheniya-_-Destructive-Wave.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volna-razrusheniya-_-Destructive-Wave.json new file mode 100755 index 0000000..e10c55a --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volna-razrusheniya-_-Destructive-Wave.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волна разрушения / Destructive Wave", + "img": "icons/skills/ranged/projectile-strike-egg-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы наносите удар по земле и создаёте взрыв божественной энергии, исходящей кругами от вас. Каждое выбранное вами существо в пределах 30 футов от вас должно пройти испытание Выносливости. При провале оно получает [[/r 5d6]] урона громом, а также [[/r 5d6]] лучистого или некротического урона (на ваш выбор) и &reference[prone]{распластывается }. При успехе существо получает половину этого урона и не распластывается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d6", + "thunder" + ], + [ + "5d6", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 17, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volshebnye-vrata-_-Arcane-Gate.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volshebnye-vrata-_-Arcane-Gate.json new file mode 100755 index 0000000..204ccbb --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volshebnye-vrata-_-Arcane-Gate.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебные врата / Arcane Gate", + "img": "icons/magic/fire/orb-vortex.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте взаимосвязанные телепортационные порталы, которые остаются открытыми, пока длится заклинание. Выберите две точки на земле, которые видите, одну в пределах 10 футов от вас, а другук в пределах 500 футов от вас. Над каждой из них открывается круглый портал 10 футов диаметром. Если портал должен открыться в точке, занимаемой существом, заклинание не срабатывает и потрачено зря.
\nПорталы — двухмерные светящиеся кольца, в которых клубится туман. Они висят в нескольких дюймах от земли, перпендикулярно к ней, в выбранных вами точках. Кольцо видно только с одной стороны (на ваш выбор), с которой оно работает как портал.
\nЛюбое существо или объект, попав в один портал, выходит из другого, как если бы они находились рядом. Если пройти в портал с обратной стороны, никакого эффекта не будет. Туман, клубящийся в порталах, не позволяет видеть через них. В ваш ход вы можете в качестве бонусного действия повернуть кольца, чтобы портал оказался с другой стороны.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 500, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volshebnyy-glaz-_-Arcane-Eye.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volshebnyy-glaz-_-Arcane-Eye.json new file mode 100755 index 0000000..2bbeddd --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Volshebnyy-glaz-_-Arcane-Eye.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный глаз / Arcane Eye", + "img": "icons/magic/perception/orb-eye-scrying.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте невидимый магический глаз в пределах дистанции.
\nОн парит в воздухе, пока длится заклинание. Мысленно вы видите все, что видит глаз. У него обычное зрение и ночное зрение в пределах 30 футов. Глаз может смотреть в любом направлении
\nВ качестве действия вы можете переместить глаз на расстояние до 30 футов в любом направлении. Нет ограничений по расстоянию, на которое глаз может удалиться от вас, но на другие планы бытия он переходить не может. Твёрдый барьер преграждает движение глаза, но тот может проходить в отверстия диаметром не менее 1 дюйма.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vozvrashchenie-k-zhizni-_-Raise-Dead.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vozvrashchenie-k-zhizni-_-Raise-Dead.json new file mode 100755 index 0000000..f9a54f2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vozvrashchenie-k-zhizni-_-Raise-Dead.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Возвращение к жизни / Raise Dead", + "img": "icons/magic/life/heart-area-circle-red-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь мёртвого существа и возвращаете его к жизни, если оно было мертво не дольше 10 дней. Если душа существа свободна и хочет вернуться в тело, существо оживает с1 ПЗ.
\nЗаклинание нейтрализует все яды и исцеляет немагические болезни, влиявшие на существо на момент смерти. Однако заклинание не снимает магические болезни, проклятия и тому подобные эффекты. Если их не снять перед сотворением этого заклинания, они продолжат действовать, когда существо вернётся к жизни. Заклинание не может вернуть к жизни нежить.
\nЗаклинание заставляет все смертельные раны зарасти, но потерянные части тела не восстанавливает. Если существу не хватает жизненно важных частей тела или органов — например, головы, — заклинание автоматически не срабатывает.
\nВозвращение из мёртвых — тяжёлое испытание. Цель получает штраф -4 ко всем броскам атак, испытаниям и проверкам характеристик. Каждый раз, когда цель завершает долгий отдых, штраф уменьшается на 1, пока не исчезнет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vysshaya-nevidimost�-_-Greater-invisibility.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vysshaya-nevidimost�-_-Greater-invisibility.json new file mode 100755 index 0000000..bba5814 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vysshaya-nevidimost�-_-Greater-invisibility.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Высшая невидимость / Greater invisibility", + "img": "icons/creatures/magical/spirit-fear-energy-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы или существо, которого вы коснулись, становитесь &reference[invisible]{невидимы }, пока длится заклинание. Всё снаряжение, которое цель носит или держит, также &reference[invisible]{невидимо }, пока оно у цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vysshee-vosstanovlenie-_-Greater-Restoration.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vysshee-vosstanovlenie-_-Greater-Restoration.json new file mode 100755 index 0000000..c3db80b --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Vysshee-vosstanovlenie-_-Greater-Restoration.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Высшее восстановление / Greater Restoration", + "img": "icons/magic/nature/leaf-flower-wreath-glow-green-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснувшись к существу, вы отменяете вредоносный эффект позитивной энергией. Вы можете уменьшить &reference[exhaustion]{утомление} существа на одну степень или прекратить один из следующих эффектов, действующих на цель:
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zagotovka-_-Contingency.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zagotovka-_-Contingency.json new file mode 100755 index 0000000..202cd1f --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zagotovka-_-Contingency.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Заготовка / Contingency", + "img": "icons/magic/unholy/projectiles-blood-salvo-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выберите заклинание не выше 5-го круга, которое вы можете сотворить на себя и со временем сотворения в 1 действие. Сотворите это заклинание - так называемое заготовленное заклинание — как часть заклинания заготовка, потратив ячейки заклинаний на оба. Однако заготовленное заклинание не оказывает эффект, пока не наступят определенные условия. Опишите условия, творя эти заклинания. К примеру, @Compendium[laaru-dnd5-hw.spells.IvdiS3qF88EYLPki]{Дыхание под водой}, сотворённое с заготовкой, может вступить в действие, когда вы окажетесь под водой или в иной жидкости.
\nЗаготовленное заклинание вступает в действие немедленно, как только впервые наступает указанное условие, хотите вы того или нет. После этого заготовка прекращается.
\nЗаготовленное заклинание оказывает эффект только на вас, даже если обычно действует и на других существ. Вы можете использовать только одно заклинание заготовка одновременно. Если сотворить это заклинание снова, эффект предыдущего заклинания заготовка прекращается. Также заготовка прекращается, если статуэтка-реагент более не при вас.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "10", + "units": "day" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zameshatel�stvo-_-Confusion.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zameshatel�stvo-_-Confusion.json new file mode 100755 index 0000000..96d586a --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zameshatel�stvo-_-Confusion.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Замешательство / Confusion", + "img": "icons/creatures/amphibians/frog-confused-green-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Заклинание затуманивает разум существ, вызывая у них бред и провоцируя на неуправляемые действия. Каждое существо в пределах сферы радиусом 10 футов вокруг выбранной вами точки в пределах дистанции должно пройти испытание Мудрости, при провале оно попадает под влияние заклинания.
Под влиянием заклинания цель не может совершать ответные действия и должна бросать [[/r d10]] в начале каждого своего хода, чтобы определить, как она поведёт себя в этот ход.
| [[/r d10]] | Поведение |
|---|---|
| 1 | Цель тратит всю свою скорость на перемещение в случайном направлении. Чтобы определить направление, бросьте [[/r d8]], назначив направление для каждого значения. В этот ход существо не совершает действие. |
| 2-6 | Цель не перемещается и не совершает действий в этот ход. |
| 7-8 | Цель использует действие, чтобы совершить атаку ближнего боя по случайно выбранному существу в пределах зоны досягаемости. Если в зоне досяга емости нет существ, цель ничего не делает в этот ход |
| 9-10 | Цель перемещается и действует как обычно. |
В конце каждого своего хода цель может пройти испытание Мудрости. При успехе заклинание прекращает действовать на неё.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, радиус сферы увеличивается на 5 футов за каждый круг ячейки выше 4-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zapret-_-Forbiddance.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zapret-_-Forbiddance.json new file mode 100755 index 0000000..889a0b9 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zapret-_-Forbiddance.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Запрет / Forbiddance", + "img": "icons/magic/water/strike-ice-blades.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте оберег против магического перемещения, который покрывает до 40 000 квадратных футов площади и пространство до 30 футов в высоту над землёй. Пока длится заклинание, существа не могут телепортироваться в эту область и входить в неё через порталы вроде тех, что создаёт заклинание @Compendium[laaru-dnd5-hw.spells.vStdomjAhcRaeA3x]{Врата}. Заклинание защищает область и от планарного путешествия, не позволяя существам попасть в область при помощи Астрального плана, Эфирного плана, Страны Фей, Царства Теней или заклинания @Compendium[laaru-dnd5-hw.spells.gxAncMbwLb3QJayh]{Планарный переход}.
\nКроме того, заклинание наносит урон тем типам существ, которые вы выберете при сотворении. Выберите один или несколько типов существ: бестии, небожители, нежить, феи, элементали. Когда существо выбранного типа впервые за ход входит в область заклинания или начинает в ней свой ход, это существо получает [[/r 5d10]] лучистого или некротического урона (тип урона вы выбираете при сотворении).
\nКогда вы сотворяете это заклинание, вы можете указать пароль. Существо, которое произнесёт пароль, входя в область заклинания, не получит урона.
\nОбласть заклинания не может пересекаться с ещё одной областью заклинания запрет. Если творить запрет каждый день в течение 30 дней в одном и том же месте, то заклинание будет действовать, пока не рассеяно, а реагенты при последнем сотворении исчезают.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 16. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 16. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "veryRare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "1", + "units": "day" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zashchita-ot-smerti-_-Death-Ward.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zashchita-ot-smerti-_-Death-Ward.json new file mode 100755 index 0000000..69dfbdd --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Zashchita-ot-smerti-_-Death-Ward.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от смерти / Death Ward", + "img": "icons/magic/life/ankh-shadow-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, частично защищая его от смерти.
\nКогда ПЗ этого существа впервые упадут до 0 из-за получения урона, они вместо этого понижаются только до 1, а заклинание прекращает действовать
\nЕсли заклинание действует, когда цель подвергается эффекту, который должен убить ее мгновенно, не нанося урона, этот эффект отменяется для цели, а заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Znanie-legend-_-Legend-Lore.json b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Znanie-legend-_-Legend-Lore.json new file mode 100755 index 0000000..5f3d5c2 --- /dev/null +++ b/test_tube_merchant/items/good/scrolls/Svitok-zaklinaniya_-Znanie-legend-_-Legend-Lore.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Знание легенд / Legend Lore", + "img": "icons/skills/trades/academics-investigation-study-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Назовите или опишите личность, место или объект. Заклинание позволит вам вкратце узнать значимые сведения о названной теме. Сведения могут включать как общеизвестные факты, так и забытые легенды, и даже тайное знание, известное лишь немногим. Если то, что вы назвали, не обладает достаточной для легенд значимостью, вы не получите никаких сведений. Чем больше вы уже знаете о теме, тем более точными и подробными будут полученные сведения.
Сведения, которые вы получите, точны, но могут быть изложены иносказательно. К примеру, если вас интересует загадочный магический топор, заклинание может выдать что-то вроде: «Горе тому злодею, чья длань коснётся сего топора, ибо даже рукоять его карает зло. Лишь истинное Дитя Камня, возлюбленное Морадином и любящее его, способно пробудить истинную мощь топора, и лишь со священным словом „Рудногг\" на устах».
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 17
Бонус атаки: +9.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 15. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "rare", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "mgc", + "vocal", + "somatic", + "material", + "mgc" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/baraban-_-drum.json b/test_tube_merchant/items/good/skin/baraban-_-drum.json new file mode 100755 index 0000000..da718b8 --- /dev/null +++ b/test_tube_merchant/items/good/skin/baraban-_-drum.json @@ -0,0 +1,91 @@ +{ + "name": "Барабан / Drum", + "type": "tool", + "img": "icons/tools/instruments/drum-brown-red.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Drum" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Барабан любой разновидности, чтобы вызвать трепет, изумление или страх у ваших слушателей. Умение в обращении с этим музыкальным инструментом позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с исполнением музыки на нём. Бард может использовать музыкальный инструмент как фокусирующий предмет для своих заклинаний.
\nУмение в обращении с барабаном означает, что вы знакомы с приёмами игры на нём. Вы также знаете несколько песен, как правило, исполняющихся на этом музыкальном инструменте.
\nИстория. Ваш опыт помогает вам вспомнить исторические факты, связанные с вашим инструментом.
\nИсполнение. Ваши постановки заметно улучшаются, когда вы включаете в них игру на инструменте.
\nСочинение мелодии. Частью долгого отдыха вы можете сочинить новую мелодию и слова для песни, исполняемой на своем инструменте. Вы можете использовать эту способность, чтобы произвести впечатление на дворянина или распространять скандальные слухи вместе с легко запоминающейся мелодией.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Опознать мелодию на слух | \n10 | \n
| Импровизация мелодии | \n20 | \n
Внутри эта сумка гораздо больше, чем снаружи. На вид она диаметром около 2 футов в горловине и глубиной 4 фута. Но вмещает она до 500 фунтов груза объёмом не более 64 кубических футов. Сумка весит 15 фунтов вне зависимости от содержимого. Чтобы достать предмет из сумки, требуется действие.
Если сумку перегрузить, проткнуть или порвать, она уничтожена, а её содержимое оказывается разбросано по Астральному плану. Если сумку вывернуть наизнанку, её содержимое вывалится, не пострадав, но сумку нужно будет вывернуть обратно, прежде чем снова использовать. Дышащие существа могут прожить в сумке не дольше 10 минут, разделённых на количество существ (минимум 1 минуту), после чего начинают задыхаться.
Если поместить бездонную сумку в межпространственный карман, созданный @Compendium[laaru-dnd5-hw.items.viRDmCTZf2wWbQx7]{Удобным рюкзаком Хьюварда}, @UUID[Compendium.laaru-dnd5-hw.items.Item.dATyJzva8Y5GaKDy]{Карманной ямой} или аналогичным предметом, это немедленно уничтожит оба предмета и откроет врата на Астральный план. Врата открываются там, где один предмет поместили в другой. Любое существо в пределах 10 футов от врат будет затянуто через них в случайное место на Астральном плане. Затем врата закрываются. Они односторонние, и снова их открыть нельзя.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 15, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "capacity": { + "type": "weight", + "value": 500 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "На вид эта сумка диаметром около 2 футов в горловине и глубиной 4 фута.
" + }, + "container": null, + "properties": [ + "mgc", + "weightlessContents" + ], + "attuned": false + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/ekzoticheskoe-sedlo.json b/test_tube_merchant/items/good/skin/ekzoticheskoe-sedlo.json new file mode 100755 index 0000000..74c6551 --- /dev/null +++ b/test_tube_merchant/items/good/skin/ekzoticheskoe-sedlo.json @@ -0,0 +1,128 @@ +{ + "name": "Экзотическое седло", + "type": "equipment", + "img": "icons/equipment/shoulder/pauldron-segmented-red.webp", + "system": { + "description": { + "value": "Тип седла, которое крепится на спине лошади и предназначено для поддержки всадника и крепления части снаряжения лошади, например, стремян.
Экзотическое седло необходимо для водных и летающих скакунов.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 40, + "units": "lb" + }, + "price": { + "value": 60, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "type": { + "value": "clothing", + "baseItem": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [], + "attack": { + "bonus": "", + "flat": false + }, + "enchantment": null, + "summons": null, + "attuned": false + }, + "effects": [], + "folder": null, + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Exotic Saddle" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/el�fijskie-sapogi-_-boots-of-elvenkind.json b/test_tube_merchant/items/good/skin/el�fijskie-sapogi-_-boots-of-elvenkind.json new file mode 100755 index 0000000..814f0bb --- /dev/null +++ b/test_tube_merchant/items/good/skin/el�fijskie-sapogi-_-boots-of-elvenkind.json @@ -0,0 +1,129 @@ +{ + "name": "Эльфийские сапоги / Boots of Elvenkind", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Boots%20of%20Elvenkind.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "boots%20of%20elvenkind_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Boots of Elvenkind", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Пока вы носите эти сапоги, ваши шаги бесшумны независимо от поверхности, по которой вы идёте. У вас также преимущество к проверкам Ловкости (Скрытность), зависящим от бесшумной ходьбы.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 0, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/klyopanyj-kozhanyj-dospeh-_-studded-leather-armor.json b/test_tube_merchant/items/good/skin/klyopanyj-kozhanyj-dospeh-_-studded-leather-armor.json new file mode 100755 index 0000000..79a6ab7 --- /dev/null +++ b/test_tube_merchant/items/good/skin/klyopanyj-kozhanyj-dospeh-_-studded-leather-armor.json @@ -0,0 +1,124 @@ +{ + "name": "Клёпаный кожаный доспех / Studded Leather Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-rivited-red.webp", + "system": { + "description": { + "value": "Сделан из плотной, но гибкой кожи и усилен частыми заклёпками или шипами.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 13, + "units": "lb" + }, + "price": { + "value": 45, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 12, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "light", + "baseItem": "studded" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Studded Leather Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/sapogi-pripolyar�ya-_-boots-of-the-winterlands.json b/test_tube_merchant/items/good/skin/sapogi-pripolyar�ya-_-boots-of-the-winterlands.json new file mode 100755 index 0000000..00a2843 --- /dev/null +++ b/test_tube_merchant/items/good/skin/sapogi-pripolyar�ya-_-boots-of-the-winterlands.json @@ -0,0 +1,172 @@ +{ + "name": "Сапоги приполярья / Boots of the Winterlands", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Boots_of_the_winterlands-5e.webp", + "effects": [ + { + "changes": [ + { + "key": "system.traits.dr.value", + "mode": 2, + "value": "cold", + "priority": 7 + } + ], + "disabled": true, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "tint": "#ffffff", + "transfer": true, + "flags": {}, + "_id": "if3jvftc3ufsotdp", + "origin": null, + "name": "Устойчивость к холоду", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "icons/equipment/feet/boots-leather-banded-furred.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "boots%20of%20the%20winterlands_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Boots of the Winterlands", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
Эти отороченные мехом сапоги очень тёплые и удобные. Пока вы носите их, вы получаете следующую пользу:
Набор сумок, соединенных кожаным ремешком и прикрепленных к седлу скакуна.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 8, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 30 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "folder": null, + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Saddlebags" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/shlyapa,-avantyurista.json b/test_tube_merchant/items/good/skin/shlyapa,-avantyurista.json new file mode 100755 index 0000000..5dd1535 --- /dev/null +++ b/test_tube_merchant/items/good/skin/shlyapa,-avantyurista.json @@ -0,0 +1,171 @@ +{ + "name": "Шляпа, авантюриста", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/adventure_hat.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [ + { + "name": "Шляпа, авантюриста", + "origin": "Item.37LW49HWVzlhMMHX", + "duration": { + "rounds": null, + "startTime": null, + "seconds": null, + "combat": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "disabled": false, + "flags": { + "dnd5e": {}, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/adventure_hat.png", + "_id": "1W5wWFhMkQRE9gzb", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.attributes.ac.bonus", + "mode": 2, + "value": "1", + "priority": 20 + } + ], + "description": "", + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1724085811888, + "modifiedTime": 1724085825797, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/syromyatnyj-dospeh-_-hide-armor.json b/test_tube_merchant/items/good/skin/syromyatnyj-dospeh-_-hide-armor.json new file mode 100755 index 0000000..a39fa47 --- /dev/null +++ b/test_tube_merchant/items/good/skin/syromyatnyj-dospeh-_-hide-armor.json @@ -0,0 +1,124 @@ +{ + "name": "Сыромятный доспех / Hide Armor", + "type": "equipment", + "img": "icons/equipment/chest/vest-cloth-tattered-tan.webp", + "system": { + "description": { + "value": "Грубо изготовлен из толстых и тонких шкур. Их обычно носят варвары, злые гуманоиды и прочие народы, у которых нет инструментов и материалов для изготовления брони получше.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 12, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 12, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "hide" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hide Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/skin/volynka-_-bagpipes.json b/test_tube_merchant/items/good/skin/volynka-_-bagpipes.json new file mode 100755 index 0000000..ce38ee3 --- /dev/null +++ b/test_tube_merchant/items/good/skin/volynka-_-bagpipes.json @@ -0,0 +1,91 @@ +{ + "name": "Волынка / Bagpipes", + "type": "tool", + "img": "modules/laaru-dnd5-hw/assets/images/pic/bagpipes.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Bagpipes" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Волынка, чтобы вызвать трепет, изумление или страх у ваших слушателей. Умение в обращении с этим музыкальным инструментом позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с исполнением музыки на ней. Бард может использовать музыкальный инструмент как фокусирующий предмет для своих заклинаний.
\nУмение в обращении с волынкой означает, что вы знакомы с приёмами игры на нём. Вы также знаете несколько песен, как правило, исполняющихся на этом музыкальном инструменте.
\nИстория. Ваш опыт помогает вам вспомнить исторические факты, связанные с вашим инструментом.
\nИсполнение. Ваши постановки заметно улучшаются, когда вы включаете в них игру на инструменте.
\nСочинение мелодии. Частью долгого отдыха вы можете сочинить новую мелодию и слова для песни, исполняемой на своем инструменте. Вы можете использовать эту способность, чтобы произвести впечатление на дворянина или распространять скандальные слухи вместе с легко запоминающейся мелодией.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Опознать мелодию на слух | \n10 | \n
| Импровизация мелодии | \n20 | \n
Чудесный предмет
Из этой запечатанной свинцом латунной бутыли весом в 1 фунт сочится дым. Когда вы используете действие, чтобы вынуть пробку, густой дым окутывает всё в радиусе 60 футов вокруг бутылки. В области дыма видимость &reference[heavilyobscured]{крайне затруднена}. Каждую минуту, что бутылка остаётся открыта и в пределах облака, его радиус увеличивается на 10 футов, пока не достигнет максимального в 120 футов.
Облако существует, пока открыта бутылка. Чтобы её закрыть, надо произнести её командное слово в качестве действия. После закрытия бутылки облако развеется через 10 минут. Средний ветер (11-20 миль в час) может развеять облако за 1 минуту, а сильный ветер (21 миля в час и более) — за 1 раунд.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 500, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/thieves/nabor-dlya-poddelki-_-forgery-kit.json b/test_tube_merchant/items/good/thieves/nabor-dlya-poddelki-_-forgery-kit.json new file mode 100755 index 0000000..fcb3302 --- /dev/null +++ b/test_tube_merchant/items/good/thieves/nabor-dlya-poddelki-_-forgery-kit.json @@ -0,0 +1,92 @@ +{ + "name": "Набор для подделки / Forgery Kit", + "type": "tool", + "img": "icons/sundries/documents/document-sealed-brown-red.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Forgery Kit" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Коробочка с разнообразными бумагами и пергаментами, перьями и чернилами, печатями и сургучом, золотой и серебряной фольгой и прочими предметами, необходимыми, чтобы убедительно подделать документы. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с созданием поддельного документа.
\nНабор для подделки предназначен для копирования документов и упрощения копирования личной печати или подписи.
\nКомпоненты. Включает в себя чернила различных видов, пергамент и бумагу различных видов, несколько писчих перьев, печати и сургуч, золотой и серебряный листы и небольшие инструменты для лепки имитации печати из расплавленного воска.
\nМагия. Набор для подделки может быть использован вместе с навыком Магия, чтобы определить, является магический предмет настоящим или поддельным.
\nОбман. Качественно выполненная подделка, такая как документ, подтверждающий вашу знатность или предписание, гарантирующее вам безопасный проезд, может придать достоверности вашей лжи.
\nИстория. Набор для подделки вместе с вашими познаниями в истории улучшает вашу способность подделывать исторические документы или определять их подлинность.
\nРасследование. Когда вы осматриваете предмет, умение в обращении с набором для подделки помогает определить, как предмет был сделан и его подлинность.
\nДругие инструменты. Умение использовать другие инструменты делает ваши подделки более правдоподобными. Например, если вы умеете обращаться с набором для подделки и инструментами картографа, вы можете сделать поддельную карту.
\nБыстрая подделка. Частью короткого отдыха вы можете создать поддельный документ длиной не более одной страницы. Частью долгого отдыха вы можете создать документ длинной до четырёх страниц. Ваша проверка Интеллекта в использовании набора для подделки определяет СЛ проверки Интеллекта (Расследование) на определение того, что это подделка.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Подделать почерк | \n15 | \n
| Скопировать восковую печать | \n20 | \n
Сюда входит большой диапазон типов игральных карт, как немаркированных, так и маркированных. Умение в обращении с игральными картами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с этой игрой.
\nКомпоненты. Игровой набор включает в себя всё необходимое для игры в карты.
\nИстория. Ваше умение в обращении с игральными картами включает в себя знания о её прошлом, а также о важных событиях и известных исторических фигурах, связанных с игрой.
\nПроницательность. Сыграть с кем-то — это отличный способ понять его характер и что он из себя представляет, что в свою очередь позволяет вам лучше распознавать ложь и определять его настроение.
\nЛовкость рук. Это полезный навык для мухлежа в игре, поскольку позволяет вам прятать карты, а ещё, увлечь цель игрой, требующей совершения ловких движений — хорошее отвлечение при карманной краже.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Поймать игрока на мухлеже | \n15 | \n
| Понять характер оппонента | \n15 | \n
Сюда входит большой диапазон игральных костей, как простых, так и шулерских. Умение в обращении с костями позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с этой игрой.
\nКомпоненты. Игровой набор включает в себя всё необходимое для игры в кости.
\nИстория. Ваше умение в обращении с костями включает в себя знания о её прошлом, а также о важных событиях и известных исторических фигурах, связанных с игрой.
\nПроницательность. Сыграть с кем-то — это отличный способ понять его характер и что он из себя представляет, что в свою очередь позволяет вам лучше распознавать ложь и определять его настроение.
\nЛовкость рук. Это полезный навык для мухлежа в игре, поскольку позволяет вам менять неудачный результат броска кости, а ещё, увлечь цель игрой, требующей совершения ловких движений — хорошее отвлечение при карманной краже.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Поймать игрока на мухлеже | \n15 | \n
| Понять характер оппонента | \n15 | \n
Объекты, на которые вы смотрите через трубу, выглядят увеличенными вдвое.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Spyglass" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/thieves/rapira-_-rapier.json b/test_tube_merchant/items/good/thieves/rapira-_-rapier.json new file mode 100755 index 0000000..4395b14 --- /dev/null +++ b/test_tube_merchant/items/good/thieves/rapira-_-rapier.json @@ -0,0 +1,125 @@ +{ + "name": "Рапира / Rapier", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/rapier.webp", + "system": { + "description": { + "value": "Тонкий клинок из ковкого металла, легкий по весу, но достаточно длинный, предназначен для нанесения молниеносных уколов по слабым местам в обороне противника.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "rapier" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Rapier" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/thieves/ruchnoj-arbalet-_-hand-crossbow.json b/test_tube_merchant/items/good/thieves/ruchnoj-arbalet-_-hand-crossbow.json new file mode 100755 index 0000000..84a5054 --- /dev/null +++ b/test_tube_merchant/items/good/thieves/ruchnoj-arbalet-_-hand-crossbow.json @@ -0,0 +1,127 @@ +{ + "name": "Ручной арбалет / Hand Crossbow", + "type": "weapon", + "img": "icons/weapons/crossbows/handcrossbow-black.webp", + "system": { + "description": { + "value": "Лёгкий арбалет, предназначенный для использования в одной руке или пристегнутым к запястью для стрельбы лёгкими болтами.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.SItCnYBqhzqBoaWG]{Арбалетный болт}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 75, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lgt", + "lod" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "handcrossbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hand Crossbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/thieves/shlyapa-maskirovki-_-hat-of-disguise.json b/test_tube_merchant/items/good/thieves/shlyapa-maskirovki-_-hat-of-disguise.json new file mode 100755 index 0000000..d2894a8 --- /dev/null +++ b/test_tube_merchant/items/good/thieves/shlyapa-maskirovki-_-hat-of-disguise.json @@ -0,0 +1,146 @@ +{ + "name": "Шляпа маскировки / Hat of Disguise", + "type": "equipment", + "img": "icons/equipment/head/hat-belted-grey.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "hat%20of%20disguise_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "midi-qol": { + "effectActivation": false + }, + "magicitems": { + "enabled": false, + "equipped": false, + "attuned": false, + "charges": "0", + "chargeType": "c1", + "destroy": false, + "destroyFlavorText": "reaches 0 charges: it crumbles into ashes and is destroyed.", + "rechargeable": false, + "recharge": "0", + "rechargeType": "t1", + "rechargeUnit": "r1", + "sorting": "l" + }, + "babele": { + "hasTranslation": true, + "originalName": "Hat of Disguise", + "translated": true + } + }, + "system": { + "description": { + "value": "Чудесный предмет, (требуется настроенность)
Пока вы носите эту шляпу, вы можете неограниченно творить из неё заклинание @Compendium[laaru-dnd5-hw.spells.b43DxBasUIOw69tC]{изменение облика} в качестве действия. Заклинание прекращается, если шляпу снять.
Такой яд обычно изготавливают только @Compendium[laaru-dnd5-hw.monsters.XMHGgKpjb0Ss6dYl]{Дроу} и только вдали от солнечного света. Существо, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 13, при провале оно &reference[poisoned]{отравлено} на 1 час. При провале на 5 или более существо также &reference[unconscious]{теряет сознание}, пока отравлено таким образом. Существо приходит в сознание, если получает урон или когда другое существо разбудит его, потратив действие.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "poison", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": { + "classIdentifier": "", + "restrictions": { + "allowMagical": true, + "type": "weapon" + }, + "items": {} + }, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/thieves/zmeinyj-yad-_-serpent-venom.json b/test_tube_merchant/items/good/thieves/zmeinyj-yad-_-serpent-venom.json new file mode 100755 index 0000000..32ebb98 --- /dev/null +++ b/test_tube_merchant/items/good/thieves/zmeinyj-yad-_-serpent-venom.json @@ -0,0 +1,184 @@ +{ + "name": "Змеиный яд / Serpent Venom", + "type": "consumable", + "img": "icons/consumables/potions/round-decorated-snake-green.webp", + "effects": [ + { + "name": "Змеиный яд / Serpent Venom", + "flags": { + "dnd5e": { + "type": "enchantment", + "enchantment": { + "level": { + "min": null, + "max": null + }, + "riders": { + "effect": [], + "item": [] + } + } + }, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "icons/consumables/potions/round-decorated-snake-green.webp", + "_id": "D6G2jFD7QTvKQ5NB", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.damage.parts", + "mode": 2, + "value": "[[\"3d6\",\"poison\"]]", + "priority": 20 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1724696140907, + "modifiedTime": 1724696181449, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "serpent%20venom_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Serpent Venom", + "translated": true + } + }, + "system": { + "description": { + "value": "(оружейный)
\nЭтот яд надо собрать у мёртвой или &reference[incapacitated]{выведенной из строя} @Compendium[laaru-dnd5-hw.monsters.HsLTyUOpDJvXQRAE]{гигантской ядовитой змеи}. Существо, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 11, получая 10 ([[/r 3d6]]) урона ядом при провале или половину этого урона при успехе.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "ench", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "poison", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": { + "classIdentifier": "", + "restrictions": { + "allowMagical": true, + "type": "" + }, + "items": {} + }, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/tools/instrumenty-alhimika-_-alchemist's-supplies.json b/test_tube_merchant/items/good/tools/instrumenty-alhimika-_-alchemist's-supplies.json new file mode 100755 index 0000000..c93a1c8 --- /dev/null +++ b/test_tube_merchant/items/good/tools/instrumenty-alhimika-_-alchemist's-supplies.json @@ -0,0 +1,92 @@ +{ + "name": "Инструменты алхимика / Alchemist's Supplies", + "type": "tool", + "img": "icons/tools/laboratory/vials-blue-pink.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Alchemist's Supplies" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия алхимией и позволяют персонажу создавать полезные варева, такие как кислота или алхимический огонь. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
Компоненты. Инструменты алхимика включают в себя две стеклянные мензурки, металлический каркас, удерживающий мензурку над открытым пламенем, стеклянную палочку для размешивания, небольшие ступку и пестик, мешочек обычных алхимических ингредиентов, включающих в себя соль, измельчённое железо и дистиллированную воду.
Магия. Умение в обращении с инструментами алхимика позволяет вам раскрыть больше информации при проверках Магии, связанных с зельями и подобными веществами.
Расследование. Когда вы осматриваете область в поиске улик, умение в обращении с инструментами алхимика даёт дополнительные знания о том, какие химикаты и прочие вещества использовались в области.
Алхимическое ремесло. Вы можете использовать умением в обращении с инструментами для создания алхимических предметов. Персонаж может потратить деньги, чтобы собрать сырьё, которое весит 500 грамм за каждые использованные 50 зм. Мастер может позволить персонажу пройти проверку на опознание с преимуществом. Частью долгого отдыха вы можете использовать инструменты алхимика, чтобы сделать одну порцию @UUID[Compendium.dnd5e.items.Sx5E6utixHdAbGNb]{кислоты}, @UUID[Compendium.dnd5e.items.FvNOwWbh5FXyX4xe]{алхимического огня}, @UUID[Compendium.dnd5e.items.Fc6UfFNOnW80XMzi]{противоядия}, @UUID[Compendium.dnd5e.items.psoZaItkOScMVaHL]{масла}, @UUID[Compendium.dnd5e.items.uuh4UH3Jx5CsFjdA]{духов} или @UUID[Compendium.dnd5e.items.REBWkTKe6lJaIkpn]{мыла}. Вычтите половину стоимости созданного предмета из суммарной стоимости собранного вами сырья.
| Возможное действие | СЛ |
|---|---|
| Создать клубы густого дыма | 10 |
| Опознать яд | 10 |
| Опознать вещество | 15 |
| Получить огонь | 15 |
| Нейтрализовать кислоту | 20 |
Эти специальные инструменты включают предметы, необходимые для занятия гончарным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nИспользуются для создания различных керамических предметов, наиболее распространённые из них — это горшки и подобные сосуды.
\nКомпоненты. Инструменты гончара включают в себя гончарные иглы, цикли, скребки, нож и кронциркуль.
\nИстория. Ваши знания и опыт помогают вам опознавать керамические предметы, получая сведения о том, когда они были сделаны и из каких мест или какой культуры они происходят.
\nВнимание, Расследование. Вы получаете дополнительные знания при осмотре керамики, находя зацепки, которые другие могут проглядеть, на небольших неровностях и сколах.
\nВоссоздание облика. Рассмотрев керамические черепки, вы можете определить происхождение предмета, его изначальную форму и возможное предназначение.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Определить, что было в сосуде | \n15 | \n
| Создать прочный горшок | \n15 | \n
| Найти слабое место керамического предмета | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия изобразительным искусством. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПозволяет вам писать красками и рисовать карандашом. Вы также разбираетесь в истории искусств, что может помочь вам при осмотре произведений искусства.
\nКомпоненты. Инструменты художника включают в себя мольберт, холст, краски, кисти, угольные карандаши и палитру.
\nИстория, Магия, Религия. Ваш опыт помогает вам раскрыть знания любого рода, которые связаны с произведениями искусства, как, например, магические свойства картины или происхождение странной фрески, найденной в подземелье.
\nВнимание, Расследование. Когда вы осматриваете картину или подобное произведение изобразительного искусства, ваша осведомлённость о способах их создания может дать вам дополнительные знания.
\nНаписание и рисование. Частью короткого или долгого отдыха вы можете создать простое произведение искусства. Хотя ваше творение и может быть недостаточно точным, вы можете запечатлеть образ или сцену, или на скорую руку сделать копию виденного вами художественного произведения.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Написать точный портрет | \n10 | \n
| Создать картину со скрытым посланием | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия кожевенным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПознания в кожевенном деле распространяются на знания о шкурах животных и их свойствах. Они также включают в себя знания о кожаных доспехах и аналогичных вещах.
\nКомпоненты. Инструменты кожевенника включают кожевенный резак (нож), небольшую киянку, канавкорез, пробойник, нить и куски кожи.
\nМагия. Ваши знания и опыт в работе с кожей дают вам дополнительные знания при обследовании магических предметов, сделанных из кожи, как, например, ботинки или некоторые плащи.
\nРасследование. Вы получаете дополнительные знания, когда исследуете кожаные предметы или улики, связанные с ними, также вы используете свои познания в кожевничестве, чтобы находить зацепки, которые другие бы просмотрели.
\nОпознание кожи. Смотря на кусок кожи или кожаный предмет, вы можете определить источник кожи и любые особые методы, использованные в её обработке. Например, вы можете обнаружить разницу между кожей, выделанной с использованием дварфийских методик, и кожей, выделанной с использованием методик полуросликов.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Изменить внешний вид кожаного предмета | \n10 | \n
| Определить прошлое кожаного предмета | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия кузнечным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nИнструменты кузнеца позволяют вам работать с металлом, нагревая его для изменения формы, восстанавливая повреждения или создавая из слитков полезные предметы.
\nКомпоненты. Инструменты кузнеца включают в себя молоты, клещи, уголь, ветошь и точильный камень.
\nИстория, Магия. Ваш опыт даёт вам дополнительные знания при обследовании металлических предметов, таких как, например, оружие.
\nРасследование. Вы можете обнаруживать зацепки, которые другие могут не заметить, когда расследование касается брони, оружия или прочих изделий металлообработки.
\nПочинка. При наличии доступа к инструментам и открытому огню, жара которого достаточно, чтобы сделать металл пластичным, вы можете восстанавливать по 10 ПЗ повреждённого металлического предмета за каждый час работы.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Заточить затупившийся клинок | \n10 | \n
| Починить комплект доспехов | \n15 | \n
| Разъединить немагический металлический предмет | \n20 | \n
Ими пользуются для морской навигации. Умение в обращении с этими инструментами позволяет вам прокладывать курс судна и пользоваться навигационными картами. Кроме того, эти инструменты позволяют вам добавить ваш бонус умения к любой проверке характеристики, связанной с ориентацией в море.
\nУмение в обращении с инструментами навигатора помогает вам определить правильный курс, основываясь на наблюдении за звёздами. Они также позволяют вам разбираться в чтении схем и карт, благодаря выработанному у вас чувство направления.
\nКомпоненты. Инструменты навигатора включают в себя секстант, компас, кронциркуль, линейку, пергамент, чернила и писчее перо.
\nВыживание. Умение обращаться с инструментами навигатора помогает вам не заблудиться и даёт знания о наиболее вероятном расположении дорог и населённых пунктов.
\nОпределение положения. Проведя тщательные измерения, вы можете определить своё положение на морской навигационной карте и время суток.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Проложить курс | \n10 | \n
| Определить своё местоположение на морской навигационной карте | \n15 | \n
Эти специальные инструменты включают предметы, необходимые для занятия резьбой. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПозволяют вам создавать сложные предметы из дерева, такие как деревянные фигурки или стрелы.
\nКомпоненты. Инструменты резчика включают в себя нож, стамеску и маленькую пилу.
\nИстория, Магия. Ваш опыт даёт вам дополнительные знания при осмотре деревянных предметов, таких как статуэтки или стрелы.
\nПрирода. Ваши познания о древесине дают вам дополнительные знания, когда вы изучаете деревья.
\nПочинка. Частью короткого отдыха вы можете починить один повреждённый деревянный предмет.
\nСделать стрелы. Частью короткого отдыха вы можете сделать до 5 стрел, а частью долгого отдыха вы можете сделать до 12. Вы должны иметь под рукой древесину для изготовления стрел.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Сделать небольшую деревянную фигурку | \n10 | \n
| Вырезать замысловатый узор на древесине | \n15 | \n
Эти специальные инструменты включают предметы, необходимые для выдувания стекла. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nВладеющий инструментами стеклодува не только умеет выдувать стекло, но также знает особые методики изготовления стеклянных предметов.
\nКомпоненты. Инструменты стеклодува включают в себя трубку для выдувания, маленькую стеклодувную обкатку, катальник, развёртки и щипцы. Вам нужен источник тепла для работы со стеклом.
\nИстория, Магия. Ваши знания техник выдувания стекла помогают вам, когда вы изучаете стеклянный предмет, как, например, флакон с зельем или стеклянный предмет, найденный в сокровищах. Например, вы можете изучить, как стеклянный флакон с зельем изменился под действием своего содержимого, что поможет определить эффект зелья. Зелье может оставить осадок, деформировать стекло или окрасить его.
\nРасследование. Когда вы изучаете область, ваши знания могут помочь вам, если улики включают в себя разбитые стекла или стеклянные предметы.
\nОпределение слабого места. Потратив 1 минуту, вы можете найти слабое место стеклянного предмета. Любой урон, наносимый предмету при атаке по слабому месту, удваивается.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Определить происхождение стекла | \n10 | \n
| Определить, что когда-то содержал стеклянный предмет | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия ткачеством. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПозволяют вам шить одежду и подгонять её по фигуре.
\nКомпоненты. Инструменты ткача включают в себя нитки, иголки и куски ткани. Вы умеете пользоваться ткацким станком, но подобное оборудование слишком громоздкое для транспортировки.
\nИстория. Ваш опыт даёт вам дополнительные знания при осмотре предметов гардероба, включая плащи и прочие накидки.
\nРасследование. Используя свои знания о процессе пошива одежды, при обследовании гобеленов, обивки, одежды и прочих тканых предметов, вы можете обнаруживать зацепки, которые другие могут не заметить.
\nПочинка. Частью короткого отдыха вы можете починить один повреждённый предмет одежды.
\nПошив одежды. Частью долгого отдыха вы можете создать одежду для существа при наличии достаточного количества ткани и ниток.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Повторное использование ткани | \n10 | \n
| Заштопать дырку в ткани | \n10 | \n
| Подшить наряд | \n15 | \n
Использование ломика как рычага (если это возможно) даёт преимущество к проверкам Силы.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crowbar" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/tools/nabor-travnika-_-herbalism-kit.json b/test_tube_merchant/items/good/tools/nabor-travnika-_-herbalism-kit.json new file mode 100755 index 0000000..4c5f9d0 --- /dev/null +++ b/test_tube_merchant/items/good/tools/nabor-travnika-_-herbalism-kit.json @@ -0,0 +1,92 @@ +{ + "name": "Набор травника / Herbalism Kit", + "type": "tool", + "img": "icons/tools/laboratory/mortar-powder-green.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Herbalism Kit" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Сюда входят различные инструменты вроде щипцов, ступки и пестика, а также кошельки и пузырьки, которыми пользуются травники, чтобы готовить лекарства и зелья. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с определением и использованием трав. Также это умение требуется, чтобы приготовить противоядие и зелье исцеления.
\nУмение в обращении с набором травника позволяет вам распознавать растения и безопасно собирать их полезные части.
\nКомпоненты. Набор травника включает в себя мешочки для хранения трав, секатор и кожаные перчатки для сбора растений, несколько стеклянных банок, ступку и пестик.
\nМагия. Ваша осведомлённость в природе и использовании растений может дать дополнительные знания к магическим исследованиям, когда дело касается растений и попыток опознать зелье.
\nРасследование. Когда вы обследуете заросшую растениями зону, владение этим набором помогает вам находить детали и зацепки, которые другие бы проглядели.
\nМедицина. Ваше умение в обращении с набором травника улучшает ваши способности лечить болезни и раны, расширяя доступные методы благодаря использованию лекарственных растений.
\nВыживание и Природа. Когда вы путешествуете в дикой местности, ваши навыки травничества облегчают опознание растений и поиск источников еды, которые другие могут не заметить.
\nОпознание растений. Вы можете быстро распознать большинство растений по запаху и внешнему виду.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Найти растения | \n15 | \n
| Опознать яд | \n20 | \n
Состоит из кремня, кресала и трут (обычно это сухая тряпка, пропитанная маслом). Используется для разжигания огня. На то, чтобы зажечь им факел или какое-то еще открытое горючее, требуется действие. На разжигание любого другого огня уйдет 1 минута.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Tinderbox" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/tools/uvelichitel�noe-steklo-_-magnifying-glass.json b/test_tube_merchant/items/good/tools/uvelichitel�noe-steklo-_-magnifying-glass.json new file mode 100755 index 0000000..f44b424 --- /dev/null +++ b/test_tube_merchant/items/good/tools/uvelichitel�noe-steklo-_-magnifying-glass.json @@ -0,0 +1,45 @@ +{ + "name": "Увеличительное стекло / Magnifying Glass", + "type": "loot", + "img": "icons/tools/scribal/magnifying-glass.webp", + "system": { + "description": { + "value": "Позволяет разглядеть мелкие предметы. Может также служить заменой кремню и кресалу для разжигания костра. Чтобы разжечь костёр с помощью увеличительного стекла, требуется яркий свет (как солнечный), который можно сфокусировать, трут для поджигания и примерно 5 минут, прежде чем пламя разгорится. Увеличительное стекло даёт преимущество ко всем проверкам характеристик, требуемым для оценки и изучения маленьких или детальных предметов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Magnifying Glass" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/tools/zerkal�ce-stal�noe-_-steel-mirror.json b/test_tube_merchant/items/good/tools/zerkal�ce-stal�noe-_-steel-mirror.json new file mode 100755 index 0000000..de13a45 --- /dev/null +++ b/test_tube_merchant/items/good/tools/zerkal�ce-stal�noe-_-steel-mirror.json @@ -0,0 +1,45 @@ +{ + "name": "Зеркальце стальное / Steel Mirror", + "type": "loot", + "img": "icons/sundries/survival/mirror-plain.webp", + "system": { + "description": { + "value": "Зеркало из отполированной стали.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.5, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Steel Mirror" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/trinkets/alhimicheskij-kuvshin-_-alchemy-jug.json b/test_tube_merchant/items/good/trinkets/alhimicheskij-kuvshin-_-alchemy-jug.json new file mode 100755 index 0000000..807a587 --- /dev/null +++ b/test_tube_merchant/items/good/trinkets/alhimicheskij-kuvshin-_-alchemy-jug.json @@ -0,0 +1,129 @@ +{ + "name": "Алхимический кувшин / Alchemy Jug", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/alchemy-jug.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "alchemy%20jug_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Alchemy Jug", + "translated": true + } + }, + "system": { + "description": { + "value": "Этот керамический кувшин на вид вмещает галлон жидкости и весит 12 фунтов, что полный, что пустой. Но даже когда он пуст, в глубине кувшина слышен плеск, если его встряхнуть.
Вы можете использовать действие и назвать любую жидкость из указанных в таблице ниже, и она появится в кувшине. Затем можете в качестве действия вынуть пробку из кувшина и вылить жидкость не более 2 галлонов в минуту. Максимальный объём жидкости, который кувшин может создать, зависит от её типа.
Если кувшин начал производить жидкость, он не может произвести ни другую жидкость, ни эту же жидкость сверх максимума, до следующего рассвета.
| Жидкость | Максимум |
|---|---|
| Кислота | 8 унций |
| Яд обычный | ½ унции |
| Мёд | 1 галлон |
| Пиво | 4 галлона |
| Майонез | 2 галлона |
| Масло | 1 кварта |
| Уксус | 2 галлона |
| Вода пресная | 8 галлонов |
| Вода солёная | 12 галлонов |
| Вино | 1 галлон |
Эти специальные инструменты включают предметы, необходимые для занятия алхимией и позволяют персонажу создавать полезные варева, такие как кислота или алхимический огонь. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
Компоненты. Инструменты алхимика включают в себя две стеклянные мензурки, металлический каркас, удерживающий мензурку над открытым пламенем, стеклянную палочку для размешивания, небольшие ступку и пестик, мешочек обычных алхимических ингредиентов, включающих в себя соль, измельчённое железо и дистиллированную воду.
Магия. Умение в обращении с инструментами алхимика позволяет вам раскрыть больше информации при проверках Магии, связанных с зельями и подобными веществами.
Расследование. Когда вы осматриваете область в поиске улик, умение в обращении с инструментами алхимика даёт дополнительные знания о том, какие химикаты и прочие вещества использовались в области.
Алхимическое ремесло. Вы можете использовать умением в обращении с инструментами для создания алхимических предметов. Персонаж может потратить деньги, чтобы собрать сырьё, которое весит 500 грамм за каждые использованные 50 зм. Мастер может позволить персонажу пройти проверку на опознание с преимуществом. Частью долгого отдыха вы можете использовать инструменты алхимика, чтобы сделать одну порцию @UUID[Compendium.dnd5e.items.Sx5E6utixHdAbGNb]{кислоты}, @UUID[Compendium.dnd5e.items.FvNOwWbh5FXyX4xe]{алхимического огня}, @UUID[Compendium.dnd5e.items.Fc6UfFNOnW80XMzi]{противоядия}, @UUID[Compendium.dnd5e.items.psoZaItkOScMVaHL]{масла}, @UUID[Compendium.dnd5e.items.uuh4UH3Jx5CsFjdA]{духов} или @UUID[Compendium.dnd5e.items.REBWkTKe6lJaIkpn]{мыла}. Вычтите половину стоимости созданного предмета из суммарной стоимости собранного вами сырья.
| Возможное действие | СЛ |
|---|---|
| Создать клубы густого дыма | 10 |
| Опознать яд | 10 |
| Опознать вещество | 15 |
| Получить огонь | 15 |
| Нейтрализовать кислоту | 20 |
Эти специальные инструменты включают предметы, необходимые для работы с камнем. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПозволяют вам возводить каменные строения, включая стены и здания из кирпича.
\nКомпоненты. Инструменты каменщика включают в себя мастерок, молоток, долото, щётки и угольник.
\nИстория. Ваш опыт помогает вам определять дату постройки и предназначение каменного здания, а также понять, кто мог его построить.
\nРасследование. Вы получаете дополнительные знания при обследовании помещений в каменном здании.
\nВнимание. Вы замечаете неровности на каменных стенах и полах, что облегчает поиск ловушек и тайных ходов.
\nСнос. Ваши познания в каменном зодчестве позволяют вам найти уязвимые места в кладке каменных стен. Вы наносите таким строениям двойной урон своими атаками.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Продолбить небольшое отверстие в каменной стене | \n10 | \n
| Найти слабое место в каменной стене | \n15 | \n
Эти специальные инструменты включают предметы, необходимые для занятия кожевенным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПознания в кожевенном деле распространяются на знания о шкурах животных и их свойствах. Они также включают в себя знания о кожаных доспехах и аналогичных вещах.
\nКомпоненты. Инструменты кожевенника включают кожевенный резак (нож), небольшую киянку, канавкорез, пробойник, нить и куски кожи.
\nМагия. Ваши знания и опыт в работе с кожей дают вам дополнительные знания при обследовании магических предметов, сделанных из кожи, как, например, ботинки или некоторые плащи.
\nРасследование. Вы получаете дополнительные знания, когда исследуете кожаные предметы или улики, связанные с ними, также вы используете свои познания в кожевничестве, чтобы находить зацепки, которые другие бы просмотрели.
\nОпознание кожи. Смотря на кусок кожи или кожаный предмет, вы можете определить источник кожи и любые особые методы, использованные в её обработке. Например, вы можете обнаружить разницу между кожей, выделанной с использованием дварфийских методик, и кожей, выделанной с использованием методик полуросликов.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Изменить внешний вид кожаного предмета | \n10 | \n
| Определить прошлое кожаного предмета | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия кузнечным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nИнструменты кузнеца позволяют вам работать с металлом, нагревая его для изменения формы, восстанавливая повреждения или создавая из слитков полезные предметы.
\nКомпоненты. Инструменты кузнеца включают в себя молоты, клещи, уголь, ветошь и точильный камень.
\nИстория, Магия. Ваш опыт даёт вам дополнительные знания при обследовании металлических предметов, таких как, например, оружие.
\nРасследование. Вы можете обнаруживать зацепки, которые другие могут не заметить, когда расследование касается брони, оружия или прочих изделий металлообработки.
\nПочинка. При наличии доступа к инструментам и открытому огню, жара которого достаточно, чтобы сделать металл пластичным, вы можете восстанавливать по 10 ПЗ повреждённого металлического предмета за каждый час работы.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Заточить затупившийся клинок | \n10 | \n
| Починить комплект доспехов | \n15 | \n
| Разъединить немагический металлический предмет | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для работы с механизмами. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПредназначен для того, чтобы чинить множество обычных предметов. И хотя вы не можете создать большинство из них инструментами механика, вы можете починить порвавшуюся одежду, наточить затупившийся меч и подлатать истрепавшуюся кольчугу.
\nКомпоненты. Инструменты механика включают в себя различные ручные инструменты, нитки, иголки, точильный камень, куски ткани и кожи, небольшую банку клея.
\nИстория. Вы можете определить возраст и происхождение предмета, даже если у вас в наличии всего несколько частей, оставшихся от оригинала.
\nРасследование. Когда вы осматриваете повреждённый предмет, вы узнаёте, как и насколько давно он был повреждён.
\nПочинка. Вы можете восстанавливать по 10 ПЗ повреждённого предмета за каждый час работы. Для починки любого предмета вам необходим доступ к материалам, необходимым для ремонта. Для металлических предметов вам нужен доступ к открытому огню, жара которого достаточно, чтобы сделать металл пластичным.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Временно починить повреждённый механизм | \n10 | \n
| Починить предмет вдвое быстрее | \n15 | \n
| Смастерить из хлама временный предмет | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия пивоварением. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПивоварение — это искусство производства пива. Но этот процесс может использоваться не только для создания алкогольных напитков, но и для очищения воды. Создание пива требует недель для ферментации, но непосредственной работы там всего на несколько часов.
\nКомпоненты. Инструменты пивовара включают в себя большую стеклянную бутыль, немного хмеля, сифон, змеевик и несколько метров трубок.
\nИстория. Умение в обращении с инструментами пивовара даёт вам дополнительные знания при проверках Интеллекта (История), касающихся событий, важной частью которых был алкоголь.
\nМедицина. Умение в обращении с этими инструментами предоставляет дополнительные знания, когда вы облегчаете страдания от алкогольного отравления, похмелья, или, когда используете алкоголь, чтобы притупить боль.
\nУбеждение. Крепкий напиток может помочь смягчить даже каменное сердце. Ваше владение инструментами пивовара может помочь вам угостить кого-то ровно таким количеством алкоголя, сколько понадобится для того, чтобы поднять ему настроение.
\nДистилляция. Ваши знания пивоварения позволяют вам очищать воду, которая иначе была бы непригодной для питья. Частью долгого отдыха вы можете очистить до 24 литров воды или 4 литра частью короткого отдыха.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Обнаружить яд или примесь в питье | \n10 | \n
| Опознать алкоголь | \n15 | \n
| Избежать действия алкоголя | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия плотничеством. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nНавыки работы по дереву позволяют персонажу строить деревянные сооружения. Плотник может построить дом, хижину, деревянный шкаф или подобный предмет.
\nКомпоненты. Инструменты плотника включают в себя пилу, молоток, гвозди, топор, угольник, линейку, кородёр, рубанок и стамеску.
\nИстория. Умение в обращении с этими инструментами помогает вам определять происхождение и назначение деревянных строений и прочих больших деревянных объектов.
\nРасследование. Вы получаете дополнительные знания при обследовании области в деревянном здании, потому что знаете строительные хитрости, которые могут скрыть что-то от любопытных глаз.
\nВнимание. Вы можете заметить неровности на деревянных стенах и полу, что облегчает поиск ловушек и тайных ходов.
\nСкрытность. Вы можете быстро найти слабое место в деревянном полу, что облегчает вам определение мест, которые сломаются или заскрипят, если на них наступить.
\nУкрепление. За 1 минуту при наличии материалов вы можете укрепить дверь или окно. СЛ броска чтобы их выбить увеличивается на 5.
\nВременное укрытие. Частью долгого отдыха вы можете построить навес или подобное укрытие, чтобы укрыть свою группу от дождя или солнечного зноя на время отдыха. Поскольку оно было построено на скорую руку из первой попавшейся древесины, укрытие разваливается через [[/r 1d3]] дня после постройки.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Построить простое деревянное сооружение | \n10 | \n
| Спроектировать сложное деревянное строение | \n15 | \n
| Найти слабое место в деревянной стене | \n15 | \n
| Выломать дверь | \n20 | \n
В этот набор входит маленький напильник, набор отмычек, зеркальце на длинной металлической ручке, зауженные ножницы и плоскогубцы. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с попыткой взломать замок или обезвредить ловушку.
\nВоровские инструменты, возможно наиболее часто используемые искателями приключений инструменты, разработаны для взлома замков и обезвреживания ловушек. Умение в обращении с этими инструментами также даёт вам общие знания о принципах действий ловушек и замков.
\nКомпоненты. Воровские инструменты включают в себя надфиль, набор отмычек, небольшое зеркальце с металлической рукояткой, набор ножниц с узкими лезвиями и пару щипцов.
\nИстория. Ваши познания в области ловушек дают вам дополнительные знания при ответах на вопросы о местах, знаменитых своими ловушками.
\nВнимание, Расследование. Вы получаете дополнительные знания при поиске ловушек, потому что вам известны различные простые признаки, выдающие их наличие.
\nУстановка ловушки. Вы можете не только обезвреживать ловушки, но и устанавливать их. Частью короткого отдыха вы можете создать ловушку из подручных средств. Результат вашей проверки становится СЛ для пытающегося обнаружить или обезвредить ловушку. Ловушка наносит урон, соответствующий материалам, использованным при создании (как то яд или оружие), или урон, равный половине результата вашей проверки, смотря что Мастер сочтёт более подходящим.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Вскрыть замок | \nРазличная | \n
| Обезвредить ловушку | \nРазличная | \n
Эти специальные инструменты включают предметы, необходимые для занятия ювелирным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nУмение в обращении с инструментами ювелира включает в себя знание основных способов работы с драгоценностями, также позволяет опознавать драгоценные камни.
\nКомпоненты. Инструменты ювелира включают в себя небольшие пилу и молоточек, напильники, щипцы и пинцет.
\nМагия. Умение в обращении с инструментами ювелира даёт вам знания об известных способах магического применения драгоценных камней. Эти знания будут кстати при проверках Магии, связанных с драгоценными камнями или инкрустированными ими предметами.
\nРасследование. При осмотре драгоценностей владение инструментами ювелира помогает вам находить зацепки, которые другие бы просмотрели.
\nОпознание драгоценности. Вы можете опознать драгоценность и на глаз определить её стоимость.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Изменить внешний вид драгоценности | \n15 | \n
| Определить прошлое драгоценности | \n20 | \n
Приспособление с железными когтями, может использоваться с веревкой для перетаскивания или захвата.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Grappling Hook" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/trinkets/nabor-travnika-_-herbalism-kit.json b/test_tube_merchant/items/good/trinkets/nabor-travnika-_-herbalism-kit.json new file mode 100755 index 0000000..bc1fec5 --- /dev/null +++ b/test_tube_merchant/items/good/trinkets/nabor-travnika-_-herbalism-kit.json @@ -0,0 +1,84 @@ +{ + "name": "Набор травника / Herbalism Kit", + "type": "tool", + "img": "icons/tools/laboratory/mortar-powder-green.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 + 2" + } + }, + "system": { + "description": { + "value": "Сюда входят различные инструменты вроде щипцов, ступки и пестика, а также кошельки и пузырьки, которыми пользуются травники, чтобы готовить лекарства и зелья. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с определением и использованием трав. Также это умение требуется, чтобы приготовить противоядие и зелье исцеления.
\nУмение в обращении с набором травника позволяет вам распознавать растения и безопасно собирать их полезные части.
\nКомпоненты. Набор травника включает в себя мешочки для хранения трав, секатор и кожаные перчатки для сбора растений, несколько стеклянных банок, ступку и пестик.
\nМагия. Ваша осведомлённость в природе и использовании растений может дать дополнительные знания к магическим исследованиям, когда дело касается растений и попыток опознать зелье.
\nРасследование. Когда вы обследуете заросшую растениями зону, владение этим набором помогает вам находить детали и зацепки, которые другие бы проглядели.
\nМедицина. Ваше умение в обращении с набором травника улучшает ваши способности лечить болезни и раны, расширяя доступные методы благодаря использованию лекарственных растений.
\nВыживание и Природа. Когда вы путешествуете в дикой местности, ваши навыки травничества облегчают опознание растений и поиск источников еды, которые другие могут не заметить.
\nОпознание растений. Вы можете быстро распознать большинство растений по запаху и внешнему виду.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Найти растения | \n15 | \n
| Опознать яд | \n20 | \n
Объекты, на которые вы смотрите через трубу, выглядят увеличенными вдвое.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Spyglass" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/trinkets/shahmatnyj-nabor-_-chess-set.json b/test_tube_merchant/items/good/trinkets/shahmatnyj-nabor-_-chess-set.json new file mode 100755 index 0000000..6c46791 --- /dev/null +++ b/test_tube_merchant/items/good/trinkets/shahmatnyj-nabor-_-chess-set.json @@ -0,0 +1,92 @@ +{ + "name": "Шахматный набор / Chess Set", + "type": "tool", + "img": "icons/sundries/gaming/chess-knight-white.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Chess Set" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Сюда входит полный комплект шахматных фигур и доска. Доска также может быть использована для разнообразных шашечных игр. Умение в обращении с шахматами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с этой игрой.
\nКомпоненты. Игровой набор включает в себя всё необходимое для игры шахматы.
\nИстория. Ваше умение в обращении с игральными картами включает в себя знания о её прошлом, а также о важных событиях и известных исторических фигурах, связанных с игрой.
\nПроницательность. Сыграть с кем-то — это отличный способ понять его характер и что он из себя представляет, что в свою очередь позволяет вам лучше распознавать ложь и определять его настроение.
\nЛовкость рук. Это полезный навык для мухлежа в игре, поскольку позволяет вам менять местами фигуры, а ещё, увлечь цель игрой, требующей совершения ловких движений — хорошее отвлечение при карманной краже.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Поймать игрока на мухлеже | \n15 | \n
| Понять характер оппонента | \n15 | \n
В качестве действия вы можете разбросать «чеснок» из мешочка, покрыв этими шипами квадратную область размером 5 на 5 футов. Существо, входящее в эту область, должно пройти испытание Ловкости со СЛ 15, при провале оно прекратит перемещение в этот ход и получит 1 колющий урон. Пока получившее урон существо не восстановит хоть 1 ПЗ, его скорость ходьбы будет снижена на 10 футов. Существу, перемещающемуся через область с половинной скоростью, испытание проходить не нужно.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Caltrops" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/alebarda-+1-_-halberd-+1.json b/test_tube_merchant/items/good/weapon/alebarda-+1-_-halberd-+1.json new file mode 100755 index 0000000..a01e5ed --- /dev/null +++ b/test_tube_merchant/items/good/weapon/alebarda-+1-_-halberd-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Алебарда +1 / Halberd +1", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/halberd.webp", + "system": { + "description": { + "value": "Металлическое древко с копьевидным наконечником и серповидным лезвием, алебарда — надежное оборонительное оружие, позволяющее воину отбиваться от врагов, используя длинное древко для атак с безопасного расстояния.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "rch", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "halberd" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Halberd +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/arbaletnyj-bolt-+1-_-crossbow-bolt-+1.json b/test_tube_merchant/items/good/weapon/arbaletnyj-bolt-+1-_-crossbow-bolt-+1.json new file mode 100755 index 0000000..8492424 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/arbaletnyj-bolt-+1-_-crossbow-bolt-+1.json @@ -0,0 +1,114 @@ +{ + "name": "Арбалетный болт +1 / Crossbow Bolt +1", + "type": "consumable", + "img": "icons/weapons/ammunition/arrow-simple-grey.webp", + "system": { + "description": { + "value": "Этот боеприпас используется для всех разновидностей арбалетов и обычно представляет собой короткое металлическое древко с узким колющим наконечником.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим боеприпасом. При попадании в цель, боеприпас перестаёт быть магическим.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.075, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crossbow Bolt +1" + }, + "test_tube_merchant": { + "quantity": "1d2 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/boevoj-molot-+1-_-warhammer-+1.json b/test_tube_merchant/items/good/weapon/boevoj-molot-+1-_-warhammer-+1.json new file mode 100755 index 0000000..6c9fc75 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/boevoj-molot-+1-_-warhammer-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Боевой молот +1 / Warhammer +1", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-drilling-spiked.webp", + "system": { + "description": { + "value": "Тяжелый металлический молот, который можно использовать одной рукой со щитом или двумя руками для нанесения сокрушительных дробящих ударов.
Будь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
Вы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "1d10 + @mod +1" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "warhammer" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Warhammer +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/boevoj-posoh-+1-_-quarterstaff-+1.json b/test_tube_merchant/items/good/weapon/boevoj-posoh-+1-_-quarterstaff-+1.json new file mode 100755 index 0000000..3ef799e --- /dev/null +++ b/test_tube_merchant/items/good/weapon/boevoj-posoh-+1-_-quarterstaff-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Боевой посох +1 / Quarterstaff +1", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-gold.webp", + "system": { + "description": { + "value": "Толстое деревянное древко, обмотанное крепкой рукоятью, превращается в весьма функциональное оружие, которое также можно использовать как прочную трость.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "1d8 + @mod +1" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "quarterstaff" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Quarterstaff +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/boevoj-topor-+1-_-battleaxe-+1.json b/test_tube_merchant/items/good/weapon/boevoj-topor-+1-_-battleaxe-+1.json new file mode 100755 index 0000000..1f4c434 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/boevoj-topor-+1-_-battleaxe-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Боевой топор +1 / Battleaxe +1", + "type": "weapon", + "img": "icons/weapons/polearms/halberd-crescent-engraved-steel.webp", + "system": { + "description": { + "value": "Крепкое серповидное лезвие закреплено на толстом древке, обернутое прочной рукоятью. Этот топор достаточно велик, чтобы им можно было орудовать двумя руками, и украшен шипами на тыльной стороне лезвия и верхней части древка.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "slashing" + ] + ], + "versatile": "1d10 + @mod +1" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "battleaxe" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Battleaxe +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/bulava-+1-_-mace-+1.json b/test_tube_merchant/items/good/weapon/bulava-+1-_-mace-+1.json new file mode 100755 index 0000000..5e4d438 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/bulava-+1-_-mace-+1.json @@ -0,0 +1,125 @@ +{ + "name": "Булава +1 / Mace +1", + "type": "weapon", + "img": "icons/weapons/maces/mace-round-studded.webp", + "system": { + "description": { + "value": "Тяжёлое дробящее оружие, прикреплённое к концу металлической дубинки. Навершие имеет шипы и лезвия, предназначенные для пробивания доспехов и дробления костей под ними.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "mace" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mace +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/cep-+1-_-flail-+1.json b/test_tube_merchant/items/good/weapon/cep-+1-_-flail-+1.json new file mode 100755 index 0000000..28ec97e --- /dev/null +++ b/test_tube_merchant/items/good/weapon/cep-+1-_-flail-+1.json @@ -0,0 +1,125 @@ +{ + "name": "Цеп +1 / Flail +1", + "type": "weapon", + "img": "icons/weapons/maces/flail-studded-grey.webp", + "system": { + "description": { + "value": "Несколько шипастых шаров на цепи, прикрепленных к прочному деревянному древку. Цеп наносит сокрушительный урон, когда вращается по смертоносной дуге.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 +@mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "flail" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Flail +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dlinnyj-luk-+1-_-longbow-+1.json b/test_tube_merchant/items/good/weapon/dlinnyj-luk-+1-_-longbow-+1.json new file mode 100755 index 0000000..71c4783 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dlinnyj-luk-+1-_-longbow-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Длинный лук +1 / Longbow +1", + "type": "weapon", + "img": "icons/weapons/bows/longbow-leather-green.webp", + "system": { + "description": { + "value": "Толстое древко из клеёного дерева с натянутой тетивой, способной выпускать смертоносные стрелы на большие расстояния.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 150, + "long": 600, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "longbow" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Longbow +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dlinnyj-mech-+1-_-longsword-+1.json b/test_tube_merchant/items/good/weapon/dlinnyj-mech-+1-_-longsword-+1.json new file mode 100755 index 0000000..9be1a24 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dlinnyj-mech-+1-_-longsword-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Длинный меч +1 / Longsword +1", + "type": "weapon", + "img": "icons/weapons/swords/greatsword-crossguard-steel.webp", + "system": { + "description": { + "value": "Длинный прямой клинок, предназначенный для рассечения противников, длинный меч — очень универсальное оружие, которое можно держать двумя руками для нанесения более сокрушительных ударов.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "slashing" + ] + ], + "versatile": "1d10 + @mod +1" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "longsword" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Longsword +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/drotik-+1-_-dart-+1.json b/test_tube_merchant/items/good/weapon/drotik-+1-_-dart-+1.json new file mode 100755 index 0000000..96d25b2 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/drotik-+1-_-dart-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Дротик +1 / Dart +1", + "type": "weapon", + "img": "icons/weapons/thrown/dart-feathered.webp", + "system": { + "description": { + "value": "Небольшое метательное орудие, изготовленное из короткого деревянного древка и перекрещенных перьев с острым деревянным или металлическим наконечником. Дротики могут быть брошены с достаточной силой, чтобы проткнуть кожу.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.25, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "dart" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dart +1" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dubina-+1-_-greanclub-+1.json b/test_tube_merchant/items/good/weapon/dubina-+1-_-greanclub-+1.json new file mode 100755 index 0000000..27cdd15 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dubina-+1-_-greanclub-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Дубина +1 / Greanclub +1", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-knotted.webp", + "system": { + "description": { + "value": "Более крупный вариант простой дубинки, тяжелое деревянное древко с огромным деревянным сучком на конце наносит непоправимый дробящий урон несчастным противникам.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greatclub +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dubinka-+1-_-club-+1.json b/test_tube_merchant/items/good/weapon/dubinka-+1-_-club-+1.json new file mode 100755 index 0000000..efc282f --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dubinka-+1-_-club-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Дубинка +1 / Club +1", + "type": "weapon", + "img": "icons/weapons/clubs/club-baton-blue.webp", + "system": { + "description": { + "value": "Прочный деревянный брусок образует простую, но эффективную дубинку. Это оружие используется для нанесения дробящих ударов противнику, оставляя синяки и ломая кости.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Club +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/duhovaya-trubka-+1-_-blowgun-+1.json b/test_tube_merchant/items/good/weapon/duhovaya-trubka-+1-_-blowgun-+1.json new file mode 100755 index 0000000..0e5d688 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/duhovaya-trubka-+1-_-blowgun-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Духовая трубка +1 / Blowgun +1", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/blowgun.webp", + "system": { + "description": { + "value": "Примитивное, но смертоносное оружие, любимое дикими племенами и партизанами. Дротики, выпущенные из этого оружия, могут проколоть кожу и ввести смертельную дозу яда.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 25, + "long": 100, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "blowgun" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Blowgun +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dvuruchnyj-mech-+1-_-greatsword-+1.json b/test_tube_merchant/items/good/weapon/dvuruchnyj-mech-+1-_-greatsword-+1.json new file mode 100755 index 0000000..b651d89 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dvuruchnyj-mech-+1-_-greatsword-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Двуручный меч +1 / Greatsword +1", + "type": "weapon", + "img": "icons/weapons/swords/greatsword-guard-gem-blue.webp", + "system": { + "description": { + "value": "Мощный двуручный клинок длиной более четырех футов и шириной почти пять дюймов. Это оружие требует серьезной боевой подготовки, но те, кто владеет им, становятся грозными воинами.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greatsword" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greatsword +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dvuruchnyj-molot-+1-_-maul-+1.json b/test_tube_merchant/items/good/weapon/dvuruchnyj-molot-+1-_-maul-+1.json new file mode 100755 index 0000000..acf3995 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dvuruchnyj-molot-+1-_-maul-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Двуручный молот +1 / Maul +1", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-double-engraved.webp", + "system": { + "description": { + "value": "Этот тяжелый двуручный молот сокрушает металл и кости с чудовищной силой.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "maul" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Maul +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/dvuruchnyj-topor-+1-_-greataxe-+1.json b/test_tube_merchant/items/good/weapon/dvuruchnyj-topor-+1-_-greataxe-+1.json new file mode 100755 index 0000000..93e796b --- /dev/null +++ b/test_tube_merchant/items/good/weapon/dvuruchnyj-topor-+1-_-greataxe-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Двуручный топор +1 / Greataxe +1", + "type": "weapon", + "img": "icons/weapons/axes/axe-double-engraved-black.webp", + "system": { + "description": { + "value": "Этот огромный топор имеет два спаренных серповидных лезвия, установленных по обе стороны высокого шипастого древка. Предназначен для того, чтобы орудовать им обеими руками и рассекать врагов надвое.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 7, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greataxe" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greataxe +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/glefa-+1-_-glaive-+1.json b/test_tube_merchant/items/good/weapon/glefa-+1-_-glaive-+1.json new file mode 100755 index 0000000..46fab11 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/glefa-+1-_-glaive-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Глефа +1 / Glaive +1", + "type": "weapon", + "img": "icons/weapons/polearms/halberd-crescent-glowing.webp", + "system": { + "description": { + "value": "Лезвие в виде полумесяца закрепленное на конце высокого металлического древка. Это оружие позволяет атаковать со смертоносной эффективностью с большего расстояния, чем обычное оружие ближнего боя.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "rch", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "glaive" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Glaive +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/kavalerijskaya-pika-+1-_-lance-+1.json b/test_tube_merchant/items/good/weapon/kavalerijskaya-pika-+1-_-lance-+1.json new file mode 100755 index 0000000..c4fed88 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/kavalerijskaya-pika-+1-_-lance-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Кавалерийская пика +1 / Lance +1", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/lance.webp", + "system": { + "description": { + "value": "Сверкающий стальной наконечник пробивает защиту самого стойкого врага, вбиваемый силой мчащегося скакуна. Хотя кавалерийская пика лучше всего подходит для ведения боя верхом, в умелых руках она может стать смертельно опасной и в пешем бою.
\nОсобое. У вас помеха, если вы атакуете кавалерийской пикой цель в пределах 5 футов от вас. Кроме того, для использования кавалерийской пики нужно две руки, если вы не верхом на скакуне.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "rch", + "spc", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "lance" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Lance +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/kinzhal-+1-_-dagger-+1.json b/test_tube_merchant/items/good/weapon/kinzhal-+1-_-dagger-+1.json new file mode 100755 index 0000000..9d3b46d --- /dev/null +++ b/test_tube_merchant/items/good/weapon/kinzhal-+1-_-dagger-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Кинжал +1 / Dagger +1", + "type": "weapon", + "img": "icons/weapons/daggers/dagger-jeweled-purple.webp", + "system": { + "description": { + "value": "Короткий металлический клинок, прикрепленный к небольшой рукояти и гарде. Кинжал является эффективным вспомогательным оружием для закаленных воинов или скрытым клинком для убийц и воров.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dagger +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/klevec-+1-_-war-pick-+1.json b/test_tube_merchant/items/good/weapon/klevec-+1-_-war-pick-+1.json new file mode 100755 index 0000000..7f531fc --- /dev/null +++ b/test_tube_merchant/items/good/weapon/klevec-+1-_-war-pick-+1.json @@ -0,0 +1,125 @@ +{ + "name": "Клевец +1 / War pick +1", + "type": "weapon", + "img": "icons/weapons/axes/pickaxe-iron-green.webp", + "system": { + "description": { + "value": "Грубый изогнутый шип, закрепленный на прочном древке. Предназначен для пробивания брони со смертоносной силой.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "warpick" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "War Pick +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/knut-+1-_-whip-+1.json b/test_tube_merchant/items/good/weapon/knut-+1-_-whip-+1.json new file mode 100755 index 0000000..2dd7f02 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/knut-+1-_-whip-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Кнут +1 / Whip +1", + "type": "weapon", + "img": "icons/weapons/misc/whip-red-yellow.webp", + "system": { + "description": { + "value": "Растягивающаяся плеть из кожи, шнура или цепи, которой можно поражать противников, нанося им рваные раны и изводя их на расстоянии.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "rch", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "whip" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Whip +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/kolchan-elonny-_-quiver-of-ehlonna.json b/test_tube_merchant/items/good/weapon/kolchan-elonny-_-quiver-of-ehlonna.json new file mode 100755 index 0000000..e7f8371 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/kolchan-elonny-_-quiver-of-ehlonna.json @@ -0,0 +1,67 @@ +{ + "name": "Колчан Элонны / Quiver of Ehlonna", + "type": "container", + "img": "modules/laaru-dnd5-hw/assets/images/pic/quiver-of-ehlonna.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "quiver%20of%20ehlonna_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Quiver of Ehlonna", + "translated": true + }, + "dnd5e": { + "migratedProperties": [ + "weightlessContents" + ] + } + }, + "system": { + "description": { + "value": "Чудесный предмет
Каждое из трёх отделений этого колчана связано с межпространственным карманом, что позволяет колчану хранить огромное количество предметов и весить при этом не более 2 фунтов. В маленьком отделении помещается до шестидесяти @Compendium[dnd5e.items.3c7JXOzsv55gqJS5]{стрел}, @Compendium[dnd5e.items.SItCnYBqhzqBoaWG]{болтов} или аналогичных объектов. В среднем отделении — до восемнадцати @Compendium[dnd5e.items.DWLMnODrnHn8IbAG]{пилумов} или аналогичных объектов. В большом отделении — до шести длинных объектов вроде луков, @Compendium[dnd5e.items.g2dWN7PQiMRYWzyk]{боевых посохов} или @Compendium[dnd5e.items.OG4nBBydvmfWYXIk]{копий}.
Вы можете достать любой предмет из этого колчана, как из обычного колчана или ножен.
Сверкающее стальное острие на толстом деревянном древке, копьем можно орудовать одной или двумя руками, и оно способно пробить самую прочную броню со смертоносной силой.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "piercing" + ] + ], + "versatile": "1d8 + @mod +1" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "spear" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Spear +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/korotkij-luk-+1-_-shortbow-+1.json b/test_tube_merchant/items/good/weapon/korotkij-luk-+1-_-shortbow-+1.json new file mode 100755 index 0000000..6c26ee7 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/korotkij-luk-+1-_-shortbow-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Короткий лук +1 / Shortbow +1", + "type": "weapon", + "img": "icons/weapons/bows/shortbow-recurve.webp", + "system": { + "description": { + "value": "Этот лук несколько меньше традиционного длинного, что делает его идеальным для быстрых атак в движении или верхом на скакуне.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "shortbow" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortbow +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/korotkij-mech-+1-_-shortsword-+1.json b/test_tube_merchant/items/good/weapon/korotkij-mech-+1-_-shortsword-+1.json new file mode 100755 index 0000000..900d9f0 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/korotkij-mech-+1-_-shortsword-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Короткий меч +1 / Shortsword +1", + "type": "weapon", + "img": "icons/weapons/swords/sword-guard-brown.webp", + "system": { + "description": { + "value": "Средних размеров клинок с прочной гардой и обтянутой кожей рукоятью. Универсальное оружие, которое компенсирует универсальностью то, что ему не хватает длины.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "shortsword" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortsword +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/lyogkij-arbalet-+1-_-light-crossbow-+1.json b/test_tube_merchant/items/good/weapon/lyogkij-arbalet-+1-_-light-crossbow-+1.json new file mode 100755 index 0000000..54fcb52 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/lyogkij-arbalet-+1-_-light-crossbow-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Лёгкий арбалет +1 / Light Crossbow +1", + "type": "weapon", + "img": "icons/weapons/crossbows/crossbow-loaded-black.webp", + "system": { + "description": { + "value": "Небольшой арбалет с деревянным древком и натянутой тетивой, способен выпускать болты, пробивающие даже тяжелую броню на близком расстоянии.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "lightcrossbow" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Light Crossbow +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/lyogkij-molot-+1-_-light-hammer-+1.json b/test_tube_merchant/items/good/weapon/lyogkij-molot-+1-_-light-hammer-+1.json new file mode 100755 index 0000000..cb5c932 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/lyogkij-molot-+1-_-light-hammer-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Лёгкий молот +1 / Light Hammer +1", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-war-spiked.webp", + "system": { + "description": { + "value": "Этот прочный молот достаточно лёгок и удобен, чтобы им можно было ловко орудовать в сочетании с другим оружием.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "lighthammer" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Light Hammer +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/nozhny.json b/test_tube_merchant/items/good/weapon/nozhny.json new file mode 100755 index 0000000..1311a0f --- /dev/null +++ b/test_tube_merchant/items/good/weapon/nozhny.json @@ -0,0 +1,40 @@ +{ + "name": "Ножны", + "type": "loot", + "img": "icons/commodities/treasure/token-engraved-symbols-grey.webp", + "system": { + "description": { + "value": "Изукрашенные ножны.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 8, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/pika-+1-_-pike-+1.json b/test_tube_merchant/items/good/weapon/pika-+1-_-pike-+1.json new file mode 100755 index 0000000..220ce6d --- /dev/null +++ b/test_tube_merchant/items/good/weapon/pika-+1-_-pike-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Пика +1 / Pike +1", + "type": "weapon", + "img": "icons/weapons/polearms/spear-flared-blue.webp", + "system": { + "description": { + "value": "Крепкое лезвие, закрепленное на конце длинного металлического древка. Предназначена как оборонительное оружие со значительной зоной досягаемости, чтобы отбиваться от противников и устрашать их.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 18, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "rch", + "two", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "pike" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pike +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/pilum-+1-_-javelin-+1.json b/test_tube_merchant/items/good/weapon/pilum-+1-_-javelin-+1.json new file mode 100755 index 0000000..6396055 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/pilum-+1-_-javelin-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Пилум +1 / Javelin +1", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/javelin.webp", + "system": { + "description": { + "value": "Это лёгкое и гибкое копьё предназначено для метания, но достаточно универсально, чтобы его можно было использовать и в ближнем бою.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "javelin" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Javelin +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/prasha-+1-_-sling-+1.json b/test_tube_merchant/items/good/weapon/prasha-+1-_-sling-+1.json new file mode 100755 index 0000000..61e0512 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/prasha-+1-_-sling-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Праща +1 / Sling +1", + "type": "weapon", + "img": "icons/weapons/slings/slingshot-wood.webp", + "system": { + "description": { + "value": "Гибкая кожаная плеть, прикрепленная к деревянной ручке, способная метать камни или металлические ядра со смертоносной скоростью.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "sling" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sling +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/preduprezhdayushaya-alebarda-_-halberd-of-warning.json b/test_tube_merchant/items/good/weapon/preduprezhdayushaya-alebarda-_-halberd-of-warning.json new file mode 100755 index 0000000..8beafb3 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/preduprezhdayushaya-alebarda-_-halberd-of-warning.json @@ -0,0 +1,186 @@ +{ + "name": "Предупреждающая алебарда / Halberd of Warning", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/halberd.webp", + "effects": [ + { + "_id": "Ad32QXf3goL0akUm", + "changes": [ + { + "key": "flags.dnd5e.initiativeAdv", + "mode": 0, + "value": "1", + "priority": 20 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "origin": "Compendium.world.dmg-items.Xdj2NyKvFCzLXYR7", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "tint": "#ffffff", + "name": "Преимущество инициативы", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "icons/weapons/polearms/halberd-crescent-glowing.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "halberd%20of%20warning_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Halberd of Warning", + "translated": true + } + }, + "system": { + "description": { + "value": "Это магическое оружие предупреждает вас об опасностях. Пока оружие при вас, у вас преимущество к броскам инициативы. Кроме того, вас и ваших спутников в пределах 30 футов от вас нельзя застигнуть врасплох, если вы и спутники не &reference[incapacitated]{выведены из строя} чем-либо, кроме немагического сна. Если кто-то из вас спал естественным образом, когда начался бой, оружие магически пробуждает вас и ваших спутников в пределах дистанции.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "str", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10+@mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": 0, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "rch", + "two", + "mgc" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "halberd" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/preduprezhdayushaya-bulava-_mace-of-warning.json b/test_tube_merchant/items/good/weapon/preduprezhdayushaya-bulava-_mace-of-warning.json new file mode 100755 index 0000000..4573c12 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/preduprezhdayushaya-bulava-_mace-of-warning.json @@ -0,0 +1,178 @@ +{ + "name": "Предупреждающая булава /Mace of Warning", + "type": "weapon", + "img": "icons/weapons/maces/mace-flanged-steel-grey.webp", + "effects": [ + { + "_id": "ng2UpBbhUjnVqnjw", + "changes": [ + { + "key": "flags.dnd5e.initiativeAdv", + "mode": 0, + "value": "1", + "priority": 20 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "origin": "Compendium.world.dmg-items.A6mVzAuYD8slLsDU", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "tint": "#ffffff", + "name": "Преимущество инициативы", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "icons/weapons/maces/mace-flanged-steel-grey.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "mace%20of%20warning_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + } + }, + "system": { + "description": { + "value": "Это магическое оружие предупреждает вас об опасностях. Пока оружие при вас, у вас преимущество к броскам инициативы. Кроме того, вас и ваших спутников в пределах 30 футов от вас нельзя застигнуть врасплох, если вы и спутники не &reference[incapacitated]{выведены из строя} чем-либо, кроме немагического сна. Если кто-то из вас спал естественным образом, когда начался бой, оружие магически пробуждает вас и ваших спутников в пределах дистанции.
\nЭто магическое оружие предупреждает вас об опасностях. Пока оружие при вас, у вас преимущество к броскам инициативы. Кроме того, вас и ваших спутников в пределах 30 футов от вас нельзя застигнуть врасплох, если вы и спутники не &reference[incapacitated]{выведены из строя} чем-либо, кроме немагического сна. Если кто-то из вас спал естественным образом, когда начался бой, оружие магически пробуждает вас и ваших спутников в пределах дистанции.
Особое. Существо размером не более крупного, по которому попала атака сетью, остаётся &reference[restrained]{обездвиженным}, пока не освободится. Сеть не действует на бесформенных существ, а также на существ огромного размера и больше. Существо может использовать действие, чтобы пройти проверку Силы со СЛ 10, при успехе освобождая себя или другое существо в пределах своей зоны досягаемости. Если нанести сети (КБ 10) 5 режущего урона, существо тоже освободится, не получив урона, а сеть будет уничтожена. Используя действие, бонусное или @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{Ответное действие} для атаки сетью, вы можете совершить только одну атаку, вне зависимости от количества атак, которые вы обычно совершаете.
Это магическое оружие предупреждает вас об опасностях. Пока оружие при вас, у вас преимущество к броскам инициативы. Кроме того, вас и ваших спутников в пределах 30 футов от вас нельзя застигнуть врасплох, если вы и спутники не &reference[incapacitated]{выведены из строя} чем-либо, кроме немагического сна. Если кто-то из вас спал естественным образом, когда начался бой, оружие магически пробуждает вас и ваших спутников в пределах дистанции.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "str", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4+@mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": 0, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "mgc" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "sickle" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/preduprezhdayushij-skimitar-_-scimitar-of-warning.json b/test_tube_merchant/items/good/weapon/preduprezhdayushij-skimitar-_-scimitar-of-warning.json new file mode 100755 index 0000000..db6c586 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/preduprezhdayushij-skimitar-_-scimitar-of-warning.json @@ -0,0 +1,185 @@ +{ + "name": "Предупреждающий скимитар / Scimitar of Warning", + "type": "weapon", + "img": "icons/weapons/swords/scimitar-worn-blue.webp", + "effects": [ + { + "_id": "KqTCKZKY1W2Bz5K9", + "changes": [ + { + "key": "flags.dnd5e.initiativeAdv", + "mode": 0, + "value": "1", + "priority": 20 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "origin": "Compendium.world.dmg-items.opmc4vexZU7mhjo8", + "transfer": true, + "flags": { + "core": { + "statusId": "" + }, + "dae": { + "stackable": "none", + "durationExpression": "", + "specialDuration": [], + "transfer": true + } + }, + "tint": "#ffffff", + "name": "Преимущество инициативы", + "description": "", + "statuses": [], + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": null, + "modifiedTime": null, + "lastModifiedBy": null + }, + "img": "icons/weapons/swords/scimitar-blue.webp", + "type": "base", + "system": {}, + "sort": 0 + } + ], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "scimitar%20of%20warning_dmg" + }, + "test_tube_merchant": { + "quantity": "1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Scimitar of Warning", + "translated": true + } + }, + "system": { + "description": { + "value": "Это магическое оружие предупреждает вас об опасностях. Пока оружие при вас, у вас преимущество к броскам инициативы. Кроме того, вас и ваших спутников в пределах 30 футов от вас нельзя застигнуть врасплох, если вы и спутники не &reference[incapacitated]{выведены из строя} чем-либо, кроме немагического сна. Если кто-то из вас спал естественным образом, когда начался бой, оружие магически пробуждает вас и ваших спутников в пределах дистанции.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5000, + "denomination": "gp" + }, + "attunement": "required", + "equipped": true, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 0, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "dex", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6+@mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": 0, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "mgc" + ], + "proficient": 1, + "crewed": false, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "scimitar" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/rapira-+1-_-rapier-+1.json b/test_tube_merchant/items/good/weapon/rapira-+1-_-rapier-+1.json new file mode 100755 index 0000000..9a5cf20 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/rapira-+1-_-rapier-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Рапира +1 / Rapier +1", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/rapier.webp", + "system": { + "description": { + "value": "Тонкий клинок из ковкого металла, легкий по весу, но достаточно длинный, предназначен для нанесения молниеносных уколов по слабым местам в обороне противника.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "rapier" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Rapier +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/ruchnoj-arbalet-+1-_-hand-crossbow-+1.json b/test_tube_merchant/items/good/weapon/ruchnoj-arbalet-+1-_-hand-crossbow-+1.json new file mode 100755 index 0000000..4a91e00 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/ruchnoj-arbalet-+1-_-hand-crossbow-+1.json @@ -0,0 +1,128 @@ +{ + "name": "Ручной арбалет +1 / Hand Crossbow +1", + "type": "weapon", + "img": "icons/weapons/crossbows/handcrossbow-black.webp", + "system": { + "description": { + "value": "Лёгкий арбалет, предназначенный для использования в одной руке или пристегнутым к запястью для стрельбы лёгкими болтами.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lgt", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "handcrossbow" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hand Crossbow +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/serp-+1-_-sickle-+1.json b/test_tube_merchant/items/good/weapon/serp-+1-_-sickle-+1.json new file mode 100755 index 0000000..eaf86fd --- /dev/null +++ b/test_tube_merchant/items/good/weapon/serp-+1-_-sickle-+1.json @@ -0,0 +1,126 @@ +{ + "name": "Серп +1 / Sickle +1", + "type": "weapon", + "img": "icons/weapons/sickles/sickle-hooked-silver.webp", + "system": { + "description": { + "value": "Лезвие с крюком в виде полумесяца, закрепленное на короткой рукояти, достаточно легкое, чтобы держать его в одной руке для подрезания посевов или врагов.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "sickle" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sickle +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/set�-+1-_-net-+1.json b/test_tube_merchant/items/good/weapon/set�-+1-_-net-+1.json new file mode 100755 index 0000000..4c0403a --- /dev/null +++ b/test_tube_merchant/items/good/weapon/set�-+1-_-net-+1.json @@ -0,0 +1,122 @@ +{ + "name": "Сеть +1 / Net +1", + "type": "weapon", + "img": "icons/tools/fishing/net-gold.webp", + "system": { + "description": { + "value": "Эти плотно сплетенные нити усилены для использования в бою, чтобы поймать и опутать даже самых опасных противников, делая их уязвимыми для нападения другим оружием.
Будь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
Вы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
Особое. Существо размером не более крупного, по которому попала атака сетью, остаётся обездвиженным, пока не освободится. Сеть не действует на бесформенных существ, а также на существ огромного размера и больше. Существо может использовать действие, чтобы пройти проверку Силы со СЛ 10, при успехе освобождая себя или другое существо в пределах своей зоны досягаемости. Если нанести сети (КБ 10) 5 режущего урона, существо тоже освободится, не получив урона, а сеть будет уничтожена. Используя действие, бонусное или ответное действие для атаки сетью, вы можете совершить только одну атаку, вне зависимости от количества атак, которые вы обычно совершаете.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 15, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 10, + "scaling": "flat" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "spc", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "net" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Net +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/shit-_-shield.json b/test_tube_merchant/items/good/weapon/shit-_-shield.json new file mode 100755 index 0000000..87b62e5 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/shit-_-shield.json @@ -0,0 +1,124 @@ +{ + "name": "Щит / Shield", + "type": "equipment", + "img": "icons/equipment/shield/round-wooden-boss-steel-brown.webp", + "system": { + "description": { + "value": "Щит из дерева или металла носят в одной руке. Использование щита увеличивает ваш класс брони на 2. Ношение более чем одного щита не принесёт дополнительной пользы.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 2, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "shield", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shield" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/skimitar-+1-_-scimitar-+1.json b/test_tube_merchant/items/good/weapon/skimitar-+1-_-scimitar-+1.json new file mode 100755 index 0000000..dc24544 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/skimitar-+1-_-scimitar-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Скимитар +1 / Scimitar +1", + "type": "weapon", + "img": "icons/weapons/swords/scimitar-worn-blue.webp", + "system": { + "description": { + "value": "Этот изогнутый клинок широк у обтянутой рукояти, но дугообразно сужается к сверкающему острию.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "scimitar" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Scimitar +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/strela-+1-_-arrow-+1.json b/test_tube_merchant/items/good/weapon/strela-+1-_-arrow-+1.json new file mode 100755 index 0000000..3ab4088 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/strela-+1-_-arrow-+1.json @@ -0,0 +1,114 @@ +{ + "name": "Стрела +1 / Arrow +1", + "type": "consumable", + "img": "icons/weapons/ammunition/arrow-simple-grey.webp", + "system": { + "description": { + "value": "Стандартные боеприпасы, используемые для луков всех видов. Эти стрелы сделаны из гладкого деревянного древка с оперением из гусиного пера и металлическими набалдашниками.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим боеприпасом. При попадании в цель, боеприпас перестаёт быть магическим.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.05, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Arrow +1" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/taran-ruchnoj-_-portable-ram.json b/test_tube_merchant/items/good/weapon/taran-ruchnoj-_-portable-ram.json new file mode 100755 index 0000000..7bd9825 --- /dev/null +++ b/test_tube_merchant/items/good/weapon/taran-ruchnoj-_-portable-ram.json @@ -0,0 +1,114 @@ +{ + "name": "Таран ручной / Portable Ram", + "type": "consumable", + "img": "icons/commodities/metal/pin-cottar-steel.webp", + "system": { + "description": { + "value": "С его помощью можно ломать двери. При этом вы получаете бонус +4 к проверке Силы. Один другой персонаж может помочь вам в использовании тарана и дать вам преимущество к проверке.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 35, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "str", + "actionType": "abil", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "d20 + @abilities.str.mod +4", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Portable Ram" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/toporik-+1-_-handaxe-+1.json b/test_tube_merchant/items/good/weapon/toporik-+1-_-handaxe-+1.json new file mode 100755 index 0000000..962307c --- /dev/null +++ b/test_tube_merchant/items/good/weapon/toporik-+1-_-handaxe-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Топорик +1 / Handaxe +1", + "type": "weapon", + "img": "icons/weapons/axes/axe-broad-black.webp", + "system": { + "description": { + "value": "Этот одноручный топор легок и сбалансирован для метания, но при этом остается полезен в рукопашном бою.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "handaxe" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Handaxe +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/trezubec-+1-_-trident-+1.json b/test_tube_merchant/items/good/weapon/trezubec-+1-_-trident-+1.json new file mode 100755 index 0000000..ede6b5d --- /dev/null +++ b/test_tube_merchant/items/good/weapon/trezubec-+1-_-trident-+1.json @@ -0,0 +1,127 @@ +{ + "name": "Трезубец +1 / Trident +1", + "type": "weapon", + "img": "icons/weapons/polearms/trident-ornate-red.webp", + "system": { + "description": { + "value": "Многозубчатое копье, предназначенное для пронзания цели в нескольких местах, пригвождая её к поверхности. Часто используется в сочетании с сетью для опутывания и изведения противников.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod +1", + "piercing" + ] + ], + "versatile": "1d8 + @mod +1" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "trident" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Trident +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/good/weapon/tyazhyolyj-arbalet-+1-_-heavy-crossbow-+1.json b/test_tube_merchant/items/good/weapon/tyazhyolyj-arbalet-+1-_-heavy-crossbow-+1.json new file mode 100755 index 0000000..ea5c10e --- /dev/null +++ b/test_tube_merchant/items/good/weapon/tyazhyolyj-arbalet-+1-_-heavy-crossbow-+1.json @@ -0,0 +1,129 @@ +{ + "name": "Тяжёлый арбалет +1 / Heavy Crossbow +1", + "type": "weapon", + "img": "icons/weapons/crossbows/crossbow-purple.webp", + "system": { + "description": { + "value": "Большой арбалет, установленный на прочном деревянном блоке, который заряжается с помощью рукоятки и стреляет толстыми стальными болтами со смертоносным ускорением, пробивающими броню и плоть.
\nБудь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было усовершенствовано, чтобы быть более смертоносным.
\nВы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 18, + "units": "lb" + }, + "price": { + "value": 1000, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 100, + "long": 400, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod +1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "hvy", + "two", + "lod", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "heavycrossbow" + }, + "attack": { + "bonus": "1", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Heavy Crossbow +1" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/animals/fvtt-Item-krysa,-myortvaya-a1PHqy8kndpsTtE4.json b/test_tube_merchant/items/horrible/animals/fvtt-Item-krysa,-myortvaya-a1PHqy8kndpsTtE4.json new file mode 100755 index 0000000..682ddb8 --- /dev/null +++ b/test_tube_merchant/items/horrible/animals/fvtt-Item-krysa,-myortvaya-a1PHqy8kndpsTtE4.json @@ -0,0 +1,116 @@ +{ + "name": "Крыса, мёртвая", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/rat.png", + "system": { + "description": { + "value": "Может быть мёртвый голубь, попугай или рыба
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "potion", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "exportSource": { + "world": "test", + "system": "dnd5e", + "coreVersion": "12.327", + "systemVersion": "3.3.1" + } + }, + "_stats": { + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1723736743874, + "modifiedTime": 1723736785760, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/armor/bochka-s-otverstiyami-dlya-ruk-i-golovy.json b/test_tube_merchant/items/horrible/armor/bochka-s-otverstiyami-dlya-ruk-i-golovy.json new file mode 100755 index 0000000..f39fbb4 --- /dev/null +++ b/test_tube_merchant/items/horrible/armor/bochka-s-otverstiyami-dlya-ruk-i-golovy.json @@ -0,0 +1,124 @@ +{ + "name": "Бочка с отверстиями для рук и головы", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/barrel_armor.png", + "system": { + "description": { + "value": "В комплект входят поддерживающие ремни, не имеет дна
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 65, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 11, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Studded Leather Armor" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/armor/kovsh.json b/test_tube_merchant/items/horrible/armor/kovsh.json new file mode 100755 index 0000000..e66b24f --- /dev/null +++ b/test_tube_merchant/items/horrible/armor/kovsh.json @@ -0,0 +1,170 @@ +{ + "name": "Ковш", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/ladle.png", + "system": { + "description": { + "value": "Любой предмет может быть доспехом, если ты достаточно безрассуден
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [ + { + "name": "Ковш", + "origin": "Item.37LW49HWVzlhMMHX", + "duration": { + "rounds": null, + "startTime": null, + "seconds": null, + "combat": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "disabled": false, + "flags": { + "dnd5e": {}, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/ladle.png", + "_id": "tcdU61v0ijBEfdcD", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.attributes.ac.bonus", + "mode": 2, + "value": "1", + "priority": 20 + } + ], + "description": "", + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1723910087456, + "modifiedTime": 1723910142153, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/bars/penistaya-zhutica.json b/test_tube_merchant/items/horrible/bars/penistaya-zhutica.json new file mode 100755 index 0000000..79cfac4 --- /dev/null +++ b/test_tube_merchant/items/horrible/bars/penistaya-zhutica.json @@ -0,0 +1,41 @@ +{ + "name": "Пенистая жутица", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/slime_on_glass.png", + "system": { + "description": { + "value": "Пиво, в которое добавили остатки от варенья вкус? Не спрашивайте!
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.5, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 100 + 1d100" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/bars/voda.json b/test_tube_merchant/items/horrible/bars/voda.json new file mode 100755 index 0000000..6a6cd6d --- /dev/null +++ b/test_tube_merchant/items/horrible/bars/voda.json @@ -0,0 +1,41 @@ +{ + "name": "Вода", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/water.png", + "system": { + "description": { + "value": "Чистая и безупречная
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.4, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 100 + 1d100" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/books/karta-sokrovish.json b/test_tube_merchant/items/horrible/books/karta-sokrovish.json new file mode 100755 index 0000000..3652144 --- /dev/null +++ b/test_tube_merchant/items/horrible/books/karta-sokrovish.json @@ -0,0 +1,41 @@ +{ + "name": "Карта сокровищ", + "type": "loot", + "img": "icons/tools/navigation/map-marked-black.webp", + "system": { + "description": { + "value": "Подделка, Для распознания подделки нужно пройти проверку Интеллекта (Анализ) УС 10
Содержит маршрут до сокровища в радиусе 7-идневного путешествия
", + "chat": "" + }, + "source": { + "custom": "WBW" + }, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/fashion/meshok,-odezhda.json b/test_tube_merchant/items/horrible/fashion/meshok,-odezhda.json new file mode 100755 index 0000000..a6eb726 --- /dev/null +++ b/test_tube_merchant/items/horrible/fashion/meshok,-odezhda.json @@ -0,0 +1,141 @@ +{ + "name": "Мешок, одежда", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/bag_with_hole.png", + "system": { + "description": { + "value": "Почти водонепроницаемый мешок, используемый для хранения одежды.", + "chat": "" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + }, + "scene-packer": { + "hash": "dc0fcfba1165bd2f44cd00098477db09acd4ddf8", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/flowers/uvyadshie-cvety.json b/test_tube_merchant/items/horrible/flowers/uvyadshie-cvety.json new file mode 100755 index 0000000..3146ddb --- /dev/null +++ b/test_tube_merchant/items/horrible/flowers/uvyadshie-cvety.json @@ -0,0 +1,105 @@ +{ + "name": "Увядшие цветы", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/Withered_flowers.png", + "system": { + "description": { + "value": "Увядшие и суховатые
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "trinket", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/food/navoz.json b/test_tube_merchant/items/horrible/food/navoz.json new file mode 100755 index 0000000..1b213e1 --- /dev/null +++ b/test_tube_merchant/items/horrible/food/navoz.json @@ -0,0 +1,41 @@ +{ + "name": "Навоз", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Manure.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "WBW" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 25 + 1d25" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/food/perlovka.json b/test_tube_merchant/items/horrible/food/perlovka.json new file mode 100755 index 0000000..9dd1024 --- /dev/null +++ b/test_tube_merchant/items/horrible/food/perlovka.json @@ -0,0 +1,41 @@ +{ + "name": "Перловка", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/pearl_barley.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 30 + 1d30" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/food/pitanie,-nishenskoe.json b/test_tube_merchant/items/horrible/food/pitanie,-nishenskoe.json new file mode 100755 index 0000000..bdded17 --- /dev/null +++ b/test_tube_merchant/items/horrible/food/pitanie,-nishenskoe.json @@ -0,0 +1,41 @@ +{ + "name": "Питание, нищенское", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/bad_soup.png", + "system": { + "description": { + "value": "Незрелая, протухшая или невозможно жевать
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/food/salo.json b/test_tube_merchant/items/horrible/food/salo.json new file mode 100755 index 0000000..42b55b1 --- /dev/null +++ b/test_tube_merchant/items/horrible/food/salo.json @@ -0,0 +1,41 @@ +{ + "name": "Сало", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/lard.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 25 + 1d25" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/jewelry/zheod.json b/test_tube_merchant/items/horrible/jewelry/zheod.json new file mode 100755 index 0000000..2e88bf5 --- /dev/null +++ b/test_tube_merchant/items/horrible/jewelry/zheod.json @@ -0,0 +1,41 @@ +{ + "name": "Жеод", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/rock_not_geode.png", + "system": { + "description": { + "value": "Подделка. В этой породе нет кристаллов. Просто камень.
Основа для большинства зелий
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.4, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 100 + 1d100" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/religious/svecha-_-candle.json b/test_tube_merchant/items/horrible/religious/svecha-_-candle.json new file mode 100755 index 0000000..cc71b81 --- /dev/null +++ b/test_tube_merchant/items/horrible/religious/svecha-_-candle.json @@ -0,0 +1,109 @@ +{ + "name": "Свеча / Candle", + "type": "consumable", + "img": "icons/sundries/lights/candle-unlit-white.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Candle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "system": { + "description": { + "value": "Горит 1 час, даёт &reference[brightlight]{яркий свет} в радиусе 5 футов и &reference[dimlight]{тусклый} ещё на 5 футов.
Свеча разных цветов, используется в ритуалах и церемониях.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы указываете пальцем на существо, нанесшее вам урон, и его немедленно окутывает адское пламя. Существо должно пройти испытание Ловкости. Оно получает [[/r 2d10]] урона огнём при провале или половину этого урона при успехе.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "1 ответное действие, которое вы совершаете в ответ на получение урона от существа в пределах 60 футов от вас, которое вы видите" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d10", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-chistoty-_-Aura-of-purity.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-chistoty-_-Aura-of-purity.json new file mode 100755 index 0000000..6fbfe05 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-chistoty-_-Aura-of-purity.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура чистоты / Aura of purity", + "img": "icons/creatures/birds/songbird-yellow-flying.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-zhiznennoy-sily-_-Aura-of-vitality.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-zhiznennoy-sily-_-Aura-of-vitality.json new file mode 100755 index 0000000..010a3c3 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-zhiznennoy-sily-_-Aura-of-vitality.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура жизненной силы / Aura of vitality", + "img": "icons/magic/life/ankh-gold-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Исцеляющая энергия исходит от вас в ауре радиусом 30 футов. Пока длится заклинание, аура перемещается вместе с вами — вы остаётесь в её центре. Вы можете использовать бонусное действие, чтобы восстановить одному любому существу, находящемуся в ауре (включая вас), [[/r 2d6]] ПЗ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-zhizni-_-Aura-of-life.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-zhizni-_-Aura-of-life.json new file mode 100755 index 0000000..f148000 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Aura-zhizni-_-Aura-of-life.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура жизни / Aura of life", + "img": "icons/magic/life/cross-yellow-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Энергия жизни исходит от вас в ауре радиусом 30 футов. Пока длится заклинание, аура перемещается вместе с вами — вы остаётесь в её центре. Каждое невраждебное существо в ауре (включая вас) получает @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к некротическому урону, а его максимум ПЗ нельзя уменьшить. Кроме того, каждое невраждебное живое существо внутри ауры восстанавливает 1 ПЗ, когда начинает свой ход в ауре с 0 ПЗ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Besslednyy-shag-_-Pass-without-trace.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Besslednyy-shag-_-Pass-without-trace.json new file mode 100755 index 0000000..982b927 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Besslednyy-shag-_-Pass-without-trace.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Бесследный шаг / Pass without trace", + "img": "icons/magic/nature/stealth-hide-beast-eyes-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте покров тени и тишины, маскирующий вас и ваших спутников. Пока длится заклинание, любые выбранные вами существа в пределах 30 футов от вас (включая вас) получают бонус +10 к проверкам Ловкости (Скрытность) и их нельзя выследить иначе как с помощью магии. Существо, получившее этот бонус, не оставляет никаких следов там, где проходит.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bezuderzhnyy-smekh-Tashi-_-Tasha's-hideous-laughter.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bezuderzhnyy-smekh-Tashi-_-Tasha's-hideous-laughter.json new file mode 100755 index 0000000..4f24f16 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bezuderzhnyy-smekh-Tashi-_-Tasha's-hideous-laughter.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Безудержный смех Таши / Tasha's hideous laughter", + "img": "icons/creatures/magical/spirit-fire-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выбранное вами существо, которое вы видите в пределах дистанции, начинает под действием заклинания воспринимать всё вокруг как нечто уморительно смешное неудержимо хохотать, Цель должна пройти испытание Мудрости, при провале она &reference[prone]{распластывается}, &reference[incapacitated]{выведена из строя} и не может встать, пока длится заклинание. На существ с Интеллектом 4 и ниже заклинание не действует.
В конце каждого своего хода и каждый раз при получении урона цель может снова пройти испытание Мудрости. У цели есть преимущество к испытанию, если оно вызвано уроном. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Blagoslovenie-_-Bless.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Blagoslovenie-_-Bless.json new file mode 100755 index 0000000..01054f5 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Blagoslovenie-_-Bless.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Благословение / Bless", + "img": "icons/magic/life/heart-hand-gold-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы благословляете до трёх существ на ваш выбор в пределах дистанции. Пока длится заклинание, когда цель совершает бросок атаки или испытание, она может бросить [[/r d4]] и добавить к результату основного броска.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 3, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bronya-Agafisa-_-Armor-of-Agathys.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bronya-Agafisa-_-Armor-of-Agathys.json new file mode 100755 index 0000000..95ec415 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bronya-Agafisa-_-Armor-of-Agathys.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Броня Агафиса / Armor of Agathys", + "img": "icons/magic/water/heart-ice-freeze.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вас окружает защитное магическое поле, которое проявляется как призрачная изморозь, покрывающая вас и ваше снаряжение. Вы получаете 5 временных ПЗ, пока длится заклинание. Если существо попадает по вам атакой ближнего боя, пока у вас есть эти временные ПЗ, оно получает 5 урона холодом.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, временные ПЗ и урон холодом увеличиваются на 5 за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bryzgi-yada-_-Poison-spray.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bryzgi-yada-_-Poison-spray.json new file mode 100755 index 0000000..2c46a93 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Bryzgi-yada-_-Poison-spray.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Брызги яда / Poison spray", + "img": "icons/creatures/slimes/slime-movement-splash-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы протягиваете руку в сторону существа, которое видите в пределах дистанции, и испускаете на него пары ядовитого газа из ладони. Существо должно успешно пройти испытание Выносливости, иначе получает [[/r 1d12]] урона ядом.
\nУрон заклинания увеличивается на [[/r 1d12]], когда вы достигаете 5-го ([[/r 2d12]]), 11-го ([[/r 3d12]]) и 17-го уровня ([[/r 4d12]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Извивающиеся угольно-чёрные щупальца заполняют 20-футовый квадрат на земле в месте, которое вы видите в пределах дистанции. Пока длится заклинание, щупальца превращают область заклинания в &reference[difficultterrain]{пересечённую местность}.
Существо, которое входит в область заклинания впервые за ход или начинает в ней свой ход, должно пройти испытание Ловкости. При провале оно получает [[/r 3d6]] дробящего урона и &reference[restrained]{обездвижено} щупальцами, пока длится заклинание. Обездвиженное щупальцами существо, которое начинает свой ход в области, получает [[/r 3d6]] дробящего урона.
Существо, &reference[restrained]{обездвиженное} щупальцами, может использовать действие, чтобы пройти проверку Силы или Ловкости (на свой выбор). СЛ равна СЛ испытаний против ваших заклинаний. При успехе существо освобождается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "bludgeoning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dissoniruyushchiy-shyopot-_-Dissonant-Whispers.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dissoniruyushchiy-shyopot-_-Dissonant-Whispers.json new file mode 100755 index 0000000..575c9e6 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dissoniruyushchiy-shyopot-_-Dissonant-Whispers.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Диссонирующий шёпот / Dissonant Whispers", + "img": "icons/magic/death/mouth-teeth-fangs-vampire.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы нашептываете нестройную мелодию, которую может слышать только одно выбранное вами существо в пределах дистанции, и причиняете ему невыносимую боль. Цель должна пройти испытание Мудрости. При провале она получает [[/r 3d6]] психического урона и должна немедленно использовать ответное действие, если оно ей доступно, чтобы переместиться так далеко от вас, как только позволяет её скорость. Цель не станет перемещаться в очевидно опасные места вроде огня или ям. При успехе цель получает половину этого урона и не должна убегать. &reference[deafened]{Глухое}существо автоматически проходит испытание успешно.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "psychic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dnevnoy-svet-_-Daylight.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dnevnoy-svet-_-Daylight.json new file mode 100755 index 0000000..0fcab80 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dnevnoy-svet-_-Daylight.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дневной свет / Daylight", + "img": "icons/magic/air/weather-sunlight-sky.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Сфера света радиусом 60 футов исходит из выбранной вами точки в пределах дистанции. Внутри сферы свет &reference[brightlight]{яркий}, и она создаёт &reference[dimlight]{тусклый свет} еще на 60 футов.
\nЕсли вы выберете точку на объекте, который держите, или ещё на каком-то предмете, который не носят и не держат другие, свет будет исходить из этого объекта и перемещаться вместе с ним. Если полностью накрыть источник света непрозрачным предметом вроде ведра или шлема, он заблокирует свет. Если область действия этого заклинания накладывается на область тьмы, созданной заклинанием 3-го круга или ниже, заклинание, создавшее тьму, рассеивается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 60, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Druidizm-_-Druidcraft.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Druidizm-_-Druidcraft.json new file mode 100755 index 0000000..0362bfc --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Druidizm-_-Druidcraft.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Друидизм / Druidcraft", + "img": "icons/magic/nature/lotus-glow-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Шепча духам природы, вы создаёте один из этих эффектов в пределах дистанции:
\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, у вас преимущество ко всем проверкам Харизмы против одного существа на ваш выбор, если оно к вам не враждебно. Когда заклинание прекращает действовать, существо осознаёт, что вы с помощью магии манипулировали его настроением, и становится враждебно вам. Склонное к насилию существо может даже атаковать вас, но может отомстить вам и по-другому (по решению мастера), в зависимости от того, как вы с ним взаимодействовали.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание позволяет вам убедить животное, что вы ему не враг. Выберите животное, которое видите в пределах дистанции. Оно должно видеть и слышать вас Если Интеллект животного 4 и выше, заклинание не сработает. В ином случае животное должно пройти испытание Мудрости, при провале оно @UUID[Compendium.laaru-dnd5-hw.conditions.5vKRVm8wXReUJasS]{обворожено} вами, пока длится заклинание. Если вы или ваш спутник причините цели вред, заклинание прекращает действовать
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное животное за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 24, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dubovaya-kozha-_-Barkskin.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dubovaya-kozha-_-Barkskin.json new file mode 100755 index 0000000..e6a869f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dubovaya-kozha-_-Barkskin.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дубовая кожа / Barkskin", + "img": "icons/magic/nature/barrier-shield-wood-vines.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dver�-v-prostranstve-_-Dimension-Door.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dver�-v-prostranstve-_-Dimension-Door.json new file mode 100755 index 0000000..d00cd9e --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dver�-v-prostranstve-_-Dimension-Door.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дверь в пространстве / Dimension Door", + "img": "icons/commodities/treasure/stone-cracked-lightning-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы телепортируетесь из своего текущего местоположения в любую другую точку в пределах дистанции. Вы попадаете точно в желаемую точку. Это может быть место, которое вы видите либо которое можете представить или описать, назвав расстояние и направление, например: «200 футов прямо вниз» или «вверх на северо-запад под углом 45 градусов, на 300 футов».
\nВы можете брать с собой объекты, если их вес не превышает вашу грузоподъемность. Можете также взять с собой одно согласное существо вашего размера или меньше, снаряжение которого не превышает его грузоподъемность. Существо должно быть в пределах 5 фугов от вас, когда вы творите заклинание.
\nЕсли вы должны попасть в место, уже занятое объектом или существом, вы и любое существо, телепортировавшееся с вами, получаете по [[/r 4d6]] урона силой и заклинание вас не телепортирует.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": 500, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "force" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dykhanie-pod-vodoy-_-Water-Breathing.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dykhanie-pod-vodoy-_-Water-Breathing.json new file mode 100755 index 0000000..c42d44d --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Dykhanie-pod-vodoy-_-Water-Breathing.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дыхание под водой / Water Breathing", + "img": "icons/creatures/fish/fish-bluefin-yellow-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание даёт десяти или менее согласным существам, которых вы видите в пределах дистанции, способность дышать под водой, пока длится заклинание. Существа под влиянием заклинания сохраняют возможность дышать и обычным способом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 24, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gadanie-_-Augury.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gadanie-_-Augury.json new file mode 100755 index 0000000..04903a0 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gadanie-_-Augury.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Гадание / Augury", + "img": "icons/magic/light/orb-hands-humanoid-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Бросая инкрустированные самоцветами палочки или драконьи кости, раскладывая узорные карты или используя какие-то еще гадальные инструменты, вы получаете от потусторонней сущности предсказание о результатах определенных действий, которые вы планируете совершить в ближайшие 30 минут. Мастер выбирает один из возможных вариантов:
\nЗаклинание не учитывает возможные обстоятельства, которые могут изменить результат, например сотворение дополнительных заклинаний или потерю спутника.
Если вы сотворите это заклинание два или более раза, прежде чем завершите долгий отдых, появляется накапливающийся шанс ([[/r 1d100]] 25% за каждое гадание после первого), что будет получено случайное толкование. Мастер делает этот бросок тайно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gazoobraznost�-_-Gaseous-Form.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gazoobraznost�-_-Gaseous-Form.json new file mode 100755 index 0000000..b78da12 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gazoobraznost�-_-Gaseous-Form.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Газообразность / Gaseous Form", + "img": "icons/magic/lightning/projectile-orb-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы касаетесь согласного существа и превращаете его вместе со всем, что оно носит и держит, в облако тумана, пока длится заклинание. Заклинание прекращает действовать, если ПЗ существа снижаются до 0.
На бестелесных существ заклинание не влияет. Находясь в этой форме, цель может перемещаться только со скоростью полёта в 10 футов. Цель может входить в пространство, занятое любым другим существом, и оставаться там. У цели @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к немагическому урону и преимущество к испытаниям Силы, Ловкости и выносливости. Цель может проходить сквозь небольшие отверстия, щели и даже трещины, а вот жидкость для неё не отличается от сплошной твёрдой поверхности. Цель не может упасть и продолжает парить в воздухе, даже если она &reference[stunned]{в шоке} или &reference[incapacitated]{выведена из строя}.
Находясь в форме облака, цель не может говорить или взаимодействовать с объектами. Любые предметы, которые цель несла или держала, нельзя бросить, использовать или как-то ещё с ними взаимодействовать. Цель не может атаковать или творить заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Geroizm-_-Heroism.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Geroizm-_-Heroism.json new file mode 100755 index 0000000..7f74db5 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Geroizm-_-Heroism.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Героизм / Heroism", + "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы касаетесь согласного существа, наделяя его храбростью. Пока длится заклинание, существо невосприимчиво к &reference[frightened]{испугу} и получает в начале каждого своего хода временные ПЗ в количестве, равном вашему модификатору заклинательной характеристики. Когда заклинание прекращает действовать, цель теряет все оставшиеся временные ПЗ, полученные от этого заклинания.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "@mod", + "temphp" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gigantskoe-nasekomoe-_-Giant-Insect.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gigantskoe-nasekomoe-_-Giant-Insect.json new file mode 100755 index 0000000..d348635 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gigantskoe-nasekomoe-_-Giant-Insect.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Гигантское насекомое / Giant Insect", + "img": "icons/creatures/invertebrates/beetle-stag-tan-brown.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы превращаете до десяти многоножек, трех пауков, пяти ос или одного скорпиона в пределах дистанции в их гигантские варианты. На время, пока длится заклинание, они становятся гигантскими многоножками, гигантскими пауками, гигантскими осами или гигантским скорпионом соответственно
\nКаждое из этих существ подчиняется вашим устным приказам. В бою они действуют в ваш ход каждый раунд. У мастера есть параметры этих существ, он разыгрывает их действия и перемещение.
\nСущество остаётся гиганским, пока длится заклинание, пока его ПЗ не снизятся до 0 или пока вы не прекратите эффект, потратив действие.
\nС разрешения мастера вы можете выбрать другие цели. К примеру, если вы превратите пчелу, она может получить параметры гигантской осы.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Golod-Khadara-_-Hunger-of-Hadar.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Golod-Khadara-_-Hunger-of-Hadar.json new file mode 100755 index 0000000..02b40d4 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Golod-Khadara-_-Hunger-of-Hadar.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Голод Хадара / Hunger of Hadar", + "img": "icons/magic/nature/root-vine-thorned-fire-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы открываете врата в межзвёздную пустоту, полную неведомых ужасов. Сфера черноты и мороза радиусом 20 футов появляется из точки в пределах дистанции и существует, пока длится заклинание. Пустота наполнена какофонией шёпота и чавканья, которую слышно на 30 футов вокруг. Никакой свет, ни магический, ни обычный, не может осветить эту область, и существа, полностью находящиеся в ее пределах, &reference[blinded]{слепы }.
Пустота создаёт искажение ткани пространства, её область — &reference[difficultterrain]{пересечённая местность}. Любое существо, начавшее свой ход в этой области, получает [[/r 2d6]] урона холодом. Любое существо, закончившее свой ход в области, должно пройти испытание Ловкости, при провале оно получает [[/r 2d6]] урона кислотой, когда его хватают скользкие потусторонние щупальца.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "cold" + ], + [ + "2d6", + "acid" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Grad-shipov-_-Hail-of-Thorns.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Grad-shipov-_-Hail-of-Thorns.json new file mode 100755 index 0000000..c2c8b38 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Grad-shipov-_-Hail-of-Thorns.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Град шипов / Hail of Thorns", + "img": "icons/magic/nature/root-vine-spiral-thorns-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10", + "piercing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gromovaya-kara-_-Thunderous-Smite.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gromovaya-kara-_-Thunderous-Smite.json new file mode 100755 index 0000000..b8daf34 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gromovaya-kara-_-Thunderous-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Громовая кара / Thunderous Smite", + "img": "icons/magic/lightning/bolt-strike-wide-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "thunder" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gromovaya-volna-_-Thunderwave.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gromovaya-volna-_-Thunderwave.json new file mode 100755 index 0000000..f959c65 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Gromovaya-volna-_-Thunderwave.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Громовая волна / Thunderwave", + "img": "icons/magic/lightning/barrier-wall-shield-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
От вас исходит волна громовой силы. Каждое существо в пределах 15-футового куба, исходящего от вас, должно пройти испытание Выносливости. При провале существо получаеr [[/r 2d8]] урона громом и его отталкивает прочь от вас на 10 футов. При успехе существо получает половину урона и его не отталкивает.
Кроме того, незакреплённые объекты, полностью находящиеся в области действия, автоматически отталкиваются на 10 футов прочь от вас, заклинание издает грохот грома, который слышно в пределах 300 футов
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличавается на [[/r 1d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "thunder" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Illyuzornaya-mestnost�-_-Hallucinatory-Terrain.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Illyuzornaya-mestnost�-_-Hallucinatory-Terrain.json new file mode 100755 index 0000000..4060e13 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Illyuzornaya-mestnost�-_-Hallucinatory-Terrain.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Иллюзорная местность / Hallucinatory Terrain", + "img": "icons/magic/nature/tree-twisted-glow-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы заставляете естественную местность размером со 150-футовый куб в пределах дистанции выглядеть, звучать и пахнуть в точности как иной тип естественной местности. Просторные поля или дороги могут напоминать болота, холмы, овраги или иную пересечённую или непроходимую местность. Пруд может казаться цветущей лужайкой, обрыв — плавным склоном, а каменистое ущелье — широкой и чистой дорогой. Рукотворные строения, снаряжение и существа в пределах области не меняют свой облик.
\nМестность не меняется и на ощупь, так что существа, вошедшие в область, могут разоблачить иллюзию. Если разница на ощупь неочевидна, то существо может тщательно изучить иллюзию и пройти проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Существо, которое распознало иллюзию, видит её как туманный образ, наложенный на местность.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": 24, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 150, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Illyuzornye-pis�mena-_-Illusory-Script.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Illyuzornye-pis�mena-_-Illusory-Script.json new file mode 100755 index 0000000..c5c9e7e --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Illyuzornye-pis�mena-_-Illusory-Script.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Иллюзорные письмена / Illusory Script", + "img": "icons/sundries/documents/document-writing-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы делаете надпись на пергаменте, бумаге или ином подходящем материале и связываете её с мощной иллюзией, которая существует, пока длится заклинание.
\nВам и тем существам, которых вы выберете при сотворении, надпись кажется обычной, написанной вашей рукой и содержащей тот смысл, который вы в неё вложили. Всем остальным надпись кажется непонятной, написанной на неизвестном или магическом языке. Как вариант, вы можете заставить надпись выглядеть, будто в ней написано нечто совсем иное, иной рукой и на другом языке (но это должен быть известный вам язык).
\nЕсли заклинание рассеять, исчезают и иллюзия, и изначальная надпись.
\nСущество с &reference[truesight]{истинным зрением} может прочесть скрытую надпись.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "day" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Inoy-oblik-_-Alter-self.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Inoy-oblik-_-Alter-self.json new file mode 100755 index 0000000..a044523 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Inoy-oblik-_-Alter-self.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Иной облик / Alter self", + "img": "icons/creatures/claws/pincer-crab-brown.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы принимаете иную форму. Творя это заклинание, выберите один из представленных вариантов. Его эффекты сохранятся, пока длится заклинание. В это время вы можете в качестве действия прекратить один из вариантов и получить пользу от другого.
Естественное оружие. У вас вырастают когти, клыки, шипы, рога или иное естественное оружие на ваш выбор. Ваши безоружные удары наносят [[/r 1d6]] дробящего, колющего или режущего урона, подходящего выбранному вами естественному оружию, и вы умелы в обращении с ним. Это естественное оружие — магическое, у вас бонус +1 к броскам атаки и урона им.
Подводная адаптация. Ваше тело адаптируется к подводной среде, у вас появляются жабры и перепонки между пальцами. Вы можете дышать под водой и получаете скорость плавания, равную вашей скорости ходьбы.
Смена облика. Вы меняете свою внешность. Вы сами решаете, как вы выглядите теперь, какой у вас рост, вес, черты лица, голос, волосы, цвет кожи и прочее. Вы можете выглядеть как представитель другой расы, но ваши параметры не меняются. Нельзя превратиться в существо другого размера и сильно отличающееся по форме. К примеру, если вы двуногий, нельзя стать четвероногим. В любой момент пока длится заклинание, вы можете использовать действие, чтобы снова сменить облик на другой.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "cha", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "cha" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselenie-ran-_-Cure-Wounds.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselenie-ran-_-Cure-Wounds.json new file mode 100755 index 0000000..11dbbad --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselenie-ran-_-Cure-Wounds.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Исцеление ран / Cure Wounds", + "img": "icons/magic/life/cross-explosion-burst-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselyayushchee-slovo-_-Healing-Word.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselyayushchee-slovo-_-Healing-Word.json new file mode 100755 index 0000000..2a78575 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselyayushchee-slovo-_-Healing-Word.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Исцеляющее слово / Healing Word", + "img": "icons/magic/life/heart-cross-strong-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выбранное вами существо, которое вы видите в пределах дистанции, восстанавливает ПЗ в количестве [[/r 1d4]] + модификатор вашей заклинательной характеристики. Заклинание не действует на нежить и конструкции.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, исцеление увеличивается на [[/r 1d4]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselyayushchiy-moleben-_-Prayer-of-Healing.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselyayushchiy-moleben-_-Prayer-of-Healing.json new file mode 100755 index 0000000..88de30b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Istselyayushchiy-moleben-_-Prayer-of-Healing.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Исцеляющий молебен / Prayer of Healing", + "img": "icons/magic/holy/prayer-hands-glowing-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 6, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izgnanie-_-Banishment.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izgnanie-_-Banishment.json new file mode 100755 index 0000000..c238bbb --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izgnanie-_-Banishment.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изгнание / Banishment", + "img": "icons/magic/control/silhouette-grow-shrink-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь отправить одно существо, которое видите в пределах дистанции, на другой план бытия. Цель должна пройти испытание Харизмы, при провале она изгнана.
Если цель родом с того же плана, где вы находитесь, она изгнана в безвредный демиплан. Цель &reference[incapacitated]{выведена из строя}, пока там находится. Она остаётся там, пока длится заклинание, после чего снова появляется на месте, где раньше находилась, или в ближайшем незанятом пространстве, если прежнее место занято.
Если цель родом с иного плана бытия, она с негромким хлопком исчезает и возвращается на родной план. Если заклинание прекратится раньше, чем прошла 1 минута, цель появится на месте, где раньше находилась, или в ближайшем незанятом пространстве, если прежнее место занято. В противном случае цель не возвращается вовсе.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 4-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "cha", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izgotovlenie-_-Fabricate.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izgotovlenie-_-Fabricate.json new file mode 100755 index 0000000..ed39fea --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izgotovlenie-_-Fabricate.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изготовление / Fabricate", + "img": "icons/skills/trades/smithing-anvil-silver-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы превращаете сырьё в готовое изделие, изготовленное из него. К примеру, вы можете создать деревянный мост из брёвен, верёвку из пеньки или одежду из льна или шерсти.
\nВыберите сырьё, которое видите в пределах дистанции. Вы можете создать объект крупного &reference[size]{размера} или меньше (он должен поместиться в пределах 10-футового куба или восьми соединённых 5-футовых кубов), причём у вас должно быть достаточно сырья. Если вы работаете с металлом, камнем или иными минералами, изготовленный объект не может быть больше среднего размера (он должен поместиться в пределах одного 5-футового куба). Качество предметов, созданных заклинанием, соответствует качеству сырья.
\nС помощью заклинания нельзя создать существ и магические предметы или использовать их в качестве сырья. Вы также не можете создавать предметы, требующие высокого мастерства, например ювелирные украшения, оружие, стекло или броню, если только у вас нет умения в обращении с инструментами ремесленника для создания соответствующих предметов.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izmenenie-oblika-_-Disguise-self.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izmenenie-oblika-_-Disguise-self.json new file mode 100755 index 0000000..3da81c6 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Izmenenie-oblika-_-Disguise-self.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изменение облика / Disguise self", + "img": "icons/creatures/eyes/human-single-brown.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы придаёте себе — включая вашу одежду, броню, оружие и прочее снаряжение совершенно иной вид, пока длится заклинание или пока вы не прекратите его, потратив действие.
\nВы можете казаться на 1 фут выше или ниже, более тощим, толстым или средним.
\nОднако Вы не можете полностью поменять своё тело — вам нужно принять форму с таким же набором конечностей. В остальном параметры иллюзии зависят только от вас. Перемены, вызванные этим заклинанием, не выдерживают физического осмотра. К примеру, если вы с помощью заклинания добавите к своему образу шляпу, сквозь неё будут проходить предметы и любой, кто к ней прикоснётся, не почувствует ничего, кроме волос на вашей голове.
\nЕсли с помощью заклинания вы кажетесь худым, любой, кто протянет к вам руку, упрётся в ваши невидимые бока. Чтобы понять, что вы изменили внешность, существо может использовать действие, чтобы изучить ваш облик, и должно пройти проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "cha" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kamennaya-kozha-_-Stoneskin.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kamennaya-kozha-_-Stoneskin.json new file mode 100755 index 0000000..0674ca3 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kamennaya-kozha-_-Stoneskin.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Каменная кожа / Stoneskin", + "img": "icons/magic/earth/strike-fist-stone-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kasanie-vampira-_-Vampiric-Touch.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kasanie-vampira-_-Vampiric-Touch.json new file mode 100755 index 0000000..0d03cc9 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kasanie-vampira-_-Vampiric-Touch.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Касание вампира / Vampiric Touch", + "img": "icons/magic/death/mouth-bite-fangs-vampire.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "attack": { + "bonus": "7", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "necrotic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khizhina-Leomunda-_-Leomund's-Tiny-Hut.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khizhina-Leomunda-_-Leomund's-Tiny-Hut.json new file mode 100755 index 0000000..904f24e --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khizhina-Leomunda-_-Leomund's-Tiny-Hut.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Хижина Леомунда / Leomund's Tiny Hut", + "img": "icons/magic/water/barrier-ice-shield.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Неподвижный силовой купол радиусом 10 футов появляется вокруг вас и над вами и остаётся недвижим, пока длится заклинание. Заклинание прекращает действовать, если вы покидаете его область.
\nВместе с вами под куполом могут уместиться девять существ среднего размера или меньше. Если в области есть существо крупнее среднего или существ больше девяти, заклинание не сработает. Существа и объекты, находившиеся под куполом в момент сотворения, могут свободно проходить сквозь него. Все остальные существа и объекты не могут в него проникнуть. Заклинания и прочие магические эффекты не могут ни проникать сквозь купол, ни быть сотворены сквозь него. Атмосфера под куполом комфортная и сухая вне зависимости от погоды снаружи. Пока длится заклинание, вы можете приказать куполу стать &reference[dimlight]{тускло освещённым} внутри или погрузиться в &reference[darkness]{темноту}. Снаружи купол непрозрачен и имеет цвет, который вы выберете, но изнутри он прозрачен.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khozhdenie-po-vode-_-Water-Walk.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khozhdenie-po-vode-_-Water-Walk.json new file mode 100755 index 0000000..3d5c639 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khozhdenie-po-vode-_-Water-Walk.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Хождение по воде / Water Walk", + "img": "icons/magic/water/wave-water-rolling-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание даёт способность перемещаться по любой жидкой поверхности вроде воды, кислоты, грязи, снега, зыбучего песка или лавы, как если бы это была безопасная твёрдая поверхность (при этом существа, ходящие по раскалённой лаве, всё ещё могут получить урон от жары). Пока длится заклинание, эту способность получают до десяти согласных существ, которых вы видите в пределах дистанции.
\nЕсли сотворить это заклинание на существо, уже погруженное в жидкость, магия поднимет цель на поверхность со скоростью 60 футов в раунд.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khromaticheskiy-shar-_-Chromatic-Orb.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khromaticheskiy-shar-_-Chromatic-Orb.json new file mode 100755 index 0000000..a06c499 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Khromaticheskiy-shar-_-Chromatic-Orb.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Хроматический шар / Chromatic Orb", + "img": "icons/magic/fire/orb-fireball-puzzle.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы бросаете сферу энергии диаметром 4 дюйма в существо, которое видите в пределах дистанции. Выберите тип урона: гром, кислота, молния, огонь, холод или яд, а затем совершите дистанционную атаку заклинанием по цели. При попадании существо получает [[/r 3d8]] урона выбранного типа.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "3d8", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kislotnaya-strela-Melfa-_-Melf's-Acid-Arrow.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kislotnaya-strela-Melfa-_-Melf's-Acid-Arrow.json new file mode 100755 index 0000000..e886fba --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kislotnaya-strela-Melfa-_-Melf's-Acid-Arrow.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Кислотная стрела Мелфа / Melf's Acid Arrow", + "img": "icons/weapons/ammunition/arrow-broadhead-bent-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Мерцающая зелёная стрела поражает цель в пределах дистанции и взрывается брызгами кислоты. Соверите дистанционную атаку заклинанием по цели. При попадании цель получит [[/r 4d4]] урона кислотой немедленно и [[/r 2d4]] урона кислотой в конце своего следующего хода. При промахе стрела обрызгивает цель кислотой на половину начального урона, а в конце следующего хода урона не будет
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон (как начальный, так и последующий) увеличивается на [[/r 1d4]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d4[immediate]", + "acid" + ], + [ + "(@item.level)d4[end of turn]", + "acid" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kleymyashchaya-kara-_-Branding-Smite.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kleymyashchaya-kara-_-Branding-Smite.json new file mode 100755 index 0000000..97dd7f5 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kleymyashchaya-kara-_-Branding-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Клеймящая кара / Branding Smite", + "img": "icons/magic/fire/dagger-rune-enchant-flame-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием, пока длится заклинание, ваше оружие испускает астральное сияние и атака дополнительно наносит цели [[/r 2d6]] лучистого урона. Цель становится видимой, если была &reference[invisible]{невидима}, испускает &reference[dimlight]{тусклый свет} в радиусе 5 футов и не может стать невидимой, пока длится заклинание.
На высоких кругах. Если сотворяете это заклинание, используя ячейку 3-го круга или выше, дополнительный урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kontrzaklinanie-_-Counterspell.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kontrzaklinanie-_-Counterspell.json new file mode 100755 index 0000000..c000668 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Kontrzaklinanie-_-Counterspell.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Контрзаклинание / Counterspell", + "img": "icons/creatures/abilities/wolf-heads-swirl-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы пытаетесь помешать другому существу сотворить заклинание. Если существо творит заклинание 3-го круга или ниже, оно не срабатывает. Если это заклинание 4-го круга или выше, пройдите проверку вашей заклинательной характеристики. СЛ равна 10+ круг вражеского заклинания. При успехе заклинание существа не срабатывает.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, заклинание существа не срабатывает, если его круг не превышает круга использованной вами ячейки.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "1 ответное действие, которое вы совершаете, увидев, как существо в пределах 60 футов от вас творит заклинание" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "abil", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "1d20+@mod+@prof", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Korona-bezumiya-_-Crown-of-Madness.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Korona-bezumiya-_-Crown-of-Madness.json new file mode 100755 index 0000000..f6564c4 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Korona-bezumiya-_-Crown-of-Madness.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Корона безумия / Crown of Madness", + "img": "icons/equipment/head/helm-barbute-horned-gold-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Один гуманоид по вашему выбору, которого вы видите в пределах дистанции, должен пройти испытание Мудрости. При провале он &reference[charmed]{обворожён} вами, пока длится заклинание. Пока цель обворожена этим заклинанием, над её головой видна кривая корона из ломаного железа, а в глазах горит безумие.
Обворожённая цель в каждый свой ход перед перемещением должна использовать действие, чтобы совершить атаку ближнего боя по существу, кроме себя, которое вы мысленно выбираете. Если вы не выбираете существо или если в зоне досягаемости цели нет существ, цель может действовать в свой ход как обычно.
В ваши последующие ходы вы должны тратить действие, чтобы сохранять контроль над целью, иначе заклинание прекращает действовать. Кроме того, цель может проходить испытание Мудрости в конце каждого своего хода. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ledyanaya-burya-_-Ice-storm.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ledyanaya-burya-_-Ice-storm.json new file mode 100755 index 0000000..14bad2f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ledyanaya-burya-_-Ice-storm.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ледяная буря / Ice storm", + "img": "icons/magic/light/projectiles-salvo-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "bludgeoning" + ], + [ + "4d6", + "cold" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ledyanoe-prikosnovenie-_-Chill-Touch.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ledyanoe-prikosnovenie-_-Chill-Touch.json new file mode 100755 index 0000000..bb85bf2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ledyanoe-prikosnovenie-_-Chill-Touch.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ледяное прикосновение / Chill Touch", + "img": "icons/magic/lightning/claws-unarmed-strike-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте призрачную ладонь скелета в пространстве, занимаемом существом в пределах дистанции. Совершите дистанционную атаку заклинанием по существу, чтобы обдать его холодом могилы. При попадании цель получает [[/r 1d8]] некротического урона и не может восстанавливать ПЗ до начала вашего следующего хода. Все это время ладонь цепляется за цель.
\nЕсли вы попали этой атакой по нежити, она также получает помеху к броскам атаки по вам до конца вашего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го ([[/r 2d8]]), 11-го ([[/r 3d8]]) и 17-го уровня ([[/r 4d8]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Морозный луч голубого света бьёт в существо в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании она получает [[/r 1d8]] урона холодом и её скорость снижается на 10 футов до начала вашего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d8]] , когда вы достигаете 5-го ([[/r 2d8]] ), 11-го ([[/r 3d8]] ) и 17-го уровня ([[/r 4d8]] ).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Одно существо или незакрепленный объект на ваш выбор, которых вы видите в пределах дистанции, поднимается вертикально вверх на 20 футов или менее и остается там подвешенным, пока длится заклинание. Заклинание может поднять цель, весящую не более 500 фунтов. Если существо не согласно, оно может пройти испытание Выносливости, при успехе заклинание на него не подействует.
\nЦель может перемещаться, только подтягиваясь к неподвижным предметам или поверхностям в зоне ее досягаемости или отталкиваясь от них (например, от стен или потолка), что позволяет ей перемещаться как при лазании. Вы можете поднять или опустить цель на 20 или менее футов в ваш ход. Если ваша цель — вы сами, вы можете двигаться вверх или вниз в качестве части вашего перемещения. В противном случае вы можете использовать действие, чтобы переместить цель, и она должна оставаться в пределах дистанции заклинания.
\nКогда заклинание прекращает действовать, цель плавно опускается на землю, если ещё находилась в воздухе на тот момент.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lichnoe-ubezhishche-Mordenkaynena-_-Mordenkainen's-Private-Sanctum.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lichnoe-ubezhishche-Mordenkaynena-_-Mordenkainen's-Private-Sanctum.json new file mode 100755 index 0000000..3903366 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lichnoe-ubezhishche-Mordenkaynena-_-Mordenkainen's-Private-Sanctum.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Личное убежище Морденкайнена / Mordenkainen's Private Sanctum", + "img": "icons/commodities/treasure/puzzle-box-glowing-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, то можете увеличить размер куба на 100 футов за каждый круг ячейки выше 4-го. Таким образом, вы можете защитить куб размером до 200 футов по одной стороне, если сотворить его, используя ячейку 5-го круга.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": 24, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 100, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lozhnaya-zhizn�-_-False-Life.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lozhnaya-zhizn�-_-False-Life.json new file mode 100755 index 0000000..544e68b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lozhnaya-zhizn�-_-False-Life.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ложная жизнь / False Life", + "img": "icons/magic/life/heart-cross-purple-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + 4", + "temphp" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Luch-bolezni-_-Ray-of-Sickness.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Luch-bolezni-_-Ray-of-Sickness.json new file mode 100755 index 0000000..db7bca0 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Luch-bolezni-_-Ray-of-Sickness.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Луч болезни / Ray of Sickness", + "img": "icons/magic/light/beam-rays-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Зелёный луч болезнетворной энергии бьет в существо в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель получает [[/r 2d8]] урона ядом и должна пройти испытание Выносливости. При провале цель &reference[poisoned]{отравлена} до конца вашего следующего хода.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "poison" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lunnyy-svet-_-Moonbeam.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lunnyy-svet-_-Moonbeam.json new file mode 100755 index 0000000..93c8bb8 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Lunnyy-svet-_-Moonbeam.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Лунный свет / Moonbeam", + "img": "icons/environment/settlement/watchtower-moonlit-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 5, + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d10", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskaya-aura-Nistula-_-Nystul's-Magic-Aura.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskaya-aura-Nistula-_-Nystul's-Magic-Aura.json new file mode 100755 index 0000000..aa6fdbf --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskaya-aura-Nistula-_-Nystul's-Magic-Aura.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Магическая аура Нистула / Nystul's Magic Aura", + "img": "icons/equipment/finger/ring-faceted-gold-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы окутываете иллюзией существо или объект, которого коснулись, так что заклинания прорицания выдают о нем ложные сведения. Целью может быть согласное существо или объект, который не носит и не держит другое существо.
Когда вы творите это заклинание, выберите один из этих эффектов или оба. Они длятся, пока длится заклинание. Если сотворять это заклинание на то же существо или объект каждый день на протяжении 30 дней, используя один и тот же эффект, иллюзия будет существовать, пока не рассеяна.
Ложная аура. Вы меняете то, как цель выглядит для заклинаний и магических эффектов, таких как @Compendium[laaru-dnd5-hw.spells.O5tFJkuBe4IhqKEw]{Обнаружение магии}, определяющих магические ауры. Можете заставить немагический предмет казаться магическим, магический — немагическим или изменить ауру предмета так, что она будет казаться принадлежащей к определённой школе магии на ваш выбор. Когда вы применяете этот эффект к объекту, то можете сделать так, чтобы ложная магия казалась настоящей любому существу, использующему предмет.
Маскировка. Вы меняете то, как цель выглядит для заклинаний и магических эффектов, направленных на обнаружение конкретных типов существ, вроде Божественного чутья у паладина или условия срабатывания заклинания @Compendium[laaru-dnd5-hw.spells.9ZpJ79lDSnkltNCR]{Символ}. Вы выбираете тип существа, и все прочие заклинания и магические эффекты воспринимают цель, как если бы она была существом этого типа или мировоззрения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 24, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskaya-ruka-_-Mage-hand.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskaya-ruka-_-Mage-hand.json new file mode 100755 index 0000000..af2af97 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskaya-ruka-_-Mage-hand.json @@ -0,0 +1,139 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Магическая рука / Mage hand", + "img": "icons/magic/light/orbs-hand-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Призрачная рука появляется в воздухе в выбранной вами точке в пределах дистанции. Она существует до окончания длительности или пока вы не прекратите заклинание, потратив действие. Рука исчезает, если окажется более чем в 30 футах от вас или если вы снова сотворите это заклинание. Вы можете использовать действие, чтобы управлять рукой. С её помощью вы можете манипулировать предметами, открыть незапертую дверь или контейнер, убрать или достать предмет из открытого контейнера или выплеснуть содержимое пузырька. Вы можете перемещать руку на расстояние до 30 футов каждый раз, когда используете её. Рука не может атаковать, активировать магические предметы и поднимать более 10 фунтов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу, которое не носит броню, и его окружит защитное магическое поле, пока длится заклинание. Базовый КБ цели становится равным 13 + её модификатор Ловкости. Заклинание прекращает действовать, если цель надевает броню или если вы прекратите заклинание, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskiy-krug-_-Magic-Circle.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskiy-krug-_-Magic-Circle.json new file mode 100755 index 0000000..d213691 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Magicheskiy-krug-_-Magic-Circle.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Магический круг / Magic Circle", + "img": "icons/magic/symbols/star-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте цилиндр магической энергии радиусом 10 футов и высотой 20 футов с центром в точке на земле, которую видите в пределах дистанции. Там, где цилиндр пересекается с полом или иной поверхностью, загораются светящиеся руны, образуя круг.
Выберите один или несколько типов существ: бестии, небожители, нежить, феи или элементали. Круг воздействует на существ выбранных типов следующим образом:
Когда вы творите это заклинание, вы можете настроить его магию так, чтобы она действовала в обратном направлении: не позволяла существу определённого типа покидать цилиндр и защищала цели за его пределами.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, его длительность увеличивается на 1 час за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "cha", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Malaya-illyuziya-_-Minor-Illusion.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Malaya-illyuziya-_-Minor-Illusion.json new file mode 100755 index 0000000..6568a0a --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Malaya-illyuziya-_-Minor-Illusion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Малая иллюзия / Minor Illusion", + "img": "icons/magic/perception/eye-winged-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте звук или образ объекта в пределах дистанции. Он существует, пока длится заклинание. Иллюзия также рассеивается, если вы прекратите её в качестве действия или сотворите это заклинание снова.
\nЕсли вы создаёте звук, его громкость может варьироваться от шёпота до крика. Это может быть ваш или чей-то ещё голос, рёв льва, бой барабанов или что угодно ещё на ваш выбор. Звук может продолжаться всю длительность, или вы можете выбрать отдельные звуки, звучащие в разное время, пока длится заклинание.
\nЕсли вы создаёте образ объекта — например, кресло, грязные следы ног или сундучок, — он должен быть не больше 5-футового куба. Образ не может создавать звук, свет, запах или иной сенсорный эффект. Физическое взаимодействие с образом выдаёт, что это иллюзия, потому что предметы проходят сквозь неё.
\nЕсли существо использует действие, чтобы изучить звук или образ, оно может понять, что это иллюзия, успешно пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Если существо распознаёт иллюзию, она становится для него едва различимой
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Скользкое масло покрывает землю в 10-футовом квадрате с центром в точке в пределах дистанции.
Пока длится заклинание, эта область — &reference[difficultterrain]{пересечённая местность}. Когда появляется масло, каждое существо, стоящее в области действия, должно пройти испытание Ловкости. При провале существо &reference[prone]{распластывается}. Существо, которое входит в область или заканчивает в ней свой ход, тоже должно пройти испытание Ловкости, чтобы не распластаться.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Massovoe-istselyayushchee-slovo-_-Mass-Healing-Word.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Massovoe-istselyayushchee-slovo-_-Mass-Healing-Word.json new file mode 100755 index 0000000..1c01f6f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Massovoe-istselyayushchee-slovo-_-Mass-Healing-Word.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Массовое исцеляющее слово / Mass Healing Word", + "img": "icons/magic/life/heart-cross-strong-flame-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы произносите слова исцеления, и не более шести существ на ваш выбор, которых вы видите в пределах дистанции, восстанавливают ПЗ в количестве [[/r 1d4]] + модификатор вашей заклинательной характеристики. Заклинание не действует на нежить и конструкции.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, исцеление увеличивается на [[/r 1d4]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 6, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Melkie-fokusy-_-Prestidigitation.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Melkie-fokusy-_-Prestidigitation.json new file mode 100755 index 0000000..401a3f7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Melkie-fokusy-_-Prestidigitation.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Мелкие фокусы / Prestidigitation", + "img": "icons/magic/light/hand-sparks-smoke-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это маленький магический трюк, которым пользуются заклинатели-новички для тренировки. Вы можете создать один из перечисленных магических эффектов в пределах дистанции:
\nЛюбой из таких эффектов вы можете прекратить, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, бросайте [[/r d20]] в конце каждого вашего хода. При результате 11 или более вы исчезаете с вашего текущего плана бытия и оказываетесь на Эфирном плане (если вы уже там, заклинание не срабатывает и потрачено впустую). В начале вашего следующего хода или если заклинание прекращает действовать, пока вы ещё на Эфирном плане, вы возвращаетесь в незанятое пространство на ваш выбор, которое видите в пределах 10 футов от места, с которого исчезли. Если в пределах этой дистанции нет незанятого пространства, вы появляетесь в ближайшем незанятом (случайно выбранном, если равных по удаленности вариантов несколько). Вы можете прекратить заклинание, потратив действие.
\nПока вы на Эфирном плане, вы можете видеть (в оттенках серого и только в пределах 60 футов) и слышать все, что происходит на том плане, откуда вы прибыли. Вы можете взаимодействовать только с другими существами на Эфирном плане, и только они могут воздействовать на вас. Существа на других планах не чувствуют вас и не могут с вами взаимодействовать, если только им не дает такую возможность особая способность или магия.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Mesto-istiny-_-Zone-of-Truth.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Mesto-istiny-_-Zone-of-Truth.json new file mode 100755 index 0000000..a50c1e5 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Mesto-istiny-_-Zone-of-Truth.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Место истины / Zone of Truth", + "img": "icons/magic/light/orb-shadow-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте магическую зону, где невозможен обман. Она занимает сферу радиусом 15 футов вокруг выбранной вами точки в пределах дистанции. Пока длится заклинание, любое существо, впервые за ход вошедшее в область действия или начавшее в ней свой ход, должно пройти испытание Харизмы. При провале существо не может намеренно произнести ни слова лжи, пока находится в области. Вы точно знаете, успешно ли существо прошло испытание.
\nСущество, находящееся под влиянием этого заклинания, знает об этом и может избегать ответов на неудобные вопросы. Такое существо будет отвечать уклончиво, но формально в пределах правды.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "cha", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Metka-okhotnika-_-Hunter's-Mark.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Metka-okhotnika-_-Hunter's-Mark.json new file mode 100755 index 0000000..e00a542 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Metka-okhotnika-_-Hunter's-Mark.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Метка охотника / Hunter's Mark", + "img": "icons/skills/ranged/target-bullseye-arrow-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Milost�-bozhestva-_-Divine-Favor.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Milost�-bozhestva-_-Divine-Favor.json new file mode 100755 index 0000000..8239ef0 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Milost�-bozhestva-_-Divine-Favor.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Милость божества / Divine Favor", + "img": "icons/skills/ranged/wand-attack-beam-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nanesenie-ran-_-Inflict-wounds.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nanesenie-ran-_-Inflict-wounds.json new file mode 100755 index 0000000..21ed1cf --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nanesenie-ran-_-Inflict-wounds.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Нанесение ран / Inflict wounds", + "img": "icons/magic/control/voodoo-doll-pain-damage-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Совершите атаку заклинание в ближнем бою по существу в пределах зоны досягаемости. При попадании цель получает [[/r 3d10]] некротического урона.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d10", + "necrotic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Napravlyayushchiy-luch-_-Guiding-Bolt.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Napravlyayushchiy-luch-_-Guiding-Bolt.json new file mode 100755 index 0000000..f04c0dd --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Napravlyayushchiy-luch-_-Guiding-Bolt.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Направляющий луч / Guiding Bolt", + "img": "icons/magic/light/beam-rays-blue-large.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вспышка света бьёт в выбранное вами существо в пределах дистанции. Совершите дистанционную атаку заклинанием по этой цели. При попадании цель получает [[/r 4d6]] лучистого урона, а следующий бросок атаки против этой цели до конца вашего следующего хода получает преимущество благодаря тусклому мистическому свету, который исходит от неё.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "round" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nastavlenie-_-Guidance.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nastavlenie-_-Guidance.json new file mode 100755 index 0000000..e08475c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nastavlenie-_-Guidance.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Наставление / Guidance", + "img": "icons/skills/ranged/arrow-flying-ornate-gold.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному существу. Пока длится заклинание, цель может один раз бросить [[/r d4]] и добавить результат броска к любой проверке характеристики. Кость можно бросить либо до проверки, либо после. Затем заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте образ объекта, существа или иного видимого явления, размером не больше 15-футового куба. Образ появляется в точке в пределах дистанции и существует, пока длится заклинание. Образ сугубо визуальный, его не сопровождают звуки, запахи или иные сенсорные эффекты.
\nВы можете использовать действие, чтобы переместить образ в любую другую точку в пределах дистанции. Когда образ перемещается, вы можете изменять его так, чтобы его движение казалось естественным. К примеру, если вы перемещаете образ существа, можете заставить его перебирать ногами, будто оно идёт.
\nФизическое взаимодействие с образом выдаёт, что это иллюзия, потому что предметы проходят сквозь неё. Существо, которое использует действие, чтобы изучить образ, сможет понять, что это иллюзия, успешно пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Если существо распознаёт иллюзию, оно может видеть сквозь образ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Neobnaruzhimost�-_-Nondetection.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Neobnaruzhimost�-_-Nondetection.json new file mode 100755 index 0000000..591f4dc --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Neobnaruzhimost�-_-Nondetection.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Необнаружимость / Nondetection", + "img": "icons/magic/symbols/question-stone-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nevidimost�-_-Invisibility.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nevidimost�-_-Invisibility.json new file mode 100755 index 0000000..d78cf57 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nevidimost�-_-Invisibility.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Невидимость / Invisibility", + "img": "icons/creatures/reptiles/chameleon-camouflage-green-brown.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Существо, которого вы коснулись, становится &reference[invisible]{невидимым}, пока длится заклинание. Все, что цель носит или держит, остаётся невидимым, пока оно у цели. Заклинание прекращает действовать для цели, если она атакует или творит заклинание.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nevidimyy-sluga-_-Unseen-Servant.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nevidimyy-sluga-_-Unseen-Servant.json new file mode 100755 index 0000000..962f536 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nevidimyy-sluga-_-Unseen-Servant.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Невидимый слуга / Unseen Servant", + "img": "icons/creatures/magical/spirit-undead-horned-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт &reference[invisible]{невидимого}, неразумного и бесформенного слугу среднего размера, выполняющего простые задания согласно вашим приказам, пока длится заклинание. Слуга появляется в незанятом пространстве на земле в пределах дистанции. У него КБ 10, 1 ПЗ и Сила 2, он не может атаковать. Если его ПЗ снижаются до 0, заклинание прекращает действовать.
Один раз в любой ваш ход в качестве бонусного действия вы можете мысленно приказать слуге переместиться на расстояние до 15 футов и взаимодействовать с объектом. Слуга может выполнять простые задачи подобно слуге-человеку, например приносить вещи, убираться, чинить сломанное, складывать одежду, зажигать пламя, подавать еду и разливать вино. Отданный вами приказ слуга выполняет так хорошо, как может, а после выполнения ждёт новых приказов.
Если вы приказываете слуге выполнить задание, для которого надо переместиться далее чем на 60 футов от вас, заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nizshee-vosstanovlenie-_-Lesser-Restoration.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nizshee-vosstanovlenie-_-Lesser-Restoration.json new file mode 100755 index 0000000..fd976f7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nizshee-vosstanovlenie-_-Lesser-Restoration.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Низшее восстановление / Lesser Restoration", + "img": "icons/magic/nature/leaf-oak-wreath-glow-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу и исцелите одну его болезнь или состояние. Из состояний можно исцелить &reference[blinded]{слепоту}, &reference[deafened]{глухоту}, &reference[paralyzed]{паралич} или &reference[poisoned]{отравление}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nochnoe-zrenie-_-Darkvision.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nochnoe-zrenie-_-Darkvision.json new file mode 100755 index 0000000..c7770c8 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Nochnoe-zrenie-_-Darkvision.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ночное зрение / Darkvision", + "img": "icons/creatures/magical/construct-golem-stone-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу, и оно получит способность видеть в темноте. Пока длится заклинание, у этого существа &reference[darkvision]{Ночное зрение} в радиусе 60 футов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obereg-ot-oruzhiya-_-Blade-Ward.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obereg-ot-oruzhiya-_-Blade-Ward.json new file mode 100755 index 0000000..48da837 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obereg-ot-oruzhiya-_-Blade-Ward.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Оберег от оружия / Blade Ward", + "img": "icons/skills/melee/sword-damaged-broken-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы протягиваете руку и чертите защитный знак в воздухе. До конца вашего следующего хода у вас @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к дробящему, колющему и режущему урону от атак оружием.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы наполняете воздух вращающимися кинжалами в 5-футовом кубе с центром в выбранной вами точке в пределах дистанции. Существо получает [[/r 4d4]] режущего урона, когда впервые за ход входит в область действия заклинания или начинает в ней свой ход.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон увеличивается на [[/r 2d4]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 5, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d4", + "slashing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oblako-tumana-_-Fog-Cloud.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oblako-tumana-_-Fog-Cloud.json new file mode 100755 index 0000000..86dd184 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oblako-tumana-_-Fog-Cloud.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Облако тумана / Fog Cloud", + "img": "icons/magic/air/fog-gas-smoke-swirling-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-lovushek-_-Find-Traps.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-lovushek-_-Find-Traps.json new file mode 100755 index 0000000..1fb8e90 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-lovushek-_-Find-Traps.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение ловушек / Find Traps", + "img": "icons/environment/traps/trap-jaw-tan.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы ощущаете присутствие любой ловушки в пределах дистанции, если она также на линии видимости. Ловушкой это заклинание считает все, что может причинить неожиданный эффект, который считается вредным или нежелательным, и что намеренно было создано с этой целью. Таким образом, заклинание указывает область действия заклинаний @Compendium[laaru-dnd5-hw.spells.sQSnAqsvleQJvtie]{Сигнал тревоги} и @Compendium[laaru-dnd5-hw.spells.BxF5Gz9NuDGN52zF]{Сторожевая печать}, а также механическую яму-ловушку, но не может заметить простой обветшалый пол, готовый обвалиться потолок или яму-промоину.
\nЗаклинание просто указывает, что ловушка здесь есть. Вы не узнаете местонахождение каждой ловушки, но узнаете примерную суть опасности, которую она представляет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-magii-_-Detect-magic.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-magii-_-Detect-magic.json new file mode 100755 index 0000000..78dd218 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-magii-_-Detect-magic.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение магии / Detect magic", + "img": "icons/magic/unholy/hands-cloud-light-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы чувствуете присутствие магии в пределах 30 футов от вас. Почувствовав магию, можете использовать действие, чтобы разглядеть слабую ауру вокруг любого видимого существа или объекта в области действия, содержащего магию, и узнать его @Compendium[laaru-dnd5-hw.intro.V7fkbFEaNipZXVjU]{школу магии}, если она есть.
\nЗаклинание проходит через большинство препятствий. Его блокируют 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-mysley-_-Detect-Thoughts.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-mysley-_-Detect-Thoughts.json new file mode 100755 index 0000000..845c268 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-mysley-_-Detect-Thoughts.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение мыслей / Detect Thoughts", + "img": "icons/magic/lightning/bolt-strike-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы можете прочесть мысли некоторых существ. Когда вы сотворяете это заклинание или в качестве действия в каждый ваш ход, вы можете сфокусировать свой разум на одном существе, которое видите в пределах 30 футов от вас. Если у выбранного вами существа Интеллект 3 или ниже или оно не говорит ни на одном языке, заклинание на него не действует
\nВы сперва узнаете поверхностные мысли существа что у него на уме в данный момент. В качестве действия вы можете либо переключить внимание на мысли другого существа, либо попытаться проникнуть глубже в разум того же существа. Если вы проникаете глубже, цель должна пройти испытание Мудрости. При провале вы понимаете ее рассуждения (если есть), эмоциональное состояние и то, что для нее важно (например, что ее волнует, что она любит или ненавидит). При успехе заклинание прекращает действовать. В любом случае цель узнаёт, что вы читали её мысли. Если вы не переключитесь на мысли другого существа, цель может использовать действие в свой ход, чтобы пройти проверку Интеллекта в состязании с вашей проверкой Интеллекта; при успехе цели заклинание прекращает действовать.
\nВопросы, заданные цели вслух, могут естественным образом направить течение её мыслей, так что заклинание особенно полезно при допросе.
\nВы также можете использовать его, чтобы обнаружить присутствие мыслящих существ, которых не видите. Когда вы сотворяете это заклинание или в качестве действия, пока оно длится, вы можете поискать чужие мысли в пределах 30 футов от вас. Заклинание проходит через большинство препятствий. Его блокируют 2 фута камня, 2 дюйма обычного металла или тонкий лист свинца. Нельзя обнаружить мысли существа с Интеллектом 3 или ниже или такого, которое не говорит ни на одном языке.
\nОбнаружив присутствие существа таким образом, вы можете читать его мысли до конца длительности заклинания, как описано выше, даже если не видите цель, но только пока она остаётся в пределах дистанции.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "self", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-yada-i-bolezni-_-Detect-Poison-and-Disease.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-yada-i-bolezni-_-Detect-Poison-and-Disease.json new file mode 100755 index 0000000..f6fcf1b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-yada-i-bolezni-_-Detect-Poison-and-Disease.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение яда и болезни / Detect Poison and Disease", + "img": "icons/skills/toxins/poison-bottle-open-fire-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы чувствуете присутствие и местоположение ядов, ядовитых существ и болезней в пределах 30 футов от вас. Вы также опознаёте типы ядов, ядовитых существ и болезней в каждом случае.
\nЗаклинание проходит через большинство препятствий. Его блокируют 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-zla-i-dobra-_-Detect-evil-and-good.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-zla-i-dobra-_-Detect-evil-and-good.json new file mode 100755 index 0000000..3fd8bdb --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-zla-i-dobra-_-Detect-evil-and-good.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение зла и добра / Detect evil and good", + "img": "icons/magic/unholy/orb-contained-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы знаете, есть ли в пределах 30 футов от вас аберрация, бестия, небожитель, нежить, фея или элементаль, а также местонахождение этого существа. Аналогично вы узнаёте, если в пределах 30 футов есть место или объект, магически освящённый или осквернённый. Заклинание проходит через большинство препятствий. Его блокируют 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ochishchenie-edy-i-pit�ya-_-Purify-Food-and-Drink.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ochishchenie-edy-i-pit�ya-_-Purify-Food-and-Drink.json new file mode 100755 index 0000000..f0f6924 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ochishchenie-edy-i-pit�ya-_-Purify-Food-and-Drink.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Очищение еды и питья / Purify Food and Drink", + "img": "icons/consumables/meat/hock-leg-stylized.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 5, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennaya-stena-_-Wall-of-Fire.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennaya-stena-_-Wall-of-Fire.json new file mode 100755 index 0000000..62b9c69 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennaya-stena-_-Wall-of-Fire.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненная стена / Wall of Fire", + "img": "icons/magic/fire/barrier-wall-flame-ring-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 60, + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-klinok-_-Flame-Blade.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-klinok-_-Flame-Blade.json new file mode 100755 index 0000000..648dc3c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-klinok-_-Flame-Blade.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный клинок / Flame Blade", + "img": "icons/magic/fire/dagger-rune-enchant-flame-strong-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "(floor((@item.level) / 2) + 2)d6", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-shar-_-Fireball.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-shar-_-Fireball.json new file mode 100755 index 0000000..fc4b993 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-shar-_-Fireball.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный шар / Fireball", + "img": "icons/magic/fire/projectile-fireball-smoke-strong-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d6", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-shchit-_-Fire-Shield.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-shchit-_-Fire-Shield.json new file mode 100755 index 0000000..f10d3a4 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-shchit-_-Fire-Shield.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный щит / Fire Shield", + "img": "icons/equipment/shield/heater-steel-crystal-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Тонкие подвижные язычки пламени охватывают ваше тело, пока длится заклинание, испуская яркий свет в радиусе 10 футов и тусклый ещё на 10 футов. Вы можете досрочно прекратить заклинание, потратив действие.
\nПламя даёт вам тёплый или морозный щит на ваш выбор. Тёплый щит даёт вам @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к урону холодом, а морозный — к урону огнем
\nКроме того, когда существо в пределах 5 футов от вас попадает по вам атакой ближнего боя, щит извергает пламя. Атакующий получает [[/r 2d8]] урона огнём от тёплого щита или [[/r 2d8]] урона холодом от морозного.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-snaryad-_-Fire-bolt.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-snaryad-_-Fire-bolt.json new file mode 100755 index 0000000..8e3c62d --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ognennyy-snaryad-_-Fire-bolt.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный снаряд / Fire bolt", + "img": "icons/magic/fire/projectile-bolt-zigzag-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы бросаете комок огня в существо или объект в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель получает [[/r 1d10]] урона огнём. Горючий объект, по которому попало это заклинание, загорается, если его не носят и не держат.
\nУрон заклинания увеличивается на [[/r 1d10]], когда вы достигаете 5-го ([[/r 2d10]]), 11-го ([[/r 3d10]]) и 17-го уровня ([[/r 4d10]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы втыкаете четыре немагических боеприпаса (стрелы или арбалетных болта) в землю в пределах дистанции и сотворяете на них магию, чтобы защищать эту область. Пока длится заклинание, всякий раз, когда любое существо, кроме вас, впервые за ход проходит в пределах 30 футов от боеприпаса или заканчивает там свой ход, один из боеприпасов взлетает и атакует его. Существо должно пройти испытание Ловкости, при провале оно получает [[/r 1d6]] колющего урона. Боеприпас при этом уничтожается. Заклинание прекращает действовать, когда не остаётся боеприпасов.
Когда вы творите заклинание, вы можете указать любых существ, против которых заклинание не будет срабатывать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, количество используемых боеприпасов увеличивается на два за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "piercing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Opalyayushchiy-luch-_-Scorching-Ray.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Opalyayushchiy-luch-_-Scorching-Ray.json new file mode 100755 index 0000000..b1d2bf1 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Opalyayushchiy-luch-_-Scorching-Ray.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опаляющий луч / Scorching Ray", + "img": "icons/magic/light/beam-rays-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 3, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Opoznanie-_-Identify.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Opoznanie-_-Identify.json new file mode 100755 index 0000000..f16a054 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Opoznanie-_-Identify.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опознание / Identify", + "img": "icons/sundries/scrolls/scroll-bound-blue-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выберите объект и прикасайтесь к нему, пока творите заклинание. Если это магический предмет или иной объект, наполненный магией, вы узнаете его свойства и как его использовать, требует ли он настроенности и сколько у него зарядов, если они есть. Вы также узнаете, воздействуют ли заклинания на предмет и какие. Если предмет создан заклинанием, вы узнаёте каким. Если вместо этого во время сотворения прикасаться к существу, вы узнаете, воздействуют ли какие-то заклинания на него и какие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oputyvanie-_-Entangle.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oputyvanie-_-Entangle.json new file mode 100755 index 0000000..f249f4b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oputyvanie-_-Entangle.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опутывание / Entangle", + "img": "icons/creatures/tentacles/tentacle-earth-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Цепкие лозы и лианы выползают из земли в 20-футовом квадрате, начинающемся с точки в пределах дистанции. Пока длится заклинание, эти растения превращают область действия в пересечённую местность.
Каждое существо в области в момент сотворения должно пройти испытание Силы. При провале оно &reference[restrained]{обездвижено} лозами, пока длится заклинание. Существо, обездвиженное лозами, может использовать действие, чтобы пройти проверку Силы. СЛ равна СЛ испытаний против ваших заклинаний. При успехе существо освобождается.
Когда заклинание прекращает действовать, созданные растения увядают.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oputyvayushchiy-udar-_-Ensnaring-Strike.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oputyvayushchiy-udar-_-Ensnaring-Strike.json new file mode 100755 index 0000000..ceb012c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oputyvayushchiy-udar-_-Ensnaring-Strike.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опутывающий удар / Ensnaring Strike", + "img": "icons/magic/nature/root-vine-hand-strike.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием, пока длится заклинание, в точке попадания вырастает масса извивающихся шипастых лиан. Цель должна пройти испытание Силы, при провале она &reference[restrained]{обездвижена} магическими лианами, пока длится заклинание. Существо крупного размера и более получает преимущество к испытанию. При успехе цели лианы увядают.
Пока цель обездвижена лианами, она получает [[/r 1d6]] колющего урона в начале каждого своего хода. Существо, обездвиженное лианами, или другое существо, способное его коснуться, может использовать действие, чтобы пройти проверку Силы. СЛ равна СЛ испытаний против ваших заклинаний. При успехе цель освобождается.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "piercing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oshelomlyayushchaya-kara-_-Staggering-Smite.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oshelomlyayushchaya-kara-_-Staggering-Smite.json new file mode 100755 index 0000000..763011c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oshelomlyayushchaya-kara-_-Staggering-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ошеломляющая кара / Staggering Smite", + "img": "icons/skills/melee/strike-axe-energy-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваше оружие пронзает и тело врага, и его разум, а атака дополнительно наносит цели [[/r 4d6]] психического урона. Цель должна пройти испытание Мудрости. При провале она получает помеху к броскам атаки и проверкам характеристики не может совершать ответные действия до конца своего следующего хода.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "psychic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oslablyayushchiy-luch-_-Ray-of-Enfeeblement.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oslablyayushchiy-luch-_-Ray-of-Enfeeblement.json new file mode 100755 index 0000000..bc50800 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Oslablyayushchiy-luch-_-Ray-of-Enfeeblement.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ослабляющий луч / Ray of Enfeeblement", + "img": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Чёрный луч ослабляющей энергии исторгается из вашего пальца в сторону существа в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель сможет наносить своими атаками оружием, связанными с силой, только половину обычного урона, пока длится заклинание.
\nВ конце каждого своего хода цель может пройти испытание Выносливости против заклинания. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ozhivlenie-mertvetsov-_-Animate-Dead.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ozhivlenie-mertvetsov-_-Animate-Dead.json new file mode 100755 index 0000000..e3d8209 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ozhivlenie-mertvetsov-_-Animate-Dead.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Оживление мертвецов / Animate Dead", + "img": "icons/magic/death/skeleton-skull-soul-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт слугу-нежить. Выберите груду костей или труп среднего или небольшого гуманоида в пределах дистанции. Ваше заклинание наделяет покойника нечестивым подобием жизни и превращает его в нежить. Цель становится скелетом, если вы выбрали кости, или зомби, если это был труп (параметры существа есть у мастера). В каждый ваш ход вы можете использовать бонусное действие, чтобы отдать мысленный приказ любому существу, которое вы создали этим заклинанием, если оно в пределах 60 футов от вас. Если вы контролируете несколько существ, можете отдать одинаковый приказ любому их количеству одновременно. Вы можете решить, какое действие совершит существо и куда переместится в свой следующий ход, а можете отдать приказ общего характера, например охранять конкретную комнату или коридор. Если вы не прикажете ничего, то существо будет только защищаться от враждебных существ. Получив приказ, существо следует ему до выполнения задачи. Существо остаётся под вашим контролем 24 часа, после чего перестаёт подчиняться вашим приказам. Чтобы сохранить контроль над существом ещё на 24 часа, вам надо снова сотворить на него это заклинание, пока нынешние 24 часа не истекли. Подобное применение заклинания позволяет вам сохранить контроль над четырьмя или менее существами, которых вы оживили этим заклинанием, вместо того, чтобы оживлять новое.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, то можете оживить или продлить контроль над двумя дополнительными существами-нежитью за каждый круг ячейки выше 3-го. Каждое из этих существ должно быть создано из отдельного трупа или груды костей.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Paralich-gumanoida-_-Hold-person.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Paralich-gumanoida-_-Hold-person.json new file mode 100755 index 0000000..877a6ad --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Paralich-gumanoida-_-Hold-person.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паралич гуманоида / Hold person", + "img": "icons/magic/control/debuff-chains-shackle-movement-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите гуманоида, которого видите в пределах дистанции. Цель должна пройти испытание Мудрости, при провале она &reference[paralyzed]{парализована}, пока длится заклинание. В конце каждого своего хода цель может пройти еще одно испытание Мудрости. При успехе заклинание прекращает действовать на цель.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, то можете выбрать целью одного дополнительного гуманоида за каждый круг ячейки выше 2-го. Эти гуманоиды должны быть в пределах 30 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Paryashchiy-disk-Tenzera-_-Tenser's-Floating-Disk.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Paryashchiy-disk-Tenzera-_-Tenser's-Floating-Disk.json new file mode 100755 index 0000000..216e50b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Paryashchiy-disk-Tenzera-_-Tenser's-Floating-Disk.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Парящий диск Тензера / Tenser's Floating Disk", + "img": "icons/consumables/food/candy-pattie-pink-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт круглый горизонтальный силовой диск диаметром з фута и толщиной 1 дюйм. Он парит в 3 футах от земли в незанятом пространстве на ваш выбор, которое вы видите в пределах дистанции. Диск существует, пока длится заклинание, и может выдерживать вес до 500 фунтов. Если на него поместить больший вес, заклинание прекращает действовать и все, что было на диске, падает наземь
Диск неподвижен, пока вы в пределах 20 футов от него. Если вы переместитесь за пределы 20 футов, диск полетит вслед за вами, чтобы оставаться в пределах 20 футов от вас. Он может лететь над пересеченной местностью, вверх и вниз по ступенями склонам, но неспособен преодолеть уступ высотой более 10 футов. К примеру, диск не может перелететь через яму глубиной 10 футов, а если он создан на ее дне — не сможет ее покинуть.
Если вы окажетесь более чем в 100 футах от диска (например, потому что он не смог преодолеть препятствие, следуя за вами), заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pauch�i-lapy-_-Spider-Climb.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pauch�i-lapy-_-Spider-Climb.json new file mode 100755 index 0000000..694bd23 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pauch�i-lapy-_-Spider-Climb.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паучьи лапы / Spider Climb", + "img": "icons/creatures/invertebrates/spider-web-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pautina-_-Web.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pautina-_-Web.json new file mode 100755 index 0000000..bbcdae7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pautina-_-Web.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паутина / Web", + "img": "icons/creatures/webs/web-spider-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете массу плотной липкой паутины в выбранной вами точке в пределах дистанции. Паутина наполняет 20-футовый куб, исходящий из этой точки, пока длится заклинание.
Паутина создаёт &reference[difficultterrain]{пересечённую местность} и слегка затрудняет в ней видимость. Если не закрепить паутину на двух твердых поверхностях (вроде стен или деревьев) или не нанести ее слоями на пол, стену или потолок, паутина обвалится и заклинание прекратит действовать в начале вашего следующего хода. Глубина слоёв паутины на плоской поверхности равна 5 футам.
Каждое существо, которое начинает свой ход в паутине или вошло в нее в свой ход, должно пройти испытание Ловкости. При провале существо становится &reference[restrained]{обездвиженным}, пока находится в паутине или пока не освободится.
&reference[restrained]{Обездвиженное} паутиной существо может потратить действие, чтобы пройти проверку Силы со Сл, равной СЛ испытаний против ваших заклинаний. При успехе оно перестаёт быть обездвиженным.
Паутина горюча. Любой 5-футовый куб паутины, попав в огонь, сгорает за 1 раунд, нанося [[/r 2d4]] урона огнём любому существу, которое начнёт свой ход в нём.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plashch-krestonostsa-_-Crusader's-Mantle.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plashch-krestonostsa-_-Crusader's-Mantle.json new file mode 100755 index 0000000..42907d2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plashch-krestonostsa-_-Crusader's-Mantle.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Плащ крестоносца / Crusader's Mantle", + "img": "icons/magic/holy/angel-wings-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Священная мощь исходит из вас в виде ауры с радиусом 30 футов и пробуждает отвагу в дружественных вам существах. Пока длится заклинание, аура перемещается вместе с вами — вы остаетесь в её центре. Находясь в ауре, каждое невраждебное вам существо (включая вас) дополнительно наносит [[/r 1d4]] лучистого урона, когда попадает атакой оружием.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plavnoe-padenie-_-Feather-Fall.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plavnoe-padenie-_-Feather-Fall.json new file mode 100755 index 0000000..cc58d2d --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plavnoe-padenie-_-Feather-Fall.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Плавное падение / Feather Fall", + "img": "icons/commodities/materials/feather-white-glowing-fire.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "1 ответное действие, совершаемое, когда вы или существо в пределах 60 футов падаете" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 5, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plyashushchie-ogon�ki-_-Dancing-lights.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plyashushchie-ogon�ki-_-Dancing-lights.json new file mode 100755 index 0000000..2de2807 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Plyashushchie-ogon�ki-_-Dancing-lights.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пляшущие огоньки / Dancing lights", + "img": "icons/magic/light/orbs-firefly-hand-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте до четырёх огоньков размером с факелы в пределах дистанции, придав им форму факелов, фонарей или светящихся шаров. Они парят в воздухе, пока длится заклинание. Вы можете также соединить четыре огонька в один светящийся силуэт в форме гуманоида среднего размера. Независимо от формы, каждый огонёк испускает тусклый свет в радиусе 10 футов.
\nВ качестве бонусного действия в свой ход вы можете переместить огоньки на расстояние до 60 футов в пределах дистанции. Каждый огонёк должен находиться в пределах 20 футов от другого, созданного тем же заклинанием. Если огонёк выходит за пределы дистанции заклинания, он гаснет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание чинит одну поломку или разрыв в объекте, которого вы коснулись, например порванное звено цепочки, сломанный пополам ключ, разорванный плащ или протёкший бурдюк. Если разрыв или поломка не более 1 футa в любом измерении, вы можете их починить, не оставив даже следа прежнего повреждения.
\nЗаклинание может физически починить магические предметы и конструкции, но не может восстановить в них магию.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь подчинить животное, которое видите в пределах дистанции. Оно должно пройти испытание Мудрости, при провале оно &reference[charmed]{обворожено} вами, пока длится заклинание. Если вы или дружественные вам существа сражаетесь с этим животным, у него преимущество к испытанию.
Пока цель &reference[charmed]{обворожена}, у вас есть с ней телепатическая связь, если вы оба находитесь на одном плане бытия. Вы можете с помощью этой телепатической связи отдавать существу приказы, пока вы в сознании (действие не требуется), и оно будет выполнять их, насколько сможет. Можете отдавать простые приказы общего характера, например: «Атакуй это существо», «Беги туда», «Схвати этот предмет». Если существо выполняет приказ и больше не получает от вас новых указаний, оно бросает все силы на самозащиту.
Вы можете использовать действие, чтобы обрести полный и точный контроль над целью. До конца вашего следующего хода существо совершает только те действия, которые выбираете вы, и не делает ничего, что вы ему не разрешили. В это время вы можете заставить существо совершить @UUID[Compendium.laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{ответное действие}, но это также потратит ваше ответное действие.
Всякий раз, когда цель получает урон, она снова проходит испытание Мудрости против заклинания. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга, его длительность - концентрация, до 10 минут. Если использовать ячейку 6-го круга, его длительность — концентрация, до 1 часа. Если использовать ячейку 7-го круга или выше, его длительность — концентрация, до 8 часов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-predmeta-_-Locate-Object.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-predmeta-_-Locate-Object.json new file mode 100755 index 0000000..ab7027f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-predmeta-_-Locate-Object.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поиск предмета / Locate Object", + "img": "icons/commodities/tech/cog-rough-stone.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Назовите или опишите знакомый вам предмет. Вы ощутите, в каком направлении он находится, если он в пределах 1 000 футов от вас. Если предмет перемещается, вы узнаете, в каком направлении.
\nЗаклинание может найти конкретный знакомый вам предмет, если вы хоть раз видели его вблизи (в пределах 30 футов). Как вариант, заклинание может найти ближайший предмет подобного вида, например определённого вида одежду, украшение, мебель, инструмент или оружие.
\nЗаклинание не может найти предмет, если прямой путь между ним и вами преграждает слой свинца любой толщины, даже тонкий лист.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-sushchestva-_-Locate-Creature.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-sushchestva-_-Locate-Creature.json new file mode 100755 index 0000000..4add4d2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-sushchestva-_-Locate-Creature.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поиск существа / Locate Creature", + "img": "icons/creatures/birds/corvid-watchful-glowing-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Назовите или опишите знакомое вам существо. Вы ощутите, в каком направлении находится это существо, если оно в пределах 1000 футов от вас. Если существо перемещается, вы узнаете, в каком направлении.
\nЗаклинание может найти либо конкретное знакомое вам существо, либо ближайшее существо определённого вида (например, человека или единорога), если вы хоть раз видели подобное существо вблизи (в пределах 30 футов). Если описанное вами существо приняло иную форму, например из-за эффекта заклинания @Compendium[laaru-dnd5-hw.spells.8qeo9ZE7VnkmVKcv]{Полиморф}, это заклинание не сможет найти существо.
\nЗаклинание не может найти существо, если прямой путь между ними вами преграждает текущая вода не менее 10 футов в ширину.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-zhivotnogo-ili-rasteniya-_-Locate-Animals-or-Plants.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-zhivotnogo-ili-rasteniya-_-Locate-Animals-or-Plants.json new file mode 100755 index 0000000..385ed7a --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poisk-zhivotnogo-ili-rasteniya-_-Locate-Animals-or-Plants.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поиск животного или растения / Locate Animals or Plants", + "img": "icons/creatures/amphibians/treefrog-leaf-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poliglot-_-Tongues.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poliglot-_-Tongues.json new file mode 100755 index 0000000..cc3c062 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poliglot-_-Tongues.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полиглот / Tongues", + "img": "modules/laaru-dnd5-hw/assets/icons/feat/phb-linguist.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это заклинание позволяет существу, которого вы коснулись, понимать устную речь на любых языках, которую оно слышит. Кроме того, когда цель говорит, любое существо, знающее хоть один язык и способное слышать цель, понимает речь цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polimorf-_-Polymorph.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polimorf-_-Polymorph.json new file mode 100755 index 0000000..fba9344 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polimorf-_-Polymorph.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полиморф / Polymorph", + "img": "icons/creatures/amphibians/bullfrog-glowing-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Заклинание превращает существо, которое вы видите в пределах дистанции, в новую форму. Несогласное существо должно пройти испытание Мудрости, чтобы избежать эффекта. На перевёртышей и существ с 0 ПЗ заклинание не действует.
\nПревращение сохраняется, пока длится заклинание, или пока ПЗ цели не снизятся до 0 или пока она не умрёт. Новая форма может быть любым животным с классом опасности не выше класса опасности цели (или ее уровня, если у цели нет класса опасности). Параметры цели, в том числе значения ментальных характеристик, меняются на параметры выбранного животного. Цель сохраняет своё мировоззрение и личность.
\nЦель получает ПЗ новой формы. Вернувшись в обычную форму, цель возвращается к тем ПЗ, которые у неё были до превращения. Если она превращается обратно из-за снижения ПЗ до 0, любой избыточный урон переносится на обычную форму; если этот урон не снижает ПЗ обычной формы до 0, существо не теряет сознания.
\nДействия существа ограничены возможностями его новой формы: оно не может говорить, творить заклинания и совершать любые иные действия, требующие дара речи или рук.
\nСнаряжение цели сливается с её новой формой. Цель не может его использовать, активировать или иным образом получать от него пользу.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polnotsennyy-obraz-_-Major-Image.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polnotsennyy-obraz-_-Major-Image.json new file mode 100755 index 0000000..26a9d43 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polnotsennyy-obraz-_-Major-Image.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полноценный образ / Major Image", + "img": "icons/magic/nature/mushrooms-fire-glow-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polyot-_-Fly.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polyot-_-Fly.json new file mode 100755 index 0000000..8f46e6d --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Polyot-_-Fly.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полёт / Fly", + "img": "icons/creatures/abilities/wings-birdlike-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному существу. Цель получает скорость полёта 60 футов, пока длится заклинание. Когда заклинание прекращает действовать, цель падает, если находилась в воздухе и не смогла избежать падения.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pomoshch�-_-Aid.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pomoshch�-_-Aid.json new file mode 100755 index 0000000..432a557 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pomoshch�-_-Aid.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Помощь / Aid", + "img": "icons/magic/life/cross-area-circle-green-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 3, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ponimanie-yazykov-_-Comprehend-Languages.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ponimanie-yazykov-_-Comprehend-Languages.json new file mode 100755 index 0000000..c495454 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ponimanie-yazykov-_-Comprehend-Languages.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Понимание языков / Comprehend Languages", + "img": "icons/skills/trades/academics-book-study-runes.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, вы понимаете буквальное значение услышанных вами слов, произнесённых на любом языке. Вы также понимаете надписи на любом языке, которые видите, но для этого нужно прикоснуться к тому, на чём они написаны. На чтение одной страницы текста уходит около 1 минуты.
\nЗаклинание не расшифровывает тайные послания и символы вроде волшебного знака, которые не входят в обычный язык.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Porcha-_-Bane.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Porcha-_-Bane.json new file mode 100755 index 0000000..35c8500 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Porcha-_-Bane.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Порча / Bane", + "img": "icons/magic/death/skull-horned-white-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 3, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "cha", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poryv-vetra-_-Gust-of-wind.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poryv-vetra-_-Gust-of-wind.json new file mode 100755 index 0000000..85e0957 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poryv-vetra-_-Gust-of-wind.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Порыв ветра / Gust of wind", + "img": "icons/magic/nature/leaf-juggle-humanoid-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Порыв сильного ветра длиной 60 футов и шириной 10 футов дует от вас в выбранном вами направлении, пока длится заклинание. Каждое существо, начавшее свой ход на линии ветра, должно пройти испытание Силы. При провале его оттолкнёт на 15 футов от вас по направлению ветра. Любое существо на линии ветра должно тратить 2 фута скорости за каждый фут перемещения, если перемещается к вам.
Порыв рассеивает газы и пары, гасит свечи, факелы и прочие незащищённые источники пламени в области. Защищённое пламя, например в фонарях, он заставляет дико трепетать и с шансом [[/r 1d100]]{50%} гасит и его.
В качестве бонусного действия в любой свой ход, пока длится заклинание, вы можете поменять направление, в котором ветер дует от вас.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 60, + "width": null, + "units": "ft", + "type": "line", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poslanie-_-Sending.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poslanie-_-Sending.json new file mode 100755 index 0000000..12ebbd3 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Poslanie-_-Sending.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Послание / Sending", + "img": "icons/sundries/scrolls/scroll-writing-tan-grey.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы отправляете короткое послание (не более 25 слов) существу, с которым знакомы. Существо слышит послание в своём разуме, понимает, что оно отправлено вами, если знает вас, и может немедленно вам мысленно ответить. Заклинание позволяет существам со значением Интеллекта не менее 1 понять смысл послания.
Вы можете отправить послание на любое расстояние и даже на другие планы бытия. Однако если цель на другом плане, есть шанс [[/r 1d100]]{5%} , что послание её не достигнет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "round" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Posmertnyy-pokoy-_-Gentle-Repose.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Posmertnyy-pokoy-_-Gentle-Repose.json new file mode 100755 index 0000000..889ccf6 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Posmertnyy-pokoy-_-Gentle-Repose.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Посмертный покой / Gentle Repose", + "img": "icons/magic/light/light-candles-lit-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к трупу или другим останкам. Пока длится заклинание, цель защищена от разложения и не может стать нежитью. Заклинание также фактически продлевает время, за которое цель можно вернуть к жизни, поскольку дни, проведенные под влиянием заклинания, не учитываются для временных ограничений заклинаний, подобных @Compendium[laaru-dnd5-hw.spells.TXndfwZDERV0H0gI]{Возвращение к жизни}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "day" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pospeshnoe-otstuplenie-_-Expeditious-Retreat.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pospeshnoe-otstuplenie-_-Expeditious-Retreat.json new file mode 100755 index 0000000..6bdec79 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pospeshnoe-otstuplenie-_-Expeditious-Retreat.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поспешное отступление / Expeditious Retreat", + "img": "icons/creatures/mammals/rabbit-movement-glowing-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Это заклинание позволяет вам перемещаться с невероятной скоростью. Когда вы сотворяете это заклинание, а также в качестве бонусного действия в каждый ваш следующий ход, пока длится заклинание, вы можете совершить действие @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Potustoronniy-razryad-_-Eldritch-Blast.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Potustoronniy-razryad-_-Eldritch-Blast.json new file mode 100755 index 0000000..1ded853 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Potustoronniy-razryad-_-Eldritch-Blast.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Потусторонний разряд / Eldritch Blast", + "img": "icons/magic/lightning/bolt-strike-sparks-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Трескучий разряд энергии бьет в существо в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель получает [[/r 1d10]] урона силой.
\nЗаклинание создаёт больше разрядов, когда вы достигаете высоких уровней: два разряда на 5-м уровне, три на 11-м и четыре на 17-м. Вы можете направить разряды как в одну и ту же цель, так и в разные. Совершите по отдельному броску атаки для каждого разряда.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prikaz-_-Command.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prikaz-_-Command.json new file mode 100755 index 0000000..c2d6864 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prikaz-_-Command.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Приказ / Command", + "img": "icons/magic/control/control-influence-puppet.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы отдаете приказ из одного слова существу, которое вы видите в пределах дистанции. Цель должна успешно пройти испытание Мудрости, иначе в следующий свой ход она исполнит ваш приказ. Заклинание не действует на нежить, на тех, кто не понимает ваш язык, и в случае, если приказ наносит цели прямой вред.
Вот некоторые типичные приказы и их эффекты. Вы можете отдать другой приказ, не описанный тут. В таком случае мастер решает, как поведет себя цель. Если цель не может выполнить ваш приказ, заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го. Эти существа должны быть в пределах 20 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "round" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prinuzhdenie-_-Compulsion.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prinuzhdenie-_-Compulsion.json new file mode 100755 index 0000000..d5e714f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prinuzhdenie-_-Compulsion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Принуждение / Compulsion", + "img": "icons/magic/unholy/hands-circle-light-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Существа на ваш выбор, которых вы видите в пределах дистанции и которые слышат вас, должны пройти испытание Мудрости. Цель автоматически успешно проходит испытание, если невосприимчива к &reference[charmed]{обворожению}. При провале заклинание действует на цель. Пока длится заклинание, вы можете использовать бонусное действие в любой свой ход, чтобы назначить направление по горизонтали относительно себя. Каждая цель под влиянием заклинания должна потратить как можно больше перемещения, чтобы переместиться в указанном направлении в свой следующий ход. Перед таким перемещением цель может совершить действие. После перемещения она может повторно пройти испытание Мудрости, чтобы при успехе прекратить эффект.
\nНельзя принудить цель переместиться в явно опасное место, например в огонь или в пропасть, но она будет провоцировать внеочередные атаки, чтобы перемещаться в требуемом направлении.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Privorot-gumanoida-_-Charm-Person.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Privorot-gumanoida-_-Charm-Person.json new file mode 100755 index 0000000..e367df2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Privorot-gumanoida-_-Charm-Person.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Приворот гуманоида / Charm Person", + "img": "icons/magic/life/heart-shadow-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы пытаетесь обворожить выбранного гуманоида, которого видите в пределах дистанции. Цель должна пройти испытание Мудрости и получает преимущество к нему, если вы или ваши спутники сражаются с ней. При провале цель остаётся &reference[charmed]{обворожённой} вами, пока длится заклинание или пока вы или ваши спутники не нанесут ей какой-либо вред. Обворожённое существо считает вас дружественным. Когда заклинание прекращает действовать, существо помнит, что было обворожено вами.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го. Эти существа должны быть в пределах 30 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizrachnoe-oruzhie-_-Spiritual-weapon.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizrachnoe-oruzhie-_-Spiritual-weapon.json new file mode 100755 index 0000000..42ed958 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizrachnoe-oruzhie-_-Spiritual-weapon.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призрачное оружие / Spiritual weapon", + "img": "icons/weapons/swords/sword-winged-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте летающее призрачное оружие в пределах дистанции. Оно существует, пока длится заклинание или пока вы не сотворите его снова. Когда вы сотворяете это заклинание, вы можете совершить атаку заклинанием в ближнем бою по существу в пределах 5 футов от оружия. При попадании цель получает урон силой, равный [[/r 1d8]] + модификатор вашей заклинательной характеристики.
В качестве бонусного действия в свой ход вы можете переместить оружие на расстояние до 20 футов и повторить атаку по существу в пределах 5 футов от него
Оружие может принять любую форму на ваш выбор. Жрецы божеств, связанных с определенным оружием (к примеру, булава святого Катберта или молот Тора), придают эффекту заклинания вид этого оружия.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон увеличивается на [[/r 1d8]] за каждые два круга ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 5, + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "(floor((@item.level) / 2))d8 + @mod", + "force" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizrachnye-strazhi-_-Spirit-Guardians.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizrachnye-strazhi-_-Spirit-Guardians.json new file mode 100755 index 0000000..dba25ab --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizrachnye-strazhi-_-Spirit-Guardians.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призрачные стражи / Spirit Guardians", + "img": "icons/magic/fire/barrier-wall-flame-ring-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-famil�yara-_-Find-Familiar.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-famil�yara-_-Find-Familiar.json new file mode 100755 index 0000000..7487f7a --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-famil�yara-_-Find-Familiar.json @@ -0,0 +1,297 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв фамильяра / Find Familiar", + "img": "icons/creatures/birds/corvid-call-sound-glowing.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете фамильяра, духа, который принимает форму животного на ваш выбор; ворона, жабы (лягушки), летучей мыши, кошки, краба, крысы, ласки, морского конька, осьминога, паука, рыбы (квиппера), совы, ядовитой змеи, ястреба или ящерицы. Фамильяр появляется в незанятом пространстве в пределах дистанции и получает все параметры выбранной формы, хотя на самом деле это бестия, небожитель или фея (на ваш выбор), а не животное.
Ваш фамильяр действует независимо от вас, но всегда выполняет ваши приказы. В бою у него свой бросок инициативы и свои ходы. Фамильяр не может атаковать, но может совершать другие действия как обычно.
Когда ПЗ фамильяра снижаются до 0, он исчезает, не оставляя физического тела, и снова появляется только после того, как вы сотворите заклинание ещё раз.
Пока ваш фамильяр в пределах 100 футов от вас, вы можете общаться с ним телепатически. Кроме того, в качестве действия вы можете смотреть глазами фамильяра и слышать то, что слышит он, до начала вашего следующего хода. При этом вы получаете особые способы восприятия фамильяра, Ваше настоящее тело в это время &reference[blinded]{слепо} и &reference[deafened]{глухо}.
В качестве действия вы можете временно отпустить фамильяра. Он исчезает, переносясь в карманное измерение, и дожидается там призыва. Как вариант, вы можете отпустить его совсем. Пока он отпущен временно, вы можете в качестве действия заставить его вновь появиться в незанятом пространстве в пределах 30 футов от вас.
Нельзя иметь более одного фамильяра одновременно. Если вы сотворите это заклинание вновь, когда у вас уже есть фамильяр, вы вместо этого придаёте ему новую форму. Выберите одну из перечисленных ранее форм, и ваш фамильяр превратится в выбранное существо.
Наконец, если вы творите заклинание с дистанцией «касание», ваш фамильяр может коснуться цели, как если бы заклинание сотворил он. При этом ваш фамильяр должен находиться в пределах 100 футов от вас и использовать своё ответное действие, чтобы доставить заклинание, когда вы его сотворите. Если заклинанию требуется бросок атаки, можете использовать при броске ваш модификатор атаки.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fiend", + "celestial", + "fey" + ], + "profiles": [ + { + "count": "", + "name": "", + "_id": "prpQWTvzSiLQgNg4", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.3FRxzvpGbeS7QB3M", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "DloEuTwCvqQ4riXb", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.pxeemMWZhxGAKtOv", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "YBnIR0JPA8fxFGKj", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.8gUi9Nd8FT1nIyep", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "WT5QeE28mx8sNcGY", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.EkcnceHvM3uVi7nU", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "QvW3MjFyFf5UfJBT", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.KpZXltrckvrBYkQj", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "doh8tUhHEmjdEESs", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.t5q60qZoVZmjIljJ", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "bNYCb9t8QmzvKG11", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.AWt5rCpK4Vh1yIlu", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "0E69wV7yMxfEzOum", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.qXJ4Sn7GMWNQXYjK", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "i1JeKHtK2ZRJ3iHY", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.EjDcmob5wI6OzAC1", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "0bak8Tbq39xTaynp", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.txTKnGIkPqQbGViP", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "8QXbEeyb3GUgA3IJ", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.zdi8PIoz3wExqrqz", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "8PT5XPVQQYHSTBAZ", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.JEjVRQNe7c9zaC1w", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "QxhwGMtILAJSpIEU", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.zfm8JN4c5ovAeaSg", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "rQTe2wTP09XehHIP", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.rMJ9j4GirmFIl2c5", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "9bsEzUNQQgFhaUph", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.M57DVwbz4ckkQ57l", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-grada-snyaryadov-_-Conjure-Barrage.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-grada-snyaryadov-_-Conjure-Barrage.json new file mode 100755 index 0000000..8c19b76 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-grada-snyaryadov-_-Conjure-Barrage.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв града снярядов / Conjure Barrage", + "img": "icons/skills/ranged/daggers-thrown-salvo-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 60, + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-lesnykh-sozdaniy-_-Conjure-Woodland-Beings.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-lesnykh-sozdaniy-_-Conjure-Woodland-Beings.json new file mode 100755 index 0000000..aa231eb --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-lesnykh-sozdaniy-_-Conjure-Woodland-Beings.json @@ -0,0 +1,174 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв лесных созданий / Conjure Woodland Beings", + "img": "icons/creatures/mammals/deer-movement-leap-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете фей. Они появляются в незанятых местах, которые вы видите в пределах дистанции. Выберите один из вариантов того, что появится:
Призванное существо исчезает, когда его ПЗ снижаются до 0 или когда заклинание прекращает действовать.
Призванные существа дружественны вам и вашим спутникам. Сделайте бросок инициативы для призванных существ как для группы, которая совершает собственные ходы. Они подчиняются вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, они защищаются от враждебных существ, но других действий не совершают.
Параметры существ есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку определённого более высокого круга, то можете выбрать один из перечисленных выше вариантов, но фей появляется больше: вдвое больше для ячейки 6-го круга и втрое - для ячейки 8-го круга.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Для призыва прописаны популярные феи, других можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fey" + ], + "profiles": [ + { + "count": "4", + "name": "Гигантская рысь КО 1/2", + "_id": "K3lOlO1C2ssa39IH", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.bi4mYbUhLzVdbFue", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "2", + "name": "Дриада КО 1", + "_id": "tUy9gpZcPF1DV8xh", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.6F7QYvvi3Ogg6uKN", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "1", + "name": "Морская карга КО 2", + "_id": "qLdWATot8OxmG5du", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.xLhRNNokALdaGzNJ", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "8", + "name": "Пикси КО 1/4", + "_id": "zWzUVtb7IZolM2BT", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.TzUWGKXsuAeOje3b", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-malykh-elementaley-_-Conjure-Minor-Elementals.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-malykh-elementaley-_-Conjure-Minor-Elementals.json new file mode 100755 index 0000000..4497bb1 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-malykh-elementaley-_-Conjure-Minor-Elementals.json @@ -0,0 +1,172 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв малых элементалей / Conjure Minor Elementals", + "img": "icons/creatures/magical/spirit-mischief-fire-ice-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете элементалей. Они появляются в незанятых местах, которые вы видите в пределах дистанции. Выберите один из вариантов того, что появится:
Призванный элементаль исчезает, когда его ПЗ снижаются до 0 или когда заклинание прекращает действовать.
Призванные существа дружественны вам и вашим спутникам. Сделайте бросок инициативы для призванных существ как для группы, которая совершает собственные ходы. Они подчиняются вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, они защищаются от враждебных существ, но других действий не совершают.
Параметры существ есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку определённого более высокого круга, то можете выбрать один из перечисленных выше вариантов, но элементалей появляется больше: вдвое больше для ячейки 6-го круга и втрое — для ячейки 8-го круга.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Для призыва прописаны известные элементали, других можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [], + "profiles": [ + { + "count": "8", + "name": "Грязевой мефит КО 1/4", + "_id": "48baKl0SI0tZdyHr", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.dvpD94MbrhljIEjA", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "2", + "name": "Огненная змея КО 1", + "_id": "U2aYgSc9SHVH0qkG", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.g0Ow5A0s8utTtlkz", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "4", + "name": "Магмин КО 1/2", + "_id": "xSZwuVHQqpXxefr4", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.n7XbFBTXOdGJWosy", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "1", + "name": "Эйзер КО 2", + "_id": "CSoz9F25O7DGZMwY", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.XzO0zNuDxsmP2qXW", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-skakuna-_-Find-Steed.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-skakuna-_-Find-Steed.json new file mode 100755 index 0000000..673c221 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-skakuna-_-Find-Steed.json @@ -0,0 +1,187 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв скакуна / Find Steed", + "img": "icons/magic/control/buff-luck-fortune-gold.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете духа, который принимает форму необычайно разумного, сильного и верного волшебного скакуна, связанного с вами сильными узами. Скакун появляется в незанятом пространстве в пределах дистанции и принимает форму на ваш выбор — @UUID[Compendium.laaru-dnd5-hw.monsters.fRYieFHWaVQJctGW]{боевой лошади}, @UUID[Compendium.laaru-dnd5-hw.monsters.OWaAUtjQFOD0GSsB]{верблюда}, @UUID[Compendium.laaru-dnd5-hw.monsters.dy0EsZ9AjDclnobu]{лося}, @UUID[Compendium.laaru-dnd5-hw.monsters.xGuwh46ubTwb66oI]{мастифа} или @UUID[Compendium.laaru-dnd5-hw.monsters.UgPzf6AScVoYZxni]{пони} (с разрешения мастера можете использовать и других животных). Скакун получает параметры выбранной формы, хотя на самом деле это бестия, небожитель или фея (на ваш выбор), а не животное. Кроме того, если у вашего скакуна Интеллект 5 или ниже, его Интеллект становится равным 6 и он получает способность понимать один язык, на котором вы говорите, на ваш выбор.
Вы можете ездить верхом на волшебном скакуне как в бою, так и вне его. Он связан с вами инстинктивными узами, которые позволяют вам действовать как единое целое. Пока вы верхом на своём скакуне, можете сделать так, чтобы любое сотворяемое вами заклинание, которое нацелено только на вас, также было нацелено на вашего скакуна.
Когда ПЗ скакуна снижаются до 0, он исчезает, не оставляя физического тела. В качестве действия вы также можете отпустить скакуна, после чего он исчезает. В обоих случаях, если вы сотворите заклинание повторно, появится тот же скакун, полностью восстановивший ПЗ.
Пока ваш скакун в пределах 1 мили от вас, вы можете общаться друг с другом телепатически.
С помощью этого заклинания нельзя получить больше одного волшебного скакуна одновременно. В качестве действия вы можете освободить скакуна от уз в любой момент, после чего он исчезнет.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fiend", + "celestial", + "fey" + ], + "profiles": [ + { + "count": "", + "name": "", + "_id": "Jv2WQ6wyVcksQuCp", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.fRYieFHWaVQJctGW", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "VWxXLu6szQRfdhSg", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.OWaAUtjQFOD0GSsB", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "oqiNOi4g3rJQCpQ0", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.dy0EsZ9AjDclnobu", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "41YJbWkhUdrPsW3w", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.xGuwh46ubTwb66oI", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "hzbOpM0ZwWl8sluV", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.UgPzf6AScVoYZxni", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-zhivotnykh-_-Conjure-Animals.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-zhivotnykh-_-Conjure-Animals.json new file mode 100755 index 0000000..d1e1fbc --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Prizyv-zhivotnykh-_-Conjure-Animals.json @@ -0,0 +1,174 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв животных / Conjure Animals", + "img": "icons/creatures/abilities/cougar-pounce-stalk-black.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете духов фей в форме животных. Они появляются в незанятых местах, которые вы видите в пределах дистанции. Выберите один из вариантов того, что появится:
Эти животные также считаются феями. Они исчезают, когда их ПЗ снижаются до 0 или когда заклинание прекращает действовать
Призванные существа дружественны вам и вашим спутникам. Сделайте бросок инициативы для призванных существ как для группы, которая совершает собственные ходы. Они подчиняются вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, они защищаются от враждебных существ, но других действий не совершают.
Параметры существ есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку определённого более высокого круга, то можете выбрать один из перечисленных выше вариантов, но животных появляется больше: вдвое больше для ячейки 5-го круга, втрое — для ячейки 7-го круга и вчетверо — для ячейки 9-го круга.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Для призыва прописаны популярные животные, других можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fey" + ], + "profiles": [ + { + "count": "", + "name": "Белый медведь КО 2", + "_id": "ZPsyG9ZVmvYkWnsB", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.bjM30XQmz3jyEIoj", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "8", + "name": "Волк КО 1/4", + "_id": "BVgSNW9U2BntIzam", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.reTxudLmL6ldE6xE", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "2", + "name": "Лев КО 1", + "_id": "pj8KuMEFe8DzAFdb", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.hupgn3z52DGFIVib", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "4", + "name": "Чёрный медведь КО1/2", + "_id": "sb6jQ89Idv7BYyXS", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.r6qkvNIITLgr6mb8", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Proklyatie-_-Bestow-Curse.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Proklyatie-_-Bestow-Curse.json new file mode 100755 index 0000000..325209b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Proklyatie-_-Bestow-Curse.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Проклятие / Bestow Curse", + "img": "icons/magic/death/projectile-skull-fire-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь существу, и оно должно пройти испытание Мудрости. При провале оно будет проклято, пока длится заклинание. Когда вы творите заклинание, выберите проклятие из этих вариантов:
Заклинание @Compendium[laaru-dnd5-hw.spells.Y5EfiRqmCWKJ7Qhk]{Снятие проклятия} прекращает этот эффект. По решению мастера вы можете выбрать другой вариант проклятия, но он не должен быть мощнее описанных выше. Окончательное решение по действию проклятия остается за мастером.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, его длительность — концентрация, до 10 минут. Если использовать ячейку 5-го круга или выше, длительность — 8 часов. Если использовать ячейку 7-го круга или выше, длительность — 24 часа. Если использовать ячейку 9-го круга, заклинание действует, пока не рассеяно. При сотворении с использованием ячейки 5-го круга или выше заклинание не требует концентрации.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Proritsanie-_-Divination.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Proritsanie-_-Divination.json new file mode 100755 index 0000000..34493d7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Proritsanie-_-Divination.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Прорицание / Divination", + "img": "icons/commodities/treasure/gem-framed-spiral-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Ваша магия и жертвоприношение позволяют вам связаться с божеством или его слугами. Вы можете задать один вопрос, связанный с конкретной целью, событиями или деятельностью, которые случатся в ближайшие 7 дней. Мастер даст правдивый ответ. Этот ответ может быть короткой фразой, загадочным стихотворением или таинственным пророчеством.
Заклинание не учитывает возможные обстоятельства, способные изменить ход событий, к примеру сотворение новых заклинаний, потери или прибавления в группе. Если вы сотворите это заклинание два или более раза, прежде чем завершите долгий отдых, появляется накапливающийся шанс [[/r 1d100]]{25%} (за каждое сотворение после первого), что будет получено случайное толкование. Мастер делает этот бросок тайно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pryzhok-_-Jump.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pryzhok-_-Jump.json new file mode 100755 index 0000000..12a7b4c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pryzhok-_-Jump.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Прыжок / Jump", + "img": "icons/creatures/amphibians/bullfrog-glass-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, и расстояние его @Compendium[laaru-dnd5-hw.actions.Q9DJAJq4OyeHsMj6]{прыжков} увеличивается втрое, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Purga-_-Sleet-Storm.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Purga-_-Sleet-Storm.json new file mode 100755 index 0000000..e407628 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Purga-_-Sleet-Storm.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пурга / Sleet Storm", + "img": "icons/magic/water/projectile-icecicles-salvo.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, ледяной дождь и град идут в цилиндре высотой 20 футов и радиусом 40 футов с центром в выбранной вами точке в пределах дистанции. Видимость в области крайне затруднена, а открытый огонь гаснет.
Землю в области покрывает гололёд, превращая ее в &reference[difficultterrain]{пересечённую местность}, Когда существо впервые за ход входит в область заклинания или начинает в ней свой ход, оно должно пройти испытание Ловкости. При провале оно &reference[prone]{распластывается}.
Если существо начинает свой ход в области действия и концентрируется при этом на заклинании, оно должно пройти испытание Выносливости (СЛ равна СЛ испытаний против ваших заклинаний), при провале оно теряет концентрацию.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 40, + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pylayushchaya-sfera-_-Flaming-Sphere.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pylayushchaya-sfera-_-Flaming-Sphere.json new file mode 100755 index 0000000..cde031e --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pylayushchaya-sfera-_-Flaming-Sphere.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пылающая сфера / Flaming Sphere", + "img": "icons/magic/earth/orb-lava-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 3, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pylayushchie-ruki-_-Burning-Hands.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pylayushchie-ruki-_-Burning-Hands.json new file mode 100755 index 0000000..e77c771 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Pylayushchie-ruki-_-Burning-Hands.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пылающие руки / Burning Hands", + "img": "icons/magic/fire/flame-burning-fist-strike.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Raskalyonnyy-metall-_-Heat-metal.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Raskalyonnyy-metall-_-Heat-metal.json new file mode 100755 index 0000000..91bc7a7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Raskalyonnyy-metall-_-Heat-metal.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Раскалённый металл / Heat metal", + "img": "icons/weapons/axes/axe-double-short-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите рукотворный металлический предмет, который видите в пределах дистанции, например оружие, тяжёлую или среднюю металлическую броню. Вы заставляете этот предмет раскалиться докрасна. Любое существо, физически контактирующее с предметом, получает [[/r 2d8]] урона огнём в момент сотворения. Пока длится заклинание, вы можете использовать бонусное действие в каждый свой следующий ход, чтобы снова нанести этот урон.
Если существо держит предмет или носит его и получает от него урон, оно должно пройти испытание Выносливости, при провале оно роняет предмет, если может. Если оно не может его уронить, оно получает помеху к броскам атак и проверкам характеристик до начала вашего следующего хода.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rasplyvchatost�-_-Blur.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rasplyvchatost�-_-Blur.json new file mode 100755 index 0000000..960188f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rasplyvchatost�-_-Blur.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Расплывчатость / Blur", + "img": "icons/skills/wounds/injury-body-pain-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Для всех, кто видит, ваше тело кажется размытым, мелькающим и колеблющимся. Пока длится заклинание, у всех существ есть помеха к броскам атаки против вас. Атакующий невосприимчив к этому эффекту, если он не полагается на зрение (как при &reference[blindsight]{слепозрении}) или способен видеть сквозь иллюзии (&reference[truesight]{истинное зрение}).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rasseivanie-magii-_-Dispel-Magic.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rasseivanie-magii-_-Dispel-Magic.json new file mode 100755 index 0000000..db606a0 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rasseivanie-magii-_-Dispel-Magic.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рассеивание магии / Dispel Magic", + "img": "icons/magic/nature/plant-sprout-hand-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razbivayushchiy-zvuk-_-Shatter.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razbivayushchiy-zvuk-_-Shatter.json new file mode 100755 index 0000000..da620fb --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razbivayushchiy-zvuk-_-Shatter.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разбивающий звук / Shatter", + "img": "icons/magic/earth/explosion-lava-stone-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "thunder" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-myortvymi-_-Speak-with-Dead.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-myortvymi-_-Speak-with-Dead.json new file mode 100755 index 0000000..1c266e8 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-myortvymi-_-Speak-with-Dead.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разговор с мёртвыми / Speak with Dead", + "img": "icons/magic/death/undead-ghost-scream-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы придаёте подобие жизни и разума выбранному вами трупу в пределах дистанции, позволяя ему ответить на ваши вопросы. У трупа должен сохраниться рот, и он не должен быть нежитью, заклинание не сработает, если труп был целью того же заклинания за последние 10 дней.
\nПока длится заклинание, вы можете задать трупу не более пяти вопросов. Труп знает только то, что знал при жизни, в том числе языки. Ответы обычно бывают короткими, загадочными и повторяющимися. Труп не обязан давать вам правдивый ответ, если был вашим врагом при жизни или узнал в вас врага. Заклинание не возвращает душу существа в тело, а только оживляет его. Поэтому труп не может узнать новые сведения, понятия не имеет о том, что случилось после его смерти, и не может строить предположения о будущих событиях.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-rasteniyami-_-Speak-with-Plants.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-rasteniyami-_-Speak-with-Plants.json new file mode 100755 index 0000000..93ee0c4 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-rasteniyami-_-Speak-with-Plants.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разговор с растениями / Speak with Plants", + "img": "icons/magic/nature/tree-animated-smile.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы наделяете растения в пределах 30 футов от вас ограниченным разумом и способностью двигаться, позволяя им общаться с вами и выполнять ваши простые приказы. Вы можете расспросить растения о событиях, случившихся в области заклинания за последний день, получить сведения о существах, которые проходили тут, о погоде и прочих обстоятельствах.
Вы можете также превратить местность, ставшую &reference[difficultterrain]{пересечённой} из-за растений (вроде густых кустов и подлеска), в обычную, пока длится заклинание. Также вы можете превратить обычную местность с растениями в &reference[difficultterrain]{пересечённую}, пока длится заклинание (к примеру, лианы и ветви будут задерживать погоню за вами).
С разрешения мастера растения могут совершать и другие действия для вас. Заклинание не позволяет растениям вынимать корни из земли и перемещаться, но они могут свободно двигать ветвями, побегами и стеблями.
Если в области находится растение-существо, можете общаться с ним, как будто знаете общий язык, но магически повлиять на него не можете. С помощью этого заклинания можно заставить растения, созданные заклинанием @Compendium[laaru-dnd5-hw.spells.dG8ddfpg5fOIkJ4h]{Опутывание}, отпустить &reference[restrained]{обездвиженное} существо.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-zhivotnymi-_-Speak-with-Animals.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-zhivotnymi-_-Speak-with-Animals.json new file mode 100755 index 0000000..d371f07 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Razgovor-s-zhivotnymi-_-Speak-with-Animals.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разговор с животными / Speak with Animals", + "img": "icons/creatures/mammals/deer-antlers-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rost-rasteniy-_-Plant-Growth.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rost-rasteniy-_-Plant-Growth.json new file mode 100755 index 0000000..4ed54b8 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Rost-rasteniy-_-Plant-Growth.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рост растений / Plant Growth", + "img": "icons/magic/nature/plant-sproud-hands-dirt-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание наполняет жизненной силой растения в пределах определённой области. Есть два способа использовать это заклинание, которые дают либо немедленную, либо долгосрочную пользу.
\nЕсли вы творите это заклинание, используя 1 действие, выберите точку в пределах дистанции. Все обычные растения в радиусе 100 футов вокруг этой точки становятся высокими и толстыми. Существо, проходящее через эту область, вынуждено тратить по 4 фута скорости за каждый 1 фут перемещения
\nВы можете исключить из эффекта одну или несколько областей любого размера в пределах области заклинания.
\nЕсли вы творите это заклинание 8 часов, вы насыщаете землю. Все растения в радиусе полумили вокруг точки в пределах дистанции становятся насыщены на 1 год. Такие растения дают вдвое больше пищи при сборе урожая.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 100, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ruki-Khadara-_-Arms-of-Hadar.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ruki-Khadara-_-Arms-of-Hadar.json new file mode 100755 index 0000000..e26db50 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ruki-Khadara-_-Arms-of-Hadar.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Руки Хадара / Arms of Hadar", + "img": "icons/magic/unholy/hand-claw-fire-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете мощь Хадара, Тёмного Голода. Языки тёмной энергии вырываются из вас и обрушиваются на всех существ в пределах 10 футов от вас. Каждое существо в этой области должно пройти испытание Силы. При провале цель получает [[/r 2d6]] некротического урона и не может совершать ответные действия до своего следующего хода. При успехе существо получает половину этого урона без иных эффектов.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "necrotic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sglaz-_-Hex.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sglaz-_-Hex.json new file mode 100755 index 0000000..2f67566 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sglaz-_-Hex.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сглаз / Hex", + "img": "icons/magic/control/voodoo-doll-pain-damage-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы проклинаете существо, которое видите в пределах дистанции. Пока длится заклинание, вы наносите цели дополнительно [[/r 1d6]] некротического урона каждый раз, когда попадаете по ней атакой. Также выберите одну характеристику при сотворении заклинания, цель будет проходить проверки этой характеристики с помехой.
Если ПЗ цели снижаются до 0, прежде чем заклинание прекращает действовать, вы можете использовать бонусное действие в один из следующих ходов, чтобы проклясть новое существо
Заклинание @Compendium[laaru-dnd5-hw.spells.Y5EfiRqmCWKJ7Qhk]{Снятие проклятия}, сотворённое на цель, досрочно прекращает это заклинание.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го или 4-го круга, то можете сохранять свою концентрацию на заклинании до 8 часов. Если использовать ячейку 5-го круга или выше, вы можете сохранять свою концентрацию на заклинании до 24 часов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shchit-_-Shield.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shchit-_-Shield.json new file mode 100755 index 0000000..834e91b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shchit-_-Shield.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Щит / Shield", + "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Появляется незримый барьер магической силы, который защищает вас. До начала вашего следующего хода у вас бонус +5 к КБ, в том числе против атаки, вызвавшей это @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{ответное действие}, и вы не получаете урона от заклинаний @Compendium[laaru-dnd5-hw.spells.FgeTrsMqHnbTEIPl]{Волшебная стрела}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "когда по вам попали атакой или выбрали вас целью волшебной стрелы" + }, + "duration": { + "value": 1, + "units": "round" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shchit-very-_-Shield-of-faith.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shchit-very-_-Shield-of-faith.json new file mode 100755 index 0000000..bd74485 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shchit-very-_-Shield-of-faith.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Щит веры / Shield of faith", + "img": "icons/magic/holy/barrier-shield-winged-cross.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Мерцающее поле окутывает выбранное вами существо в пределах дистанции и даёт ему бонус +2 к КБ, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shilleyla-_-Shillelagh.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shilleyla-_-Shillelagh.json new file mode 100755 index 0000000..8d10a43 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shilleyla-_-Shillelagh.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Шиллейла / Shillelagh", + "img": "icons/skills/melee/hand-grip-staff-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Земля в радиусе 20 футов вокруг точки в пределах дистанции изгибается, испуская твёрдые шипы и колючки. Область становится &reference[difficultterrain]{пересечённой местностью}, пока длится заклинание. Когда существо входит в область или перемещается внутри нее, оно получает [[/r 2d4]] колющего урона за каждые 5 футов перемещения.
Изменение поверхности замаскировано и на вид кажется естественным. Любое существо, которое не видело область во время сотворения заклинания, должно пройти проверку Мудрости (Внимание), чтобы понять, что область опасна, прежде чем туда входить. СЛ равна СЛ испытаний против ваших заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d4", + "piercing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shokovoe-prikosnovenie-_-Shocking-grasp.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shokovoe-prikosnovenie-_-Shocking-grasp.json new file mode 100755 index 0000000..472be51 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Shokovoe-prikosnovenie-_-Shocking-grasp.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Шоковое прикосновение / Shocking grasp", + "img": "icons/magic/unholy/hand-fire-skeleton-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Молния срывается с ладони в существо, которого вы касаетесь. Совершите по цели атаку заклинанием в ближнем бою. У вас преимущество к броску атаки, если цель носит металлическую броню. При попадании цель получает [[/r 1d8]] урона молнией и не может совершать ответные действия до начала своего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го [[/r 2d8]], 11-го [[/r 3d8]] и 17-го уровня [[/r 4d8]].
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы устанавливаете сигнализацию на случай незваных гостей. Выберите дверь, окно или область в пределах дистанции, объемом не больше чем 20-футовый куб. Пока длится заклинание, сигнализация предупреждает вас о появлении существ размером не менее маленького в охраняемой области. Когда вы сотворяете заклинание, можете выбрать существ, которые не будут вызывать срабатывание сигнализации. Вы можете также выбрать, будет ли тревога поднята мысленно или звуком.
\nМысленный сигнал тревоги может предупредить вас звоном в голове, если вы в пределах 1 мили от охраняемой области. Он разбудит вас, если вы спите.
\nЗвуковой сигнал тревоги издает звук колокольчика в течение 10 секунд в пределах 60 футов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sila-fantazma-_-Phantasmal-Force.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sila-fantazma-_-Phantasmal-Force.json new file mode 100755 index 0000000..acb0cc6 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sila-fantazma-_-Phantasmal-Force.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сила фантазма / Phantasmal Force", + "img": "icons/creatures/slimes/slime-giant-face-eyes.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте иллюзию, и она укореняется в разуме существа, которое вы видите в пределах дистанции. Цель должна пройти испытание Интеллекта. При провале вы создаёте фантазм объекта, существа или иного видимого явления на ваш выбор размером не более 10-футового куба. Его наблюдает только цель и только пока длится заклинание. Заклинание не действует на нежить и конструкции.
Фантазм также воспроизводит звуки, температуру и прочие признаки, которые воспринимает только цель
Цель может использовать действие, чтобы изучить образ, пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. При успехе существо распознаёт иллюзию, и заклинание прекращает действовать.
Пока заклинание влияет на цель, та воспринимает фантазм как реальность. Цель находит объяснения странным результатам взаимодействия с образом. К примеру, если цель пытается пройти по иллюзорному мосту через провал, она упадёт, провалившись сквозь него. Если цель переживёт падение, она будет считать, что мост всё же реален, а упала она по другой причине — ее толкнули, она поскользнулась, сильный ветер сдул ее, и тому подобное.
Цель настолько убеждена в реальности фантазма, что может даже получать от него урон. Фантазм, созданный в виде существа, может атаковать цель. Аналогично, если фантазм выглядит как пламя, кислота или лава, он может обжечь цель. Каждый раунд в ваш ход фантазм может нанести цели [[/r 1d6]] психического урона, если она в области фантазма или в пределах 5 футов от него и если иллюзия выглядит как существо или опасность, которые наносят урон. Цель считает, что получила урон того типа, который соответствует иллюзии.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "psychic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "int", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Silovaya-sfera-Otilyuka-_-Otiluke's-Resilient-Sphere.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Silovaya-sfera-Otilyuka-_-Otiluke's-Resilient-Sphere.json new file mode 100755 index 0000000..68a10a6 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Silovaya-sfera-Otilyuka-_-Otiluke's-Resilient-Sphere.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Силовая сфера Отилюка / Otiluke's Resilient Sphere", + "img": "icons/magic/control/debuff-chains-orb-movement-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Мерцающая силовая сфера окружает существо или объект крупного размера или меньше в пределах дистанции. Несогласное существо должно пройти испытание Ловкости. При провале существо останется в плену сферы, пока длится заклинание.
Ничто — ни физические объекты, ни энергия, ни заклинания и их эффекты — не может пройти сквозь этот барьер ни внутрь, ни наружу. Впрочем, существо может свободно дышать внутри барьера. Сфера невосприимчива ко всему урону. Существо или объект внутри сферы нельзя поразить атаками или эффектами извне, а само оно не может нанести урон кому-либо снаружи.
Сфера невесома и имеет точно такой размер, чтобы внутри поместилось существо или объект. Запертое в сфере существо может использовать действие, чтобы надавить на стены сферы и катить её с половиной своей скорости или менее. Аналогично сферу могут поднимать или перемещать снаружи другие существа
Заклинание @Compendium[laaru-dnd5-hw.spells.KMGALOtvIkVjYggc]{Дезинтеграция}, сотворённое на сферу, уничтожает ее, не нанося вреда тому, кто внутри.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Skorokhod-_-Longstrider.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Skorokhod-_-Longstrider.json new file mode 100755 index 0000000..27ab979 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Skorokhod-_-Longstrider.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Скороход / Longstrider", + "img": "icons/equipment/feet/boots-leather-laced-brown.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, и его скорость увеличивается на 10 футов, пока длится заклинание.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Slepota_Glukhota-_-Blindness_Deafness.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Slepota_Glukhota-_-Blindness_Deafness.json new file mode 100755 index 0000000..8d11117 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Slepota_Glukhota-_-Blindness_Deafness.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слепота/Глухота / Blindness/Deafness", + "img": "icons/skills/wounds/injury-eyes-blood-red-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы можете ослепить или оглушить врага. Выберите одно существо, которое видите в пределах дистанции. Оно должно пройти испытание Выносливости. При провале цель &reference[blinded]{слепнет} или &reference[deafened]{глохнет} (на ваш выбор), пока длится заклинание. В конце каждого своего хода цель может повторно пройти испытание Выносливости. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Slepyashchaya-kara-_-Blinding-Smite.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Slepyashchaya-kara-_-Blinding-Smite.json new file mode 100755 index 0000000..3f06297 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Slepyashchaya-kara-_-Blinding-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слепящая кара / Blinding Smite", + "img": "icons/skills/wounds/injury-eyes-blood-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваше оружие загорается ярким светом и атака дополнительно наносит цели [[/r 3d8]] лучистого урона. Кроме того, цель должна пройти испытание Выносливости, при провале она &reference[blinded]{ослеплена}, пока длится заклинание.
Существо, ослеплённое этим заклинанием, может проходить испытание Выносливости в конце каждого своего хода. При успехе оно перестаёт быть ослеплённым.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sliyanie-s-kamnem-_-Meld-into-Stone.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sliyanie-s-kamnem-_-Meld-into-Stone.json new file mode 100755 index 0000000..ac12534 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sliyanie-s-kamnem-_-Meld-into-Stone.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слияние с камнем / Meld into Stone", + "img": "icons/magic/earth/lava-stone-fire-eye.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы входите в каменный объект или поверхность, достаточно большую, чтобы вместить ваше тело целиком, и погружаете себя и всё свое снаряжение в камень, пока длится заклинание. Используя перемещение, вы входите в камень в любой точке, которой можете коснуться. Ничто не выдаёт вашего присутствия, вас нельзя заметить немагическими способами.
На время слияния с камнем вы не можете видеть, что происходит снаружи, а проверки Мудрости (Внимание), чтобы услышать, что происходит снаружи, вы совершаете с помехой. Вы продолжаете чувствовать ход времени и можете творить заклинания на себя, находясь в камне. Вы можете использовать перемещение, чтобы покинуть камень в том же месте, где вошли, после чего заклинание прекращает действовать. Помимо этого, вы не можете перемещаться.
Незначительный физический урон, нанесённый камню, вам не вредит, но частичное разрушение или смена формы камня (до такой степени, что вы хотя бы частично оказываетесь за его пределами) изгоняют вас из камня и наносят вам [[/r 6d6]] дробящего урона. Полное разрушение камня или превращение его в иной материал изгоняет вас из него и наносит 50 дробящего урона. Если вас изгнали из камня, вы &reference[prone]{распластываетесь} в незанятом пространстве, ближайшем к тому месту, где в него вошли.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d6", + "bludgeoning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Smradnoe-oblako-_-Stinking-Cloud.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Smradnoe-oblako-_-Stinking-Cloud.json new file mode 100755 index 0000000..866ed38 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Smradnoe-oblako-_-Stinking-Cloud.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Смрадное облако / Stinking Cloud", + "img": "icons/magic/air/fog-gas-smoke-swirling-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте сферу тошнотворного жёлтого газа радиусом 20 футов вокруг точки в пределах дистанции. Облако распространяется и за углы, и в его области видимость &reference[heavilyobscured]{крайне затруднена}. Облако существует, пока длится заклинание.
Каждое существо, полностью оказавшееся в пределах облака в начале своего хода, должно пройти испытание Выносливости против яда. При провале существо тратит своё действие в этот ход на рвоту. Существа, которым не нужно дышать или невосприимчивые к яду, автоматически проходят испытание успешно.
Средний ветер (не менее 10 миль в час) может развеять облако за 4 раунда. Сильный ветер (не менее 20 миль в час) развеет его за 1 раунд.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Snyatie-proklyatiya-_-Remove-Curse.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Snyatie-proklyatiya-_-Remove-Curse.json new file mode 100755 index 0000000..23c29ed --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Snyatie-proklyatiya-_-Remove-Curse.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Снятие проклятия / Remove Curse", + "img": "icons/magic/unholy/hand-light-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Son-_-Sleep.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Son-_-Sleep.json new file mode 100755 index 0000000..a025606 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Son-_-Sleep.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сон / Sleep", + "img": "icons/magic/control/sleep-bubble-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание погружает существ в магическую дрёму.
Бросьте [[/r 5d8]]; результат укажет, на существ с каким суммарным количеством ПЗ влияет это заклинание.
Существа в пределах 20 футов от выбранной вами точки в пределах дистанции подпадают под действие заклинания в порядке возрастания их текущих П3 (игнорируя существ &reference[unconscious]{без сознания}).
Начиная с существа с наименьшими текущими П3, каждое существо, попавшее под действие заклинания, &reference[unconscious]{теряет сознание}, пока длится заклинание. Существо приходит в сознание, если получает урон или кто-то использует действие, чтобы разбудить его. Вычитайте П3 каждого существа из результата броска, прежде чем перейти к следующему существу в порядке возрастания ПЗ. Количество ПЗ существа должно быть равно или меньше остатка результата, чтобы заклинание подействовало на это существо.
На нежить и существ с невосприимчивостью к &reference[charmed]{обворожению} это заклинание не действует.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, бросьте дополнительно [[/r 2d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Soobshchenie-_-Message.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Soobshchenie-_-Message.json new file mode 100755 index 0000000..47fe0ef --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Soobshchenie-_-Message.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сообщение / Message", + "img": "icons/skills/social/diplomacy-writing-letter.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы указываете пальцем на существо в пределах дистанции и шепчете сообщение. Цель (и только цель) слышит его и может ответить шёпотом, который услышите только вы.
\nВы можете творить это заклинание сквозь твёрдые преграды, если вы знакомы с целью и точно знаете, что она за преградой. Магическая тишина, 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли блокируют заклинание. Заклинание необязательно должно идти по прямой, оно может огибать углы и проходить через отверстия.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному существу. Пока длится заклинание, цель может один раз бросить [[/r d4]] и добавить результат броска к любому испытанию. Кость можно бросить либо до, либо после испытания. Затем заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте 45 фунтов еды и 30 галлонов воды на земле или в сосудах в пределах дистанции. Этого достаточно, чтобы прокормить до пятнадцати гуманоидов или пятерых скакунов на 24 часа. Пища безвкусна, но питательна. Она портится, если её не съесть за 24 часа. Вода чиста и не портится.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sozdanie-ili-unichtozhenie-vody-_-Create-or-Destroy-Water.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sozdanie-ili-unichtozhenie-vody-_-Create-or-Destroy-Water.json new file mode 100755 index 0000000..0b7b0df --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sozdanie-ili-unichtozhenie-vody-_-Create-or-Destroy-Water.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Создание или уничтожение воды / Create or Destroy Water", + "img": "icons/consumables/potions/potion-flash-open-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте или уничтожаете воду.
Создание воды. Вы создаёте до 10 галлонов чистой воды в пределах дистанции в открытом сосуде. Как вариант, вода может пролиться дождём в 30-футовом кубе в пределах дистанции, гася открытое пламя в этой области.
Уничтожение воды. Вы уничтожаете до 10 галлонов воды в открытом сосуде в пределах дистанции. Как вариант, вы можете уничтожить туман в 30-футовом кубе в пределах дистанции.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то создаёте или уничтожаете дополнительно 10 галлонов воды либо размер куба увеличивается на 5 футов за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sozdanie-plameni-_-Produce-Flame.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sozdanie-plameni-_-Produce-Flame.json new file mode 100755 index 0000000..4047273 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Sozdanie-plameni-_-Produce-Flame.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Создание пламени / Produce Flame", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Трепещущий язычок пламени появляется у вас в ладони. Пламя остаётся там, пока длится заклинание, не нанося вреда ни вам, ни вашему снаряжению. Пламя испускает &reference[brightlight]{яркий свет} в радиусе 10 футов и &reference[dimlight]{тусклый} ещё на 10 футов. Заклинание прерывается, если вы прекратите его в качестве действия или сотворите снова.
Вы можете атаковать пламенем, но это тоже прекратит действие заклинания. Когда вы сотворяете это заклинание или в качестве действия в ваш последующий ход, вы можете метнуть пламя в существо в пределах 30 футов от вас. Совершите дистанционную атаку заклинанием. При попадании цель получает [[/r 1d8]] урона огнём.
Урон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го ([[/r 2d8]]), 11-го ([[/r 3d8]]) и 17-го уровня ([[/r 4d8]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь живого существа, у которого осталось 0 ПЗ. Существо стабилизируется. Заклинание не действует на нежить и конструкции.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь подавить сильные эмоции группы гуманоидов. Каждый гуманоид в сфере радиусом 20 футов вокруг выбранной вами точки в пределах дистанции должен пройти испытание Харизмы; существо может добровольно провалить испытание. При провале выберите один из описанных двух вариантов.
Вы можете подавить любой эффект, вызывающий &reference[charmed]{обворожение} или &reference[frightened]{испуг} цели. Подавленный эффект вернётся, когда заклинание прекратится, если его длительность не истечет за это время.
Как вариант, можете сделать цель безразличной к существам на ваш выбор, к которым цель враждебна. Безразличие прекращается, если существо атакуют, нанесут ему вред заклинанием или оно увидит, как вредят его друзьям. Когда заклинание прекращает действовать, существо снова становится враждебным, если мастер не решит иначе.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "cha", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stena-vetra-_-Wind-Wall.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stena-vetra-_-Wind-Wall.json new file mode 100755 index 0000000..c55ee33 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stena-vetra-_-Wind-Wall.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стена ветра / Wind Wall", + "img": "icons/magic/air/air-wave-gust-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Стена сильного ветра исходит из-под земли в выбранной вами точке в пределах дистанции. Стена может быть до 50 футов в длину, 15 футов в высоту и фута в толщину. Можете придать стене любую форму на ваш выбор, но она должна представлять собой один единый, цельный путь по земле. Стена существует, пока длится заклинание.
\nКогда стена появляется, каждое существо в пределах ее области должно пройти испытание Силы. При провале существо получает [[/r 3d8]] дробящего урона, при успехе - половину этого урона.
\nСильный ветер не пропускает туман, дым и прочие газы. Летающие существа и объекты небольшого или меньшего размера не могут пройти сквозь стену. Лёгкие материалы, попав в стену, взлетают вверх. Стрелы, болты и прочие обычные боеприпасы, выпущенные по целям с другой стороны стены, автоматически промахиваются (это не действует на валуны, запущенные великанами или осадными орудиями, и другие подобные снаряды). Существа в газообразной форме не могут проходить сквозь стену.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 50, + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "bludgeoning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stikhiynoe-oruzhie-_-Elemental-Weapon.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stikhiynoe-oruzhie-_-Elemental-Weapon.json new file mode 100755 index 0000000..a2af876 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stikhiynoe-oruzhie-_-Elemental-Weapon.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стихийное оружие / Elemental Weapon", + "img": "icons/weapons/swords/sword-flanged-lightning.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Немагическое оружие, которого вы коснулись, становится магическим. Выберите один тип урона: гром, кислота, молния, огонь или холод. Пока длится заклинание, оружие получает бонус +1 к броскам атаки и дополнительно наносит при попадании [[/r 1d4]] урона выбранного типа.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го или 6-го круга, бонус к броскам атаки увеличивается до +2, а дополнительный урон — до [[/r 2d4]]. Если использовать ячейку 7-го круга или выше, бонус увеличивается до +3, а дополнительный урон до [[/r 3d4]].
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Storozhevaya-pechat�-_-Glyph-of-Warding.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Storozhevaya-pechat�-_-Glyph-of-Warding.json new file mode 100755 index 0000000..52df211 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Storozhevaya-pechat�-_-Glyph-of-Warding.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сторожевая печать / Glyph of Warding", + "img": "icons/magic/symbols/rune-sigil-red-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Когда вы сотворяете это заклинание, вы чертите символ сторожевой печати, в котором заключен магический эффект, либо на поверхности (например, на стене, полу или столе), либо внутри объекта, который можно закрыть, чтобы скрыть символ (например, внутри книги, свитка или сундука с сокровищами). Символ может покрывать площадь не более 10 футов в диаметре. Если объект или поверхность переместить более чем на 10 футов от места, где вы сотворили заклинание, символ разрушится и заклинание прекратит действовать, не сработав.
Символ почти невидим — чтобы заметить его, требуется успешная проверка Интеллекта (Расследование). СЛ равна СЛ испытаний против ваших заклинаний.
Когда вы сотворяете заклинание, вы сами решаете, что заставит символ сработать. Символы, нанесённые на поверхность, как правило, активируются, если их кто-то касается, наступает на них, снимает то, что скрывало символ, приближается к символу на определённое расстояние или манипулирует объектом, на котором символ начертан. Символы, спрятанные внутри объекта, обычно активируются, если кто-то открывает этот объект, приближается к нему на определённое расстояние, видит или читает символ. Как только символ активируется, заклинание прекращается.
Вы можете доработать заклинание так, чтобы оно активировалось только при строго определённых условиях, физических характеристиках цели (вроде роста или веса), мировоззрении или виде (например, можно настроить печать против аберраций или дроу). Вы также можете задать условия для существ, позволяющие избежать активации символа, например определённый пароль.
Когда вы чертите символ, выберите один из двух вариантов.
Взрывные руны. При активации символ испускает магическую энергию в сфере радиусом 20 футов с центром на нем. Сфера распространяется и за углы. Каждое существо в области действия должно пройти испытание Ловкости. При провале существо получает [[/r 5d8]] урона громом, кислотой, молнией, огнём или холодом (на ваш выбор при создании символа), при успехе — половину этого урона.
Символ заклинания. Вы можете вложить в символ подготовленное заклинание не выше 3-го круга, сотворив его как часть создания символа. Целью заклинания должно быть одно существо или область. Вложенное заклинание не оказывает эффекта в момент сотворения. Оно срабатывает, только когда символ активируется. Если у заклинания должна быть цель, оно сработает на существо, активировавшее символ. Если заклинание воздействует на область, то символ — центр этой области. Если заклинание призывает враждебных существ, создает опасные предметы или ловушки, они появляются как можно ближе к незваному гостю и атакуют его. Если заклинание требует концентрации, оно действует свою полную длительность.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон от взрывных рун увеличивается на [[/r 1d8]] за каждый круг ячейки выше 3-го. Если вы сотворяете символ заклинания, то можете вложить любое заклинание не выше того же круга, ячейку которого вы использовали для сотворения заклинания сторожевая печать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "perm" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Strazh-very-_-Guardian-of-Faith.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Strazh-very-_-Guardian-of-Faith.json new file mode 100755 index 0000000..b629161 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Strazh-very-_-Guardian-of-Faith.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Страж веры / Guardian of Faith", + "img": "icons/creatures/magical/spirit-undead-winged-ghost.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, призрачный страж крупного &reference[size]{размера} появляется и парит в незанятом пространстве на ваш выбор, которое вы видите в пределах дистанции. Страж занимает это пространство. У него нет отличительных черт, кроме сверкающего меча и щита, на котором нанесён символ вашего божества.
\nЛюбое существо, враждебное вам, которое впервые за ход переместится в область в пределах 10 футов от стража, должно пройти испытание Ловкости. Существо получает 20 лучистого урона при провале или половину этого урона при успехе. Страж исчезает после того, как нанесёт суммарно 60 урона.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "20", + "radiant" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Strela-molniya-_-Lightning-Arrow.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Strela-molniya-_-Lightning-Arrow.json new file mode 100755 index 0000000..93857c2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Strela-molniya-_-Lightning-Arrow.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стрела-молния / Lightning Arrow", + "img": "icons/magic/lightning/strike-arrow-spear-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы совершите дистанционную атаку оружием, пока длится заклинание, боеприпас или само оружие, если оно метательное, превращается в разряд молнии. Совершите бросок атаки, как обычно. Вместо обычного урона от оружия цель получает [[/r 4d8]] урона молнией при попадании или половину этого урона при промахе. Вне зависимости от попадания или промаха каждое существо в пределах 10 футов от цели должно пройти испытание Ловкости. Каждое из этих существ получает [[/r 2d8]] урона молнией при провале или половину этого урона при успехе. Оружие или боеприпас после этого возвращаются в свою обычную форму.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон от обоих эффектов заклинания увеличивается на [[/r 1d8]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "((@item.level) + 1)[on hit]", + "lightning" + ], + [ + "((@item.level) - 1)d8[area]", + "lightning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stuk-_-Knock.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stuk-_-Knock.json new file mode 100755 index 0000000..47363f7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Stuk-_-Knock.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стук / Knock", + "img": "icons/sundries/misc/key-short-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выберите объект, который видите в пределах дистанции. Это может быть дверь, коробка, сундук, кандалы, навесной замок или любой иной предмет, который магическим или естественным образом препятствует доступу.
\nЦель, запертая обычным замком, заклинившая или закрытая на засов, становится открытой. Если на объекте несколько замков, открывается только один из них.
\nЕсли вы выберете цель, закрытую заклинанием @Compendium[laaru-dnd5-hw.spells.CuRWKGEoSXJmDPsh]{Волшебный засов}, это заклинание будет подавлено на 10 минут, во время которых цель можно свободно открывать и закрывать. При сотворении этого заклинания цель издаёт громкий стук, который слышно в пределах 300 футов.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svet-_-Light.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svet-_-Light.json new file mode 100755 index 0000000..2ab8623 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svet-_-Light.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Свет / Light", + "img": "icons/magic/light/orb-lightbulb-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к объекту размером не более 10 футов в любом измерении, Пока длится заклинание, этот объект будет испускать &reference[brightlight]{яркий свет} в радиусе 20 футов и &reference[dimlight]{тусклый свет} ещё на 20 футов. Свет может быть любого цвета на ваш выбор. Если полностью накрыть объект чем-то непрозрачным, свет блокируется. Заклинание прекращает действовать, если вы сотворите его снова или прекратите его, потратив действие.
Если цель — объект, который носит или держит враждебное существо, оно должно успешно пройти испытание Ловкости, чтобы избежать заклинания.
*Для удобства можно использовать макрос @UUID[Compendium.laaru-dnd5-hw.macro.74bKUFXbQUUvAXBG]{Свет} (игроку надо перенести его на панель быстрого доступа).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svoboda-dvizheniy-_-Freedom-of-Movement.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svoboda-dvizheniy-_-Freedom-of-Movement.json new file mode 100755 index 0000000..b5fc4c7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svoboda-dvizheniy-_-Freedom-of-Movement.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Свобода движений / Freedom of Movement", + "img": "icons/magic/control/debuff-chains-shackles-movement-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу. Пока длится заклинание, &reference[difficultterrain]{пересечённая местность} не влияет на его перемещение, а заклинания и другие магические эффекты не могут ни снизить его скорость, ни &reference[paralyzed]{парализовать} его, ни &reference[restrained]{обездвижить}.
Цель также может потратить 5 футов перемещения, чтобы автоматически освободиться из немагических пут вроде кандалов или &reference[grappled]{захвата} другого существа. Наконец, нахождение под водой не даёт штрафов к перемещению и атакам цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svyashchennoe-plamya-_-Sacred-flame.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svyashchennoe-plamya-_-Sacred-flame.json new file mode 100755 index 0000000..719e0e6 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Svyashchennoe-plamya-_-Sacred-flame.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Священное пламя / Sacred flame", + "img": "icons/magic/fire/projectile-fireball-orange-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Огненное сияние обрушивается на существо, которое вы видите в пределах дистанции. Цель должна успешно пройти испытание Ловкости, иначе получит [[/r 1d8]] лучистого урона. Укрытие не даёт бонусов цели для этого испытания.
\nУрон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го [[/r 2d8]], 11-го [[/r 3d8]] и 17-го уровня [[/r 4d8]] .
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы творите маленькое чудо, знак сверхъестественной силы. Вы можете создать один из этих магических эффектов в пределах дистанции:
\nЕсли сотворить это заклинание несколько раз, можно поддерживать до трёх 1-минутных эффектов одновременно. Любой из таких эффектов вы можете прекратить, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы прячете сундук вместе со всем его содержимым на Эфирном плане. Вам надо коснуться сундука и его модели, которые служат реагентами для заклинания. Сундук может вмещать до 12 кубических футов неживой материи (3 фута на 2 фута на 2 фута).
\nПока сундук остаётся на эфирном плане, вы можете использовать действие и коснуться его модели, чтобы вызвать сундук. Он появится в незанятом пространстве на земле в пределах 5 футов от вас. Вы можете отправить сундук обратно на Эфирный план, использовав действие и коснувшись и сундука, и его модели.
\nПо истечении 60 дней появляется накапливающийся шанс (5% в день), что заклинание прекратит действовать. Оно также прекращает действовать, если вы снова сотворите это заклинание, если модель сундука уничтожена или если вы прекратите заклинание, потратив действие. Если заклинание прекращает действовать, пока большой сундук находится на Эфирном плане, он утерян безвозвратно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ternovyy-khlyst-_-Thorn-Whip.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ternovyy-khlyst-_-Thorn-Whip.json new file mode 100755 index 0000000..2802fa9 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ternovyy-khlyst-_-Thorn-Whip.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Терновый хлыст / Thorn Whip", + "img": "icons/magic/nature/vines-thorned-glow-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте длинный хлыст, похожий на лиану, усеянную шипами. По вашему приказу он хлещет существо в пределах дистанции. Совершите атаку заклинанием в ближнем бою по цели. При попадании существо получает [[/r 1d6]] колющего урона. Если это существо крупного размера или меньше, вы притягиваете это существо к себе на 10 футов или менее.
Урон заклинания увеличивается на [[/r 1d6]], когда вы достигаете 5-го ([[/r 2d6]]), 11-го ([[/r 3d6]]) и 17-го уровня ([[/r 4d6]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, никакой звук не может возникнуть в сфере радиусом 20 футов вокруг выбранной вами точки в пределах дистанции или пройти сквозь неё. Любое существо или объект, полностью находящиеся в этой сфере, невосприимчивы к урону громом, но при этом такие существа на время становятся &reference[deafened]{глухи}. В этой области невозможно сотворить заклинание со словесным компонентом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tsepkaya-liana-_-Grasping-Vine.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tsepkaya-liana-_-Grasping-Vine.json new file mode 100755 index 0000000..f40eed7 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tsepkaya-liana-_-Grasping-Vine.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Цепкая лиана / Grasping Vine", + "img": "icons/magic/nature/root-vine-beanstolk-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете лиану, которая вырастает из-под земли в незанятом пространстве на ваш выбор, которое вы видите в пределах дистанции. Когда вы творите это заклинание, можете приказать лиане, чтобы она притянула существо в пределах 30 футов от неё, которое вы видите. Существо должно пройти испытание Ловкости, при провале оно будет притянуто на 20 футов по прямой в сторону лианы.
Пока длится заклинание, вы можете в качестве бонусного действия в ваш ход приказать лиане притянуть это же существо или другое.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tsvetnye-bryzgi-_-Color-Spray.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tsvetnye-bryzgi-_-Color-Spray.json new file mode 100755 index 0000000..313a25f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tsvetnye-bryzgi-_-Color-Spray.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Цветные брызги / Color Spray", + "img": "icons/magic/unholy/strike-beam-blood-large-red-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Ошеломляющее множество мерцающих разноцветных лучей срывается с вашей руки. Бросьте [[/r 6d10]]; результат укажет, на существ с каким суммарным количеством ПЗ влияет это заклинание. Существа в пределах 15-футового конуса, исходящего от вас, подвергаются воздействию в порядке возрастания текущих ПЗ (не считая существ &reference[unconscious]{без сознания} и существ, которые не видят).
Начиная с существа с наименьшими текущими ПЗ, каждое существо, подвергшееся влиянию заклинания, &reference[blinded]{слепнет} до конца вашего следующего хода. Вычитайте ПЗ каждого существа из результата броска, прежде чем перейти к следующему. Количество ПЗ существа должно быть равно или меньше остатка результата, чтобы заклинание подействовало на это существо.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, бросьте дополнительно [[/r 2d10]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "round" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d10", + "" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tumannyy-shag-_-Misty-step.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tumannyy-shag-_-Misty-step.json new file mode 100755 index 0000000..ce8b81f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Tumannyy-shag-_-Misty-step.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Туманный шаг / Misty step", + "img": "icons/magic/air/fog-gas-smoke-swirling-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вас ненадолго окутывает серебристый туман, и вы телепортируетесь в незанятое пространство в пределах 30 футов, которое можете видеть.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "space", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-T�ma-_-Darkness.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-T�ma-_-Darkness.json new file mode 100755 index 0000000..a681338 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-T�ma-_-Darkness.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Тьма / Darkness", + "img": "icons/magic/unholy/orb-glowing-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Из выбранной вами точки в пределах дистанции исходит магическая тьма, наполняя сферу радиусом 15 футов, пока длится заклинание. &reference[darkness]{Тьма} распространяется и за углы. Существо с &reference[darkvision]{ночным зрением} не может видеть в ней, и никакой немагический свет не может её осветить.
Если начальная точка находится на объекте, который вы держите, или на объекте, который не носят и не держат другие существа, то тьма исходит от этого предмета и перемещается вместе с ним. Если полностью накрыть источник тьмы непрозрачным предметом вроде ведра или шлема, он заблокирует тьму.
Если область действия этого заклинания накладывается на область света, созданного заклинанием 2-го круга или ниже, заклинание, создавшее свет, рассеивается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 15, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "cha", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "cha" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ubezhishche-_-Sanctuary.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ubezhishche-_-Sanctuary.json new file mode 100755 index 0000000..2caf166 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ubezhishche-_-Sanctuary.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Убежище / Sanctuary", + "img": "icons/magic/holy/barrier-shield-winged-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы защищаете существо в пределах дистанции от атак. Пока длится заклинание, любое существо, прежде чем выбрать защищённое существо целью атаки или вредоносного заклинания, должно пройти испытание Мудрости. При провале оно должно выбрать другую цель или потерять свою атаку или заклинание. Это заклинание не защищает существо от эффектов с областью действия, например от взрыва @Compendium[laaru-dnd5-hw.spells.j2cNLHZYnbKl46gZ]{огненного шара}.
Если защищённое существо совершает атаку, творит заклинание, действующее на врага, или наносит урон другому существу, это заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ubiystvennyy-fantazm-_-Phantasmal-Killer.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ubiystvennyy-fantazm-_-Phantasmal-Killer.json new file mode 100755 index 0000000..42d7f5a --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ubiystvennyy-fantazm-_-Phantasmal-Killer.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Убийственный фантазм / Phantasmal Killer", + "img": "icons/magic/death/undead-ghost-strike-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы проникаете в кошмары существа, которое видите в пределах дистанции, и создаёте иллюзорный образ его тайных страхов, который видит только сама цель. Цель должна пройти испытание Мудрости. При провале цель &reference[frightened]{испугана}, пока длится заклинание. Цель проходит испытание Мудрости в конце каждого своего хода, пока длится заклинание, и при провале получает [[/r 4d10]] психического урона. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 4-го,
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d10", + "psychic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Udar-molnii-_-Lightning-bolt.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Udar-molnii-_-Lightning-bolt.json new file mode 100755 index 0000000..da3435b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Udar-molnii-_-Lightning-bolt.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Удар молнии / Lightning bolt", + "img": "icons/magic/lightning/bolt-strike-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Удар молнии в виде линии длиной 100 футов и шириной в 5 футов исходит от вас в выбранном вами направлении. Каждое существо на линии должно пройти испытание Ловкости. При провале существо получает [[/r 8d6]] урона молнией, а при успехе — половину этого урона. Молния поджигает все горючие предметы в области действия, кроме тех, что носят или держат.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 100, + "width": null, + "units": "ft", + "type": "line", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d6", + "lightning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Upravlenie-vodoy-_-Control-Water.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Upravlenie-vodoy-_-Control-Water.json new file mode 100755 index 0000000..7b211e8 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Upravlenie-vodoy-_-Control-Water.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Управление водой / Control Water", + "img": "icons/magic/symbols/rune-sigil-horned-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы управляете любой свободной водой в выбранной вами области (куб с ребром до 100 футов). При сотворении вы можете выбрать один из перечисленных эффектов заклинания. В качестве действия в свой ход вы можете повторить тот же эффект или выбрать другой.
Водоворот. Для этого эффекта требуется водоём площадью не менее 50 на 50 футов и глубиной не менее 25 футов. Водоворот образует воронку 5 футов в ширину у основания, 50 футов в ширину наверху и 25 футов в высоту в центре области. Любое существо или объект в воде в пределах 25 футов от воронки будет притянуто на 10 футов в её сторону. Существо может отплыть от воронки, успешно пройдя проверку Силы (Атлетика). СЛ равна СЛ испытаний против ваших заклинаний.
Когда существо впервые за ход попадает в воронку или начинает в ней свой ход, оно должно пройти испытание Силы. При провале существо получает [[/r 2d8]] дробящего урона и остаётся затянутым в воронку, пока длится заклинание. При успехе существо получает половину этого урона и не затянуто в воронку. Существо, затянутое в воронку, может использовать действие, чтобы попытаться выплыть из нее, как описано выше, но у него помеха к этой проверке Силы (Атлетика).
Когда объект впервые за ход оказывается в воронке, он получает [[/r 2d8]] дробящего урона. Этот урон повторяется каждый раунд, пока он остаётся в воронке.
Перенаправление потока. Вы заставляете текущую воду в области течь в другом направлении на ваш выбор, даже если воде придется перетекать через препятствия, вверх по стенам или в других необычных направлениях. Вода в области двигается туда, куда вы её направите, но, выйдя за пределы области, она снова течёт в обычном направлении. Вода продолжает течь в указанном вами направлении, пока длится заклинание или пока вы не выберете иной эффект.
Потоп. Вы заставляете уровень всей стоячей воды в области подняться на 20 футов. Если в область входит берег, вода выплескивается на него.
Если вы выбрали область внутри большего водоёма, вместо этого вы создаёте 20-футовую волну, которая проносится с одной стороны области на другую, а затем обрушивается. Любой транспорт огромного размера или меньше на пути волны будет перенесён на другой конец области. Любой транспорт огромного размера или меньше, попавший под удар волны, переворачивается с шансом [[/r 1d100]]{25%}.
Уровень воды остаётся высоким, пока длится заклинание или пока вы не выберете иной эффект. Если эффект вызвал волну, она повторяется в начале вашего следующего хода, пока длится эффект потопа.
Разделение вод. Вы заставляете воду в области расступиться, создав проход. Он тянется через всю область действия, а расступившаяся вода образует стены по бокам. Проход остаётся, пока длится заклинание или пока вы не выберете иной эффект. После этого воды плавно заполнят проход в течение следующего раунда, пока не восстановится обычный уровень воды.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 100, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 300, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "bludgeoning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "str", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Usilenie-kharakteristiki-_-Enhance-Ability.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Usilenie-kharakteristiki-_-Enhance-Ability.json new file mode 100755 index 0000000..b28ce28 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Usilenie-kharakteristiki-_-Enhance-Ability.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Усиление характеристики / Enhance Ability", + "img": "icons/magic/control/buff-strength-muscle-damage-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Коснувшись существа, вы магически усиливаете его. Выберите один из этих эффектов; он будет воздействовать на цель, пока длится заклинание.
Бычья сила. У цели преимущество к проверкам Силы, а её грузоподъёмность удваивается.
Кошачья грация. У цели преимущество к проверкам Ловкости. Она также не получает урона при падении с 20 футов и менее, если &reference[incapacitated]{не выведена из строя}.
Лисья хитрость. У цели преимущество к проверкам Интеллекта.
Медвежья стойкость. У цели преимущество к проверкам Выносливости. Она также получает [[/r 2d6]] временных ПЗ, которые исчезают, когда заклинание прекращает действовать.
Орлиное великолепие. У цели преимущество к проверкам Харизмы.
Совиная мудрость. У цели преимущество к проверкам Мудрости.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "temphp" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uskorenie-_-Haste.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uskorenie-_-Haste.json new file mode 100755 index 0000000..06b38f9 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uskorenie-_-Haste.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ускорение / Haste", + "img": "icons/skills/movement/feet-winged-boots-brown.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите согласное существо, которое видите в пределах дистанции. Пока длится заклинание, скорость цели удваивается, она получает бонус +2 к КБ, преимущество к испытаниям Ловкости и дополнительное действие в каждый свой ход. Это действие можно использовать только для совершения действий @Compendium[laaru-dnd5-hw.actions.Y0O7jQKh7vGMSTBu]{Атака} (только одна атака оружием), @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок}, @Compendium[laaru-dnd5-hw.actions.NwKMv5Ljen62a44Y]{Отступление}, @Compendium[laaru-dnd5-hw.actions.H9TgqPZGVRUQY4GF]{Засада} или @Compendium[laaru-dnd5-hw.actions.ydiv2XUXmVXv5ENI]{Использование объекта}.
Когда заклинание прекращает действовать, цель не может ни перемещаться, ни совершать действия до конца своего следующего хода - её охватывает слабость.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uvelichenie_umen�shenie-_-Enlarge_Reduce.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uvelichenie_umen�shenie-_-Enlarge_Reduce.json new file mode 100755 index 0000000..f3b0c9b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uvelichenie_umen�shenie-_-Enlarge_Reduce.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Увеличение/уменьшение / Enlarge/Reduce", + "img": "icons/magic/control/silhouette-grow-shrink-tan.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы заставляете существо или объект, который видите в пределах дистанции, стать больше или меньше, пока длится заклинание. Выберите существо или объект, который не носят и не держат. Если цель не согласна, она может пройти испытание Выносливости. При успехе заклинание не сработает.
Если цель — существо, всё, что оно носит и держит, меняет размер вместе с ним. Любой предмет, который уронит цель, немедленно вернётся к обычному размеру.
Увеличение. Размер цели по всем измерениям удваивается, а ее вес увеличивается в восемь раз. Увеличение повышает размер цели на одну категорию — например, со среднего до крупного. Если для полного увеличения цели не хватает места, она увеличивается настолько, насколько позволяет доступное пространство. Пока длится заклинание, у цели также преимущество к проверкам и испытаниям Силы. Оружие цели также увеличивается до её нового размера. Пока оружие увеличено, атаки цели с его использованием наносят дополнительно [[/r 1d4]] урона.
Уменьшение. Размер цели по всем измерениям уменьшается вдвое, а её вес уменьшается в восемь раз. Уменьшение снижает размер цели на одну категорию - например, со среднего до небольшого. Пока длится заклинание, у цели также помеха к проверкам и испытаниям Силы. Оружие цели также уменьшается до ее нового размера. Пока оружие уменьшено, атаки цели с его использованием наносят на [[/r 1d4]] меньше урона (но не меньше 1).
*Используйте для визуализации макрос @UUID[Compendium.laaru-dnd5-hw.macro.PbsokcPJs6YZZ44T]{Изменение Размера}
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uvyadanie-_-Blight.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uvyadanie-_-Blight.json new file mode 100755 index 0000000..aac7eea --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uvyadanie-_-Blight.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Увядание / Blight", + "img": "icons/commodities/treasure/mask-bone-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Энергия некромантии омывает существо по вашему выбору, которое вы видите в пределах дистанции, и высасывает из него жизненные соки. Цель должна пройти испытание Выносливости. При провале цель получает [[/r 8d8]] некротического урона, при успехе — половину этого урона. Заклинание не действует на нежить и конструкции.
Если ваша цель — существо-растение или магическое растение, оно проходит испытание с помехой и заклинание наносит ему максимальный урон.
Если ваша цель — немагическое растение (не существо, а просто дерево или куст), оно не проходит испытание, а просто засыхает и умирает.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 4-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d8", + "necrotic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uzhas-_-Fear.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uzhas-_-Fear.json new file mode 100755 index 0000000..dbae36c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Uzhas-_-Fear.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ужас / Fear", + "img": "icons/creatures/slimes/slime-face-hollow-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы проецируете призрачный образ того, чего существо боится больше всего. Каждое существо в пределах 30-футового конуса должно пройти испытание Мудрости. При провале оно уронит то, что держит в данный момент, и будет &reference[frightened]{испугано}, пока длится заклинание.
Пока существо &reference[frightened]{испугано} этим заклинанием, оно должно в каждый свой ход совершать действие @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок} и перемещаться как можно дальше от вас безопасным путём, пока ему не станет некуда бежать. Если цель заканчивает ход в таком месте, где вы больше не будете на её линии видимости, она может пройти испытание Мудрости. При успехе заклинание прекращает на неё действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vechnyy-svet-_-Continual-Flame.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vechnyy-svet-_-Continual-Flame.json new file mode 100755 index 0000000..6a024aa --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vechnyy-svet-_-Continual-Flame.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вечный свет / Continual Flame", + "img": "icons/magic/fire/flame-burning-fence.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Свет, равный по яркости @UUID[Compendium.laaru-dnd5-hw.goods.1mDvh7GEWrbuq3jt]{факелу}, вспыхивает на предмете, которого вы коснётесь. Он выглядит как обычное пламя, но от него нет жара, и он не тратит кислород. Вечный свет можно спрятать или накрыть, но нельзя погасить.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "perm" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ved�movskoy-razryad-_-Witch-Bolt.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ved�movskoy-razryad-_-Witch-Bolt.json new file mode 100755 index 0000000..02b4845 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Ved�movskoy-razryad-_-Witch-Bolt.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ведьмовской разряд / Witch Bolt", + "img": "icons/magic/lightning/bolt-strike-sparks-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Трескучий разряд синей энергии обрушивается на существо в пределах дистанции, создавая между вами и целью постоянную дугу-молнию. Совершите дистанционную атаку заклинанием по этому существу. При попадании цель получает [[/r 1d12]] урона молнией, а в каждый ваш последующий ход, пока длится заклинание, вы можете использовать действие, чтобы автоматически нанести цели ещё [[/r 1d12]] урона молнией. Заклинание прекращает действовать, если вы потратите действие на что-либо еще. Заклинание также прекращается, если цель окажется за пределами дистанции заклинания или будет полностью укрыта от вас.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, начальный урон увеличивается на [[/r 1d12]] за каждый круг ячейки выше 1-го
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "attack": { + "bonus": "5", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12", + "lightning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vernaya-sobaka-Mordenkaynena-_-Mordenkainen's-Faithful-Hound.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vernaya-sobaka-Mordenkaynena-_-Mordenkainen's-Faithful-Hound.json new file mode 100755 index 0000000..008d0ae --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vernaya-sobaka-Mordenkaynena-_-Mordenkainen's-Faithful-Hound.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Верная собака Морденкайнена / Mordenkainen's Faithful Hound", + "img": "icons/creatures/mammals/humanoid-wolf-dog-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете призрачную сторожевую собаку в незанятом пространстве, которое видите в пределах дистанции. Она остается там, пока длится заклинание, пока вы не прекратите его действием или пока не переместитесь более чем на 100 футов от нее.
Собака &reference[invisible]{невидима } для всех существ, кроме вас, и ей нельзя навредить. Когда существо размером не меньше небольшого проходит в пределах 30 футов от собаки, не назвав пароль, который вы устанавливаете при сотворении, собака начинает громко лаять. Собака видит невидимых существ и даже Эфирный план, а иллюзии игнорирует.
В начале каждого вашего хода собака пытается укусить враждебное вам существо в пределах 5 футов от себя. Бонус атаки собаки равен вашему модификатору заклинательной характеристики + ваш бонус умения. При попадании она наносит [[/r 4d8]] колющего урона.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d8", + "piercing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vernyy-udar-_-True-Strike.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vernyy-udar-_-True-Strike.json new file mode 100755 index 0000000..b01e3a2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vernyy-udar-_-True-Strike.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Верный удар / True Strike", + "img": "icons/skills/ranged/target-bullseye-archer-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, вы видите &reference[invisible]{невидимых } существ и объекты, как если бы они были видимы, и можете видеть Эфирный план. Эфирные существа и объекты кажутся вам призрачно-полупрозрачными.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vkusnye-yagody-_-Goodberry.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vkusnye-yagody-_-Goodberry.json new file mode 100755 index 0000000..3ea784b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vkusnye-yagody-_-Goodberry.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вкусные ягоды / Goodberry", + "img": "icons/consumables/fruit/berry-dates-jujube-red.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Несколько ягод (не более 10), наполненных магией, появляются в вашей руке. Существо может использовать действие, чтобы съесть одну ягоду. Это восстановит ему 1 ПЗ, кроме того, ягода достаточно питательна, чтобы насытить существо на целый день.
\nЯгоды становятся бесполезны, если их не съесть в течение 24 часов после сотворения заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vnushenie-_-Suggestion.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vnushenie-_-Suggestion.json new file mode 100755 index 0000000..88294da --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vnushenie-_-Suggestion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Внушение / Suggestion", + "img": "icons/magic/nature/elemental-plant-humanoid.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы магически внушаете выбранному существу в пределах дистанции, которое может вас слышать и понимать, совершить определённые действия (описание которых ограничено одним-двумя предложениями). На существ с невосприимчивостью к &reference[charmed]{обворожению} заклинание не действует. Внушение должно быть сформулировано так, чтобы существу эти действия показались разумными. Если вы прикажете существу заколоться, броситься на копьё, поджечь себя или каким-то ещё образом явно нанести себе вред, заклинание сразу прекращает действовать.
Цель должна пройти испытание Мудрости. При провале она выполняет внушённые вами действия по мере своих возможностей. Выполнение может занимать всю длительность заклинания. Если внушённые действия можно совершить быстрее, заклинание прекращает действовать, как только цель совершит их.
Можно также указать условия, при которых внушение сработает в пределах длительности. К примеру, вы можете внушить рыцарю отдать своего коня первому встречному нищему. Если условия не выполняются до конца длительности, действия тоже не совершаются.
Если вы или ваши спутники наносите цели урон, заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnaya-strela-_-Magic-missile.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnaya-strela-_-Magic-missile.json new file mode 100755 index 0000000..f50c198 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnaya-strela-_-Magic-missile.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебная стрела / Magic missile", + "img": "icons/skills/ranged/arrows-flying-salvo-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте три светящихся стрелы из магической силы. Каждая стрела поражает выбранное вами существо в пределах дистанции, которое вы видите. Каждая стрела наносит цели [[/r 1d4 + 1]] урона силой. Все три стрелы поражают цели одновременно, вы можете направить их как в одно существо, так и в несколько разных.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, заклинание создаёт по дополнительной стреле за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + 1", + "force" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnoe-oruzhie-_-Magic-weapon.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnoe-oruzhie-_-Magic-weapon.json new file mode 100755 index 0000000..a95b56c --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnoe-oruzhie-_-Magic-weapon.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебное оружие / Magic weapon", + "img": "icons/weapons/clubs/club-spiked-glowing.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к немагическому оружию. Пока длится заклинание, это оружие становится магическим с бонусом +1 к броскам атаки и урона.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, бонус увеличивается до +2. Если вы используете ячейку 6-го круга или выше, бонус увеличивается до +3
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-glaz-_-Arcane-Eye.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-glaz-_-Arcane-Eye.json new file mode 100755 index 0000000..36076a1 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-glaz-_-Arcane-Eye.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный глаз / Arcane Eye", + "img": "icons/magic/perception/orb-eye-scrying.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте невидимый магический глаз в пределах дистанции.
\nОн парит в воздухе, пока длится заклинание. Мысленно вы видите все, что видит глаз. У него обычное зрение и ночное зрение в пределах 30 футов. Глаз может смотреть в любом направлении
\nВ качестве действия вы можете переместить глаз на расстояние до 30 футов в любом направлении. Нет ограничений по расстоянию, на которое глаз может удалиться от вас, но на другие планы бытия он переходить не может. Твёрдый барьер преграждает движение глаза, но тот может проходить в отверстия диаметром не менее 1 дюйма.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-rot-_-Magic-Mouth.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-rot-_-Magic-Mouth.json new file mode 100755 index 0000000..f2d6671 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-rot-_-Magic-Mouth.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный рот / Magic Mouth", + "img": "icons/magic/control/fear-fright-jackolantern-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы вкладыва послание в объект пределах дистанции. Оно будет произнесено, когда наступит определённое условие. Выберите объект, который вы видите и который не носит и не держит другое существо. Произнесите сообщение, не превышающее 25 слов (впрочем, произноситься оно может вплоть до 10 минут). Определите, при каком условии заклинание сработает и воспроизведёт ваше сообщение
\nПри наступлении этого условия на объекте появится волшебный рот и произнесёт сообщение вашим голосом с той же громкостью, с какой говорили вы. Если у избранного вами объекта есть свой рот или нечто похожее (например, у статуи), волшебный рот появляется там, как будто статуя разговаривает. Когда вы сотворяете заклинание, вы решаете, прекращается ли заклинание после воспроизведения сообщения или сохранится и будет повторять сообщение при каждом наступлении условия.
\nУсловие может быть приблизительным или конкретным, но оно должно быть основано на видимых или слышимых обстоятельствах в пределах 30 футов от предмета. К примеру, можете велеть рту заговорить, когда любое существо подходит к нему ближе чем на 30 футов или когда зазвенит серебряный колокольчик в пределах зо футов от него.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "perm" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-zasov-_-Arcane-Lock.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-zasov-_-Arcane-Lock.json new file mode 100755 index 0000000..f1397ec --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Volshebnyy-zasov-_-Arcane-Lock.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный засов / Arcane Lock", + "img": "icons/sundries/misc/lock-open-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к закрытой двери, окну, воротам, сундуку или иному входу, и он будет заперт, пока длится заклинание. Только вы и существа, выбранные вами при сотворении, можете открывать его как обычно. Можете также задать пароль, который, если произнести его в 5 футах от объекта, подавляет заклинание на 1 минуту. В противном случае открыть его нельзя, если только не выломать его или не подавить либо не рассеять заклинание. Заклинание @Compendium[laaru-dnd5-hw.spells.PJIQYRUNqG5PODUx]{Стук} подавляет волшебный засов на 10 минут.
\nПод действием заклинания объект труднее сломать или взломать, СЛ того, чтобы его сломать или взломать его замки, увеличивается на 10.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "perm" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vozrozhdenie-_-Revivify.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vozrozhdenie-_-Revivify.json new file mode 100755 index 0000000..177c7d9 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vozrozhdenie-_-Revivify.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Возрождение / Revivify", + "img": "icons/magic/life/heart-hand-gold-green-light.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": null, + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "healing" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vsplesk-kisloty-_-Acid-Splash.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vsplesk-kisloty-_-Acid-Splash.json new file mode 100755 index 0000000..07662c4 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vsplesk-kisloty-_-Acid-Splash.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Всплеск кислоты / Acid Splash", + "img": "icons/magic/acid/projectiles-trio-salvo.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы кидаете во врага пузырь кислоты. Выберите одно существо, которое видите в пределах дистанции, или двух существ, которых видите в пределах дистанции, если они в пределах 5 футов друг от друга. Каждая цель должна успешно пройти испытание Ловкости, иначе она получит [[/r 1d6]] урона кислотой
\nУрон заклинания увеличивается на [[/r 1d6]] , когда вы достигаете 5-го ([[/r 2d6]]), 11-го ([[/r 3d6]]) и 17-го уровня ([[/r 4d6]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы или существо, которого вы коснулись, становитесь &reference[invisible]{невидимы }, пока длится заклинание. Всё снаряжение, которое цель носит или держит, также &reference[invisible]{невидимо }, пока оно у цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vyzov-molniy-_-Call-Lightning.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vyzov-molniy-_-Call-Lightning.json new file mode 100755 index 0000000..b777d96 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vyzov-molniy-_-Call-Lightning.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вызов молний / Call Lightning", + "img": "icons/magic/lightning/bolts-salvo-clouds-sky.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вокруг точки, которую вы видите прямо над вами в пределах дистанции, появляется грозовое облако в форме цилиндра 10 футов высотой и радиусом 60 футов. Заклинание не сработает, если вы не видите точки, где может появиться облако (к примеру, если вы в комнате, где оно не поместится).
\nКогда вы творите это заклинание, выберите точку, которую видите, находящуюся под облаком. Молния обрушивается из облака в эту точку. Каждое существо в пределах 5 футов от точки должно пройти испытание Ловкости. При провале существо получает [[/r 3d10]] урона молнией, при успехе — половину этого урона. В каждый ваш ход, пока длится заклинание, вы можете использовать действие, чтобы таким образом вызвать молнию в ту же точку или в другую.
\nЕсли вы творите это заклинание под открытым небом в бурю, оно даёт вам власть над уже существующей грозой, а не создаёт новую. В таких условиях урон заклинания увеличивается на [[/r 1d10]].
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 60, + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d10", + "lightning" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vyzov-na-duel�-_-Compelled-Duel.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vyzov-na-duel�-_-Compelled-Duel.json new file mode 100755 index 0000000..6846b95 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Vyzov-na-duel�-_-Compelled-Duel.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вызов на дуэль / Compelled Duel", + "img": "icons/skills/melee/strike-stake-gray.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь заставить существо принять ваш вызов на дуэль. Одно существо, которое вы видите в пределах дистанции, должно пройти испытание Мудрости. При провале божественная воля направляет это существо к вам. Пока длится заклинание, у него помеха к броскам атаки по всем существам, кроме вас, и всякий раз, когда оно пытается переместиться в пространство за пределами 30 футов от вас, оно должно проходить испытание Мудрости; при успехе этого испытания заклинание не ограничивает перемещение существа в этот ход.
Заклинание прекращает действовать, если вы атакуете любое другое существо, сотворяете заклинание, нацеленное на другое враждебное существо, или если существо, дружественное вам, нанесёт цели урон или сотворит на неё вредоносное заклинание, или если вы закончите ход более чем в 30 футах от цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yarostnaya-kara-_-Wrathful-Smite.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yarostnaya-kara-_-Wrathful-Smite.json new file mode 100755 index 0000000..6da762f --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yarostnaya-kara-_-Wrathful-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Яростная кара / Wrathful Smite", + "img": "icons/weapons/polearms/spear-flared-silver-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваша атака дополнительно наносит [[/r 1d6]] психического урона. Кроме того, если цель — существо, оно должно пройти испытание Мудрости. При провале оно будет &reference[frightened]{испугано} вами, пока длится заклинание. Существо может в качестве действия пройти проверку Мудрости, чтобы собраться с духом и прекратить заклинание. СЛ равна СЛ испытаний против ваших заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "psychic" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yasnovidenie-_-Clairvoyance.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yasnovidenie-_-Clairvoyance.json new file mode 100755 index 0000000..7d3b14b --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yasnovidenie-_-Clairvoyance.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ясновидение / Clairvoyance", + "img": "icons/magic/perception/orb-crystal-ball-scrying.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте невидимый сенсор в пределах дистанции в знакомом вам месте (которое уже посещали или видели прежде) или незнакомом, но очевидном месте (например, за дверью, за углом, в роще деревьев). Сенсор остается на месте, пока длится заклинание, его нельзя атаковать или как-то с ним взаимодействовать.
Когда вы творите это заклинание, выберите зрение или слух. Вы получите выбранный способ восприятия через сенсор, как если бы находились на его месте. В качестве действия вы можете переключиться между зрением и слухом. Существо, способное увидеть сенсор (например, благодаря заклинанию @Compendium[laaru-dnd5-hw.spells.tVkOKnYPKNHRlHdH]{Видение невидимого} или обладающее &reference[truesight]{истинным зрением}), видит светящийся нематериальный шар размером с ваш кулак.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 1, + "long": null, + "units": "mi" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yazvitel�naya-nasmeshka-_-Vicious-Mockery.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yazvitel�naya-nasmeshka-_-Vicious-Mockery.json new file mode 100755 index 0000000..ef12150 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Yazvitel�naya-nasmeshka-_-Vicious-Mockery.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Язвительная насмешка / Vicious Mockery", + "img": "icons/creatures/magical/spirit-poison-smoke-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы обрушиваете тираду оскорблений, приправленных незаметными чарами, на существо, которое видите в пределах дистанции. Если цель может слышать вас (ей необязательно вас понимать, она должна пройти испытание Мудрости. При провале она получает [[/r 1d4]] психического урона и помеху к следующему броску атаки, который совершит до конца своего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d4]], когда вы достигаете 5-го ([[/r 2d4]]), 11-го ([[/r 3d4]]) и 17-го уровня ([[/r 4d4]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы сплетаете нить из обманчивых слов, заставляя способных слышать вас существ на ваш выбор, которых Вы видите в пределах дистанции, пройти испытание Мудрости. Любое существо, которое нельзя &reference[charmed]{обворожить}, автоматически успешно проходит испытание. Если ваши спутники сражаются с этим существом, у него есть преимущество к испытанию. При провале цель получает помеху к проверкам Мудрости (Внимание) для того, чтобы воспринимать любое существо, кроме вас, пока длится заклинание или пока цель не перестанет слышать вас. Заклинание прекращает действовать, если вы &reference[incapacitated]{выведены из строя} или не можете больше говорить.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zamedlenie-_-Slow.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zamedlenie-_-Slow.json new file mode 100755 index 0000000..5441e26 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zamedlenie-_-Slow.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Замедление / Slow", + "img": "icons/creatures/invertebrates/snail-movement-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы меняете ход времени для не более чем шести выбранных вами существ в 40-футовом кубе в пределах дистанции. Каждая цель должна пройти испытание Мудрости. При провале она попадает под влияние заклинания, пока оно длится. Скорость цели под влиянием заклинания снижается вдвое. Цель получает штраф –2 к КБ и испытаниям Ловкости и не может совершать @UUID[Compendium.laaru-dnd5-hw.actions.Item.mMwkUE20bEfKeetq]{ответные действия}. В свой ход она может использовать либо действие, либо бонусное действие, но не оба. Вне зависимости от способностей и магических предметов, существо не может совершить более одной атаки (дистанционной или ближнего боя) в свой ход. Если существо попытается сотворить заклинание, время сотворения которого составляет 1 действие, бросьте [[/r d20]]. Если выпало 11 или больше, заклинание не начнёт действовать до следующего хода существа, и существо должно потратить действие в следующий ход, чтобы завершить заклинание. Если оно не сможет этого сделать, заклинание потрачено зря.
Существо, попавшее под влияние заклинания, снова проходит испытание Мудрости в конце каждого своего хода. При успехе заклинание прекращает действовать на него.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 40, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zameshatel�stvo-_-Confusion.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zameshatel�stvo-_-Confusion.json new file mode 100755 index 0000000..a2a6c93 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zameshatel�stvo-_-Confusion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Замешательство / Confusion", + "img": "icons/creatures/amphibians/frog-confused-green-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Заклинание затуманивает разум существ, вызывая у них бред и провоцируя на неуправляемые действия. Каждое существо в пределах сферы радиусом 10 футов вокруг выбранной вами точки в пределах дистанции должно пройти испытание Мудрости, при провале оно попадает под влияние заклинания.
Под влиянием заклинания цель не может совершать ответные действия и должна бросать [[/r d10]] в начале каждого своего хода, чтобы определить, как она поведёт себя в этот ход.
| [[/r d10]] | Поведение |
|---|---|
| 1 | Цель тратит всю свою скорость на перемещение в случайном направлении. Чтобы определить направление, бросьте [[/r d8]], назначив направление для каждого значения. В этот ход существо не совершает действие. |
| 2-6 | Цель не перемещается и не совершает действий в этот ход. |
| 7-8 | Цель использует действие, чтобы совершить атаку ближнего боя по случайно выбранному существу в пределах зоны досягаемости. Если в зоне досяга емости нет существ, цель ничего не делает в этот ход |
| 9-10 | Цель перемещается и действует как обычно. |
В конце каждого своего хода цель может пройти испытание Мудрости. При успехе заклинание прекращает действовать на неё.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го круга или выше, радиус сферы увеличивается на 5 футов за каждый круг ячейки выше 4-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 10, + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-energii-_-Protection-from-Energy.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-energii-_-Protection-from-Energy.json new file mode 100755 index 0000000..8cda4cf --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-energii-_-Protection-from-Energy.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от энергии / Protection from Energy", + "img": "icons/magic/lightning/bolt-strike-explosion-yellow.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-smerti-_-Death-Ward.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-smerti-_-Death-Ward.json new file mode 100755 index 0000000..44b39e2 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-smerti-_-Death-Ward.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от смерти / Death Ward", + "img": "icons/magic/life/ankh-shadow-green.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, частично защищая его от смерти.
\nКогда ПЗ этого существа впервые упадут до 0 из-за получения урона, они вместо этого понижаются только до 1, а заклинание прекращает действовать
\nЕсли заклинание действует, когда цель подвергается эффекту, который должен убить ее мгновенно, не нанося урона, этот эффект отменяется для цели, а заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 15. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 14. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "rare", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 8, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-yada-_-Protection-from-Poison.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-yada-_-Protection-from-Poison.json new file mode 100755 index 0000000..c680766 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-yada-_-Protection-from-Poison.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от яда / Protection from Poison", + "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу. Если оно было &reference[poisoned]{отравлено}, вы нейтрализуете яд. Если оно было отравлено более чем одним ядом, вы нейтрализуете один яд из тех, о которых знаете, или один случайный.
Пока длится заклинание, у цели есть преимущество к испытаниям против яда и @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к урону ядом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-zla-i-ot-dobra-_-Protection-from-Evil-and-Good.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-zla-i-ot-dobra-_-Protection-from-Evil-and-Good.json new file mode 100755 index 0000000..116a7cd --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchita-ot-zla-i-ot-dobra-_-Protection-from-Evil-and-Good.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от зла и от добра / Protection from Evil and Good", + "img": "icons/magic/defensive/shield-barrier-deflect-gold.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, одно согласное существо, которого вы коснулись, защищено от определенных типов существ: аберраций, бестий, небожителей, нежити, фей и элементалей.
Защита дает несколько выгод. Существа этих типов получают помеху к броскам атаки по цели. Цель не может быть &reference[charmed]{обворожена}или &reference[frightened]{испугана} ими, они не могут в нее вселиться. Если цель уже обворожена или испугана подобным существом либо оно вселилось в нее, она получает преимущество к любому последующему испытанию против этого эффекта.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 10, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchitnye-uzy-_-Warding-Bond.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchitnye-uzy-_-Warding-Bond.json new file mode 100755 index 0000000..205b299 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zashchitnye-uzy-_-Warding-Bond.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защитные узы / Warding Bond", + "img": "icons/equipment/head/helm-barbute-horned-gold-pink.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это заклинание защищает согласное существо, которого вы коснулись, и создаёт между вами и целью мистическую связь, пока длится заклинание. Пока цель находится в пределах 60 футов от вас, она получает бонус +1 к КБ и испытаниям и @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} ко всему урону. Когда цель получает урон, вы получаете такой же урон.
\nЗаклинание прекращает действовать, если ваши ПЗ снижаются до 0 или если вас и цель разделяет более 60 футов. Также оно прекращает действовать, если это заклинание сотворить снова на любое из связанных существ. Вы можете прекратить заклинание, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zavorazhivayushchiy-uzor-_-Hypnotic-Pattern.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zavorazhivayushchiy-uzor-_-Hypnotic-Pattern.json new file mode 100755 index 0000000..e4400eb --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zavorazhivayushchiy-uzor-_-Hypnotic-Pattern.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Завораживающий узор / Hypnotic Pattern", + "img": "icons/magic/control/hypnosis-mesmerism-swirl.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте калейдоскопический цветной узор, который сплетается в воздухе в 30-футовом кубе в пределах дистанции. Узор появляется на миг и исчезает. Каждое существо в этой области, увидевшее узор, должно пройти испытание Мудрости. При провале существо &reference[charmed]{обворожено}, пока длится заклинание. Пока существо обворожено этим заклинанием, оно &reference[incapacitated]{выведено из строя} и его скорость равна 0.
Заклинание прекращается для существа, если оно получает любой урон или если кто-то другой использует действие, чтобы встряхнуть существо, позволяя ему выйти из ступора.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 30, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zerkal�noe-otrazhenie-_-Mirror-Image.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zerkal�noe-otrazhenie-_-Mirror-Image.json new file mode 100755 index 0000000..6f9feb4 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zerkal�noe-otrazhenie-_-Mirror-Image.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Зеркальное отражение / Mirror Image", + "img": "icons/magic/defensive/illusion-evasion-echo-purple.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Три ваших иллюзорных двойника появляются в занимаемом вами пространстве. Пока длится заклинание, двойники перемещаются вместе с вами, повторяя ваши действия и меняясь местами, так что невозможно уследить, кто из вас реален. Вы можете использовать действие, чтобы рассеять иллюзорных двойников.
Пока длится заклинание, каждый раз, когда существо выбирает вас целью атаки, бросьте [[/r d20]], чтобы определить, будет ли атака нацелена на вас или на ваших двойников.
Если у вас три двойника, то двойник станет целью атаки при результате 6 и более. Если двойников двое, надо получить 8 или более. Если двойник один 11 или более.
КБ двойника равен 10 + ваш модификатор Ловкости. Если атака попадает в двойника, он уничтожается. Двойника можно уничтожить только попавшей по нему атакой. Он невосприимчив к любому другому урону и эффектам. Заклинание прекращает действовать, когда уничтожены все три двойника.
Заклинание не действует на существо, которое не может видеть или полагается на другие способы восприятия, например обладает @UUID[Compendium.laaru-dnd5-hw.conditions.x7Ty7ddxZGFudOeO]{слепозрением}, или если оно способно распознавать иллюзии, например обладает &reference[truesight]{истинным зрением}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zhguchaya-kara-_-Searing-Smite.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zhguchaya-kara-_-Searing-Smite.json new file mode 100755 index 0000000..44f0573 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zhguchaya-kara-_-Searing-Smite.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Жгучая кара / Searing Smite", + "img": "icons/skills/melee/strike-hammer-destructive-orange.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваше оружие раскаляется добела и атака дополнительно наносит цели [[/r 1d6]] урона огнём. Цель загорается и в начале каждого своего хода, пока длится заклинание, должна проходить испытание Выносливости. При провале она получает ещё [[/r 1d6]] урона огнём. При успехе заклинание прекращается. Если цель или существо в пределах 5 футов от неё использует действие, чтобы погасить пламя, или какой-то ещё эффект погасит его (например, цель окажется под водой), заклинание прекращается.
На высоких кругах. Если сотворяете это заклинание, используя ячейку 2-го круга или выше, начальный дополнительный урон, наносимый атакой, увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": null, + "width": null, + "units": null, + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "fire" + ], + [ + "1d6", + "fire" + ] + ], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zhivotnoe-poslannik-_-Animal-Messenger.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zhivotnoe-poslannik-_-Animal-Messenger.json new file mode 100755 index 0000000..7be3d68 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zhivotnoe-poslannik-_-Animal-Messenger.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Животное-посланник / Animal Messenger", + "img": "icons/creatures/birds/dove-pigeon-flying-white.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 24, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zverinoe-chut�yo-_-Beast-Sense.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zverinoe-chut�yo-_-Beast-Sense.json new file mode 100755 index 0000000..e74146d --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-Zverinoe-chut�yo-_-Beast-Sense.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Звериное чутьё / Beast Sense", + "img": "icons/magic/fire/flame-burning-eye.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному животному. Пока длится заклинание, вы можете использовать действие, чтобы увидеть то, что видит животное, и услышать то, что оно слышит. Так будет продолжаться, пока вы не используете действие, чтобы вернуться к своему обычному восприятию. Пока вы воспринимаете мир с помощью животного, вы получаете все его особые способы восприятия, но &reference[blinded]{слепы} и &reference[deafened]{глухи} к тому, что происходит вокруг вашего тела.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�al�shivaya-smert�-_-Feign-Death.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�al�shivaya-smert�-_-Feign-Death.json new file mode 100755 index 0000000..2ab10fe --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�al�shivaya-smert�-_-Feign-Death.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фальшивая смерть / Feign Death", + "img": "icons/magic/death/grave-tombstone-glow-teal.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу и погрузите его в состояние каталепсии, неотличимое от смерти.
Пока длится заклинание или пока вы не используете действие, чтобы коснуться цели, и не прекратите заклинание, цель кажется мёртвой для стороннего наблюдателя и даже для заклинаний, определяющих её состояние. Цель &reference[blinded]{слепа} и &reference[incapacitated]{выведена из строя}, а её скорость снижается до 0. У цели @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к любому урону, кроме психического. Если цель была больна или отравлена в момент сотворения заклинания или становится больна или &reference[poisoned]{отравлена}, пока оно действует, то болезнь или яд не оказывают на неё влияния, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�antomnyy-skakun-_-Phantom-Steed.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�antomnyy-skakun-_-Phantom-Steed.json new file mode 100755 index 0000000..d2a0bb8 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�antomnyy-skakun-_-Phantom-Steed.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фантомный скакун / Phantom Steed", + "img": "icons/creatures/mammals/spirit-deer-herd-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Крупное квазиреальное существо, похожее на лошадь, появляется на земле в незанятом пространстве на ваш выбор в пределах дистанции. Вы можете сами придумать внешний вид существа. На нем есть седло и узда. Всё снаряжение, созданное заклинанием, испаряется, если окажется за пределами 10 футов от скакуна.
\nПока длится заклинание, вы или выбранное вами существо можете ездить на этом скакуне. Существо обладает параметрами скаковой лошади, но его скорость достигает 100 футов, и оно может перемещаться на 10 миль в час или 13 миль, если скачет галопом. Когда заклинание прекращает действовать, скакун медленно исчезает, давая всаднику 1 минуту на то, чтобы спешиться. Заклинание прекращает действовать, если вы прекратите его, потратив действие, или если скакун получит какой-либо урон.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 0, + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�eyskoe-siyanie-_-Faerie-fire.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�eyskoe-siyanie-_-Faerie-fire.json new file mode 100755 index 0000000..59b8a5d --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�eyskoe-siyanie-_-Faerie-fire.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фейское сияние / Faerie fire", + "img": "icons/magic/light/explosion-star-glow-silhouette.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Каждый объект внутри 20-футового куба в пределах дистанции окружает синий, зелёный или лиловый свет (на ваш выбор). Любое существо, оказавшееся во время сотворения в области действия, тоже окружает свет, если оно проваливает испытание Ловкости. Пока длится заклинание, объекты и существа под его влиянием испускают &reference[dimlight]{тусклый свет} в радиусе 10 футов.
Любой бросок атаки против подсвеченного существа или объекта имеет преимущество, если атакующий видит цель. Подсвеченное существо или объект не получает пользы от &reference[invisible]{невидимости}
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "minute" + }, + "cover": null, + "crewed": false, + "target": { + "value": 20, + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�okus-s-veryovkoy-_-Rope-Trick.json b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�okus-s-veryovkoy-_-Rope-Trick.json new file mode 100755 index 0000000..177a903 --- /dev/null +++ b/test_tube_merchant/items/horrible/scrolls/Svitok-zaklinaniya_-�okus-s-veryovkoy-_-Rope-Trick.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фокус с верёвкой / Rope Trick", + "img": "icons/tools/nautical/rope-line-blue.webp", + "system": { + "description": { + "value": "Подделка Для распознания подделки нужно пройти проверку [[/skill investigation 10]]{Интеллекта (Расследование) СЛ 10}
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь отрезка верёвки не длиннее 60 футов. Один из концов верёвки взмывает в воздух так, что верёвка повисает в воздухе на всю длину перпендикулярно земле. На верхнем конце верёвки появляется невидимый вход в межпространственный карман, который остается там, пока длится заклинание.
\nВ межпространственный карман можно попасть, взобравшись по верёвке до верха. В пространство могут уместиться не более восьми существ среднего размера или меньше. Саму верёвку можно втянуть в пространство, после чего она станет невидима снаружи.
\nАтаки и заклинания не могут проходить через вход в межпространственный карман ни наружу, ни внутрь. Однако те, кто находится в нем, могут смотреть через вход, который выглядит как просвет 3 на 5 футов вокруг верёвки. Когда заклинание прекращает действовать, все, что находилось в межпространственном кармане, выпадает наружу.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "sp" + }, + "rarity": "uncommon", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": 1, + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": 1, + "width": null, + "units": "spec", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": 1, + "per": "charges", + "recovery": "", + "prompt": true, + "autoDestroy": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "attack": { + "bonus": "", + "flat": true + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "scroll", + "subtype": "", + "label": "Свиток" + }, + "magicalBonus": null, + "properties": {}, + "prof": { + "_baseProficiency": 2, + "multiplier": 0, + "rounding": "down" + } + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/skin/kozha,-vosstanovlennaya.json b/test_tube_merchant/items/horrible/skin/kozha,-vosstanovlennaya.json new file mode 100755 index 0000000..567a31c --- /dev/null +++ b/test_tube_merchant/items/horrible/skin/kozha,-vosstanovlennaya.json @@ -0,0 +1,40 @@ +{ + "name": "Кожа, восстановленная", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/skin_bad.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/thieves/kniga,-«kak-vorovatь».json b/test_tube_merchant/items/horrible/thieves/kniga,-«kak-vorovatь».json new file mode 100755 index 0000000..d78ec07 --- /dev/null +++ b/test_tube_merchant/items/horrible/thieves/kniga,-«kak-vorovatь».json @@ -0,0 +1,40 @@ +{ + "name": "Книга, «Как воровать»", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/booklock.png", + "system": { + "description": { + "value": "Снаружи книга запечатана
внутри – пустая.
Десятифутовый шест из прочного дерева.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 7, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pole" + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/weapon/dvuruchnyj-molot-_-maul.json b/test_tube_merchant/items/horrible/weapon/dvuruchnyj-molot-_-maul.json new file mode 100755 index 0000000..3294de6 --- /dev/null +++ b/test_tube_merchant/items/horrible/weapon/dvuruchnyj-molot-_-maul.json @@ -0,0 +1,126 @@ +{ + "name": "Двуручный молот / Maul", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-double-engraved.webp", + "system": { + "description": { + "value": "Этот тяжелый двуручный молот сокрушает металл и кости с чудовищной силой.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "maul" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Maul" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/horrible/weapon/shest-_-pole.json b/test_tube_merchant/items/horrible/weapon/shest-_-pole.json new file mode 100755 index 0000000..4a2549b --- /dev/null +++ b/test_tube_merchant/items/horrible/weapon/shest-_-pole.json @@ -0,0 +1,119 @@ +{ + "name": "Шест / Pole", + "type": "weapon", + "img": "icons/commodities/wood/wood-pole.webp", + "system": { + "description": { + "value": "Десятифутовый шест из прочного дерева.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 7, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 10, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "none", + "actionType": "mwak", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d4 + 1", + "bludgeoning" + ] + ], + "versatile": "3d4 + 1" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "simpleM", + "baseItem": "club" + }, + "magicalBonus": null, + "properties": [], + "proficient": null + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/armor/instrumenty-kuzneca-_-smith's-tools.json b/test_tube_merchant/items/medium/armor/instrumenty-kuzneca-_-smith's-tools.json new file mode 100755 index 0000000..0b3476b --- /dev/null +++ b/test_tube_merchant/items/medium/armor/instrumenty-kuzneca-_-smith's-tools.json @@ -0,0 +1,91 @@ +{ + "name": "Инструменты кузнеца / Smith's Tools", + "type": "tool", + "img": "icons/tools/smithing/anvil.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Smith's Tools" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия кузнечным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nИнструменты кузнеца позволяют вам работать с металлом, нагревая его для изменения формы, восстанавливая повреждения или создавая из слитков полезные предметы.
\nКомпоненты. Инструменты кузнеца включают в себя молоты, клещи, уголь, ветошь и точильный камень.
\nИстория, Магия. Ваш опыт даёт вам дополнительные знания при обследовании металлических предметов, таких как, например, оружие.
\nРасследование. Вы можете обнаруживать зацепки, которые другие могут не заметить, когда расследование касается брони, оружия или прочих изделий металлообработки.
\nПочинка. При наличии доступа к инструментам и открытому огню, жара которого достаточно, чтобы сделать металл пластичным, вы можете восстанавливать по 10 ПЗ повреждённого металлического предмета за каждый час работы.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Заточить затупившийся клинок | \n10 | \n
| Починить комплект доспехов | \n15 | \n
| Разъединить немагический металлический предмет | \n20 | \n
Подогнанная по размеру металлическая кираса, которую надевают на кожаный поддоспешник. Руки и ноги остаются не прикрыты, но доспех отлично защищает жизненно важные органы носителя, давая ему при этом относительную свободу движения.
Пока он надет трудно проходить в двери
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 20, + "units": "lb" + }, + "price": { + "value": 400, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 14, + "dex": 2, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "medium", + "baseItem": "breastplate" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Breastplate" + }, + "test_tube_merchant": { + "quantity": "1d4 + 4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/armor/nakoval�nya.json b/test_tube_merchant/items/medium/armor/nakoval�nya.json new file mode 100755 index 0000000..de93cf2 --- /dev/null +++ b/test_tube_merchant/items/medium/armor/nakoval�nya.json @@ -0,0 +1,40 @@ +{ + "name": "Наковальня", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/Anvil.png", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 75, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/armor/plastinchatyj-dospeh-_-splint-armor.json b/test_tube_merchant/items/medium/armor/plastinchatyj-dospeh-_-splint-armor.json new file mode 100755 index 0000000..65cf2f2 --- /dev/null +++ b/test_tube_merchant/items/medium/armor/plastinchatyj-dospeh-_-splint-armor.json @@ -0,0 +1,131 @@ +{ + "name": "Пластинчатый доспех / Splint Armor", + "type": "equipment", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Splintmail-5e.webp", + "system": { + "description": { + "value": "Сделан из тонких вертикальных полос металла, приклёпанных на кожаную основу, его носят поверх плотного поддоспешника. Сочленения прикрывает гибкая кольчуга.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 60, + "units": "lb" + }, + "price": { + "value": 200, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 17, + "dex": 0, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 15, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "heavy", + "baseItem": "splint" + }, + "container": null, + "properties": [ + "stealthDisadvantage" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Splint Armor" + }, + "test_tube_merchant": { + "quantity": "1d4 + 4" + }, + "dnd5e": { + "migratedProperties": [ + "stealthDisadvantage" + ] + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/armor/shlem-s-rogami.json b/test_tube_merchant/items/medium/armor/shlem-s-rogami.json new file mode 100755 index 0000000..8bf85c5 --- /dev/null +++ b/test_tube_merchant/items/medium/armor/shlem-s-rogami.json @@ -0,0 +1,170 @@ +{ + "name": "Шлем с рогами", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/helm_with_horns.png", + "system": { + "description": { + "value": "Пока он надет трудно проходить в двери
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "properties": [], + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [ + { + "name": "Шлем с рогами", + "origin": "Item.37LW49HWVzlhMMHX", + "duration": { + "rounds": null, + "startTime": null, + "seconds": null, + "combat": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "disabled": false, + "flags": { + "dnd5e": {}, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/helm_with_horns.png", + "_id": "1fUfGiIflzTqgQk4", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.attributes.ac.bonus", + "mode": 2, + "value": "2", + "priority": 20 + } + ], + "description": "", + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1723921343923, + "modifiedTime": 1723921397658, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/bars/drozhzhi.json b/test_tube_merchant/items/medium/bars/drozhzhi.json new file mode 100755 index 0000000..bb9e1c5 --- /dev/null +++ b/test_tube_merchant/items/medium/bars/drozhzhi.json @@ -0,0 +1,41 @@ +{ + "name": "Дрожжи", + "type": "loot", + "img": "icons/consumables/food/salt-seasoning-spice-pink.webp", + "system": { + "description": { + "value": "", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.02, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/bars/instrumenty-pivovara-_-brewer's-supplies.json b/test_tube_merchant/items/medium/bars/instrumenty-pivovara-_-brewer's-supplies.json new file mode 100755 index 0000000..8002aef --- /dev/null +++ b/test_tube_merchant/items/medium/bars/instrumenty-pivovara-_-brewer's-supplies.json @@ -0,0 +1,84 @@ +{ + "name": "Инструменты пивовара / Brewer's Supplies", + "type": "tool", + "img": "icons/consumables/drinks/alcohol-beer-stein-wooden-metal-brown.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия пивоварением. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПивоварение — это искусство производства пива. Но этот процесс может использоваться не только для создания алкогольных напитков, но и для очищения воды. Создание пива требует недель для ферментации, но непосредственной работы там всего на несколько часов.
\nКомпоненты. Инструменты пивовара включают в себя большую стеклянную бутыль, немного хмеля, сифон, змеевик и несколько метров трубок.
\nИстория. Умение в обращении с инструментами пивовара даёт вам дополнительные знания при проверках Интеллекта (История), касающихся событий, важной частью которых был алкоголь.
\nМедицина. Умение в обращении с этими инструментами предоставляет дополнительные знания, когда вы облегчаете страдания от алкогольного отравления, похмелья, или, когда используете алкоголь, чтобы притупить боль.
\nУбеждение. Крепкий напиток может помочь смягчить даже каменное сердце. Ваше владение инструментами пивовара может помочь вам угостить кого-то ровно таким количеством алкоголя, сколько понадобится для того, чтобы поднять ему настроение.
\nДистилляция. Ваши знания пивоварения позволяют вам очищать воду, которая иначе была бы непригодной для питья. Частью долгого отдыха вы можете очистить до 24 литров воды или 4 литра частью короткого отдыха.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Обнаружить яд или примесь в питье | \n10 | \n
| Опознать алкоголь | \n15 | \n
| Избежать действия алкоголя | \n20 | \n
(преимущество на проверки)
Область в радиусе 7-идневного путешествия
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/books/kniga-_-book.json b/test_tube_merchant/items/medium/books/kniga-_-book.json new file mode 100755 index 0000000..0ef837d --- /dev/null +++ b/test_tube_merchant/items/medium/books/kniga-_-book.json @@ -0,0 +1,41 @@ +{ + "name": "Книга / Book", + "type": "loot", + "img": "icons/sundries/books/book-embossed-bound-brown.webp", + "system": { + "description": { + "value": "Пустая
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/books/kniga-bezvkusnaya.json b/test_tube_merchant/items/medium/books/kniga-bezvkusnaya.json new file mode 100755 index 0000000..490a7d2 --- /dev/null +++ b/test_tube_merchant/items/medium/books/kniga-bezvkusnaya.json @@ -0,0 +1,41 @@ +{ + "name": "Книга", + "type": "loot", + "img": "icons/sundries/books/book-embossed-bound-brown.webp", + "system": { + "description": { + "value": "безвкусная
«Мой полуночный тифлинг»
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/books/novostnaya-gazeta.json b/test_tube_merchant/items/medium/books/novostnaya-gazeta.json new file mode 100755 index 0000000..4b89ab4 --- /dev/null +++ b/test_tube_merchant/items/medium/books/novostnaya-gazeta.json @@ -0,0 +1,41 @@ +{ + "name": "Новостная газета", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/newspaper.png", + "system": { + "description": { + "value": "Еженедельные новости ближайшего города
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 0.3, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/books/putevoditel�-turista.json b/test_tube_merchant/items/medium/books/putevoditel�-turista.json new file mode 100755 index 0000000..3626089 --- /dev/null +++ b/test_tube_merchant/items/medium/books/putevoditel�-turista.json @@ -0,0 +1,41 @@ +{ + "name": "Путеводитель туриста", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/tourist_guid.png", + "system": { + "description": { + "value": "преимущество на проверки
Информация городе или области
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1.5, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/curse/fvtt-Item-klejmora-+1-PvHbWlbxqZB0vmc5.json b/test_tube_merchant/items/medium/curse/fvtt-Item-klejmora-+1-PvHbWlbxqZB0vmc5.json new file mode 100755 index 0000000..ebeb13c --- /dev/null +++ b/test_tube_merchant/items/medium/curse/fvtt-Item-klejmora-+1-PvHbWlbxqZB0vmc5.json @@ -0,0 +1,198 @@ +{ + "name": "Клеймора +1", + "type": "weapon", + "img": "modules/test_tube_merchant/assets/icon/items/curse/claymore.png", + "system": { + "description": { + "value": "Длинный прямой клинок, предназначенный для рассечения противников, клеймора — очень универсальное оружие, которое можно держать двумя руками для нанесения более сокрушительных ударов. Он обладает удлиненным эфесом, а по длине клинка написано слово «клеймора».
Будь то демонический дар, небесное благословение, безумный эксперимент или искусное ремесло – это оружие было созданно, чтобы быть более смертоносным.
Вы получаете бонус +1 к броскам атаки и урона этим магическим оружием.
В клинке живет кто-то, однако ничего не говорит. Любой, кто держит этот предмет, может почувствовать, что клинок доволен или разочарован действиями владельца.
Срабатывание проклятья: Если владелец не держит клинок двумя руками или отказывается называть его «Клеймора». Проклятье перестает действовать, как только владелец начинает держать клинок «правильно».
Само проклятье: Вместо того, чтобы давать бонус +1, клинок дает штраф -2 к броскам атаки и урона. Заклинание Снятие проклятья не снимает эффект, однако сам предмет можно выбросить.
Выглядит как хорошо сделанный длинный меч с позолотой на рукояти.
Им явно пользовался какой-то воитель, хотя качество меча все еще на высоте.
Магический меч плюс один также при привязке меча дает дополнительные 1д4 урона излучением в дополнение к обычному урону оружием.
проклятие. Когда владелец меча убивает нежить, исчадие или любое другое существо с мировоззрением хаотично-нейтральной или злой, он должен совершить спасбросок харизм за сложностью 15. В случае провала им оплодевает мстительный и фанатичный дух паладина.
Тот заставляет нынешнего владельца меча в течение минуты атаковать любую нежить, исчадий и хаотично-нейтральных и злых существ в радиусе 60 футов.
Если таких нет, то вы бросаетесь к ближайшему, видимому врагу и атакуете его, пока один из вас не попадет в недееспособное состояние.
550 золотых. Необычный. Забрать его из могилы паладина или выкупить рассветителя гробниц.
Шрец местной церкви может рассказать историю о могучем паладине, что защищал раньше эти земли от нежити и пал в бою с ними.
А сейчас его тело покоится в склепе вместе с его снаряжением.
Черная повязка с протектором, надеваемая на голову.
одевшие эту повязку, обязаны изясняться как устно, так и письменно, только с помощью хокку.
При этом форма хокку 5 слогов, 7 слогов, 5 слогов обязана не соблюдаться.
Повязка не имеет реальной ценности и существует в единственном экземпляре.
Получить её может персонаж игрока, который уж очень сильно отсылается к
Японии в целом или к самураям в частности.
Эти специальные инструменты включают предметы, необходимые для занятия сапожным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nНесмотря на то, что профессия сапожника может показаться искателю приключений слишком простой, пара хороших сапог будет сопровождать персонажа и в труднопроходимой глуши, и в смертельных подземельях.
\nКомпоненты. Инструменты сапожника включают в себя молоток, шило, нож, обувную колодку, ножницы, запас кожи и ниток.
\nИстория, Магия. Ваши знания об обуви помогают вам определить магические свойства зачарованных сапог или узнать историю подобных предметов.
\nРасследование. Обувь скрывает множество секретов. Вы можете узнать, где недавно был тот, чью обувь вы осматриваете на предмет грязи и поношенности. Ваш опыт в починке обуви облегчает вам определение того, как она была повреждена.
\nУход за обувью. Частью долгого отдыха, вы можете починить обувь ваших компаньонов. В течение следующих 24 часов до 6 существ по вашему выбору, носящих обувь, над которой вы поработали, могут путешествовать до 10 часов в день, не совершая испытания от истощения.
\nСоздание потайного отделения. За 8 часов работы вы можете добавить потайное отделение в пару обуви. Отделение может содержать в себе предмет до 8 сантиметров длиной и 3 сантиметров шириной и высотой. Вы совершаете проверку Интеллекта, добавляя ваш бонус умения в обращении с этими инструментами, для определения СЛ проверки Интеллекта (Расследование), необходимой для нахождения отделения.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Определить возраст и происхождение обуви | \n10 | \n
| Найти потайное отделение в каблуке | \n15 | \n
Эти специальные инструменты включают предметы, необходимые для занятия ткачеством. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПозволяют вам шить одежду и подгонять её по фигуре.
\nКомпоненты. Инструменты ткача включают в себя нитки, иголки и куски ткани. Вы умеете пользоваться ткацким станком, но подобное оборудование слишком громоздкое для транспортировки.
\nИстория. Ваш опыт даёт вам дополнительные знания при осмотре предметов гардероба, включая плащи и прочие накидки.
\nРасследование. Используя свои знания о процессе пошива одежды, при обследовании гобеленов, обивки, одежды и прочих тканых предметов, вы можете обнаруживать зацепки, которые другие могут не заметить.
\nПочинка. Частью короткого отдыха вы можете починить один повреждённый предмет одежды.
\nПошив одежды. Частью долгого отдыха вы можете создать одежду для существа при наличии достаточного количества ткани и ниток.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Повторное использование ткани | \n10 | \n
| Заштопать дырку в ткани | \n10 | \n
| Подшить наряд | \n15 | \n
Полный костюм, обычно используемый исполнителями и артистами во всевозможных развлекательных залах или для тех, кто просто отказывается выходить из образа.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/fashion/shapka,-kotelok.json b/test_tube_merchant/items/medium/fashion/shapka,-kotelok.json new file mode 100755 index 0000000..adf62a8 --- /dev/null +++ b/test_tube_merchant/items/medium/fashion/shapka,-kotelok.json @@ -0,0 +1,144 @@ +{ + "name": "Шапка, котелок", + "type": "equipment", + "img": "modules/test_tube_merchant/assets/icon/items/bowler_hat.png", + "system": { + "description": { + "value": "Скругленная шляпа с короткими полями.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "armor": { + "value": null, + "magicalBonus": null, + "dex": null + }, + "hp": { + "value": null, + "max": null, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "scene-packer": { + "hash": "01b9da45e7156807ae8b026a13241cd1e54db143", + "sourceId": "" + }, + "midiProperties": { + "confirmTargets": "default", + "autoFailFriendly": false, + "autoSaveFriendly": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "noConcentrationCheck": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "idr": false, + "idi": false, + "idv": false, + "ida": false + }, + "midi-qol": { + "rollAttackPerTarget": "default", + "itemCondition": "", + "effectCondition": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/flowers/cvety,-horoshie.json b/test_tube_merchant/items/medium/flowers/cvety,-horoshie.json new file mode 100755 index 0000000..4541988 --- /dev/null +++ b/test_tube_merchant/items/medium/flowers/cvety,-horoshie.json @@ -0,0 +1,105 @@ +{ + "name": "Цветы, хорошие", + "type": "consumable", + "img": "modules/test_tube_merchant/assets/icon/items/good_flowers.png", + "system": { + "description": { + "value": "Розы, лаванда, тюльпаны и прочее
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0.2, + "units": "lb" + }, + "price": { + "value": 4, + "denomination": "cp" + }, + "rarity": "", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "enchantment": null, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "trinket", + "subtype": "" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "folder": null, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/flowers/nabor-travnika-_-herbalism-kit.json b/test_tube_merchant/items/medium/flowers/nabor-travnika-_-herbalism-kit.json new file mode 100755 index 0000000..a860a93 --- /dev/null +++ b/test_tube_merchant/items/medium/flowers/nabor-travnika-_-herbalism-kit.json @@ -0,0 +1,84 @@ +{ + "name": "Набор травника / Herbalism Kit", + "type": "tool", + "img": "icons/tools/laboratory/mortar-powder-green.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + }, + "system": { + "description": { + "value": "Сюда входят различные инструменты вроде щипцов, ступки и пестика, а также кошельки и пузырьки, которыми пользуются травники, чтобы готовить лекарства и зелья. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с определением и использованием трав. Также это умение требуется, чтобы приготовить противоядие и зелье исцеления.
\nУмение в обращении с набором травника позволяет вам распознавать растения и безопасно собирать их полезные части.
\nКомпоненты. Набор травника включает в себя мешочки для хранения трав, секатор и кожаные перчатки для сбора растений, несколько стеклянных банок, ступку и пестик.
\nМагия. Ваша осведомлённость в природе и использовании растений может дать дополнительные знания к магическим исследованиям, когда дело касается растений и попыток опознать зелье.
\nРасследование. Когда вы обследуете заросшую растениями зону, владение этим набором помогает вам находить детали и зацепки, которые другие бы проглядели.
\nМедицина. Ваше умение в обращении с набором травника улучшает ваши способности лечить болезни и раны, расширяя доступные методы благодаря использованию лекарственных растений.
\nВыживание и Природа. Когда вы путешествуете в дикой местности, ваши навыки травничества облегчают опознание растений и поиск источников еды, которые другие могут не заметить.
\nОпознание растений. Вы можете быстро распознать большинство растений по запаху и внешнему виду.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Найти растения | \n15 | \n
| Опознать яд | \n20 | \n
Вырастет до 120 хороших цветов. Вырастают за 100 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 8, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/good_flowers.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/flowers/semena-—-derevo.json b/test_tube_merchant/items/medium/flowers/semena-—-derevo.json new file mode 100755 index 0000000..9ba3236 --- /dev/null +++ b/test_tube_merchant/items/medium/flowers/semena-—-derevo.json @@ -0,0 +1,41 @@ +{ + "name": "Семена — Дерево", + "type": "loot", + "system": { + "description": { + "value": "Вырастет до 25 деревьев; дуб, береза, сосна... Вырастают за 1800 дней.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "img": "modules/test_tube_merchant/assets/icon/items/tree.png", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/gorshok-_-jug.json b/test_tube_merchant/items/medium/food/gorshok-_-jug.json new file mode 100755 index 0000000..124a9fd --- /dev/null +++ b/test_tube_merchant/items/medium/food/gorshok-_-jug.json @@ -0,0 +1,59 @@ +{ + "name": "Горшок / Jug", + "type": "container", + "img": "icons/containers/kitchenware/jug-terracotta-orange.webp", + "system": { + "description": { + "value": "Горшок вмещает 1 галлон жидкости.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 8.4 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "attuned": false, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Jug" + }, + "core": { + "sourceId": "Compendium.dnd5e.items.0ZBWwjFz3nIAXMLW" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/kamennaya-sol�.json b/test_tube_merchant/items/medium/food/kamennaya-sol�.json new file mode 100755 index 0000000..3c4dc1e --- /dev/null +++ b/test_tube_merchant/items/medium/food/kamennaya-sol�.json @@ -0,0 +1,41 @@ +{ + "name": "Каменная соль", + "type": "loot", + "img": "icons/commodities/gems/powder-raw-white.webp", + "system": { + "description": { + "value": "Соль широко используется в кулинарии в качестве основного ингредиента, а также для вяления самых разнообразных продуктов, таких как свинина и рыба. Земледельцы делают раствор соли и воды для уничтожения сорняков на полях с ценными культурами.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 0.05, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/myaso.json b/test_tube_merchant/items/medium/food/myaso.json new file mode 100755 index 0000000..e6bfb2a --- /dev/null +++ b/test_tube_merchant/items/medium/food/myaso.json @@ -0,0 +1,41 @@ +{ + "name": "Мясо", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/meat.png", + "system": { + "description": { + "value": "Говядина, свинина, курица, дичь и прочее
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/mylo-_-soap.json b/test_tube_merchant/items/medium/food/mylo-_-soap.json new file mode 100755 index 0000000..55ab72e --- /dev/null +++ b/test_tube_merchant/items/medium/food/mylo-_-soap.json @@ -0,0 +1,46 @@ +{ + "name": "Мыло / Soap", + "type": "loot", + "img": "icons/sundries/survival/soap.webp", + "system": { + "description": { + "value": "Используется для чистки и мытья.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Soap" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/pitanie,-skromnoe.json b/test_tube_merchant/items/medium/food/pitanie,-skromnoe.json new file mode 100755 index 0000000..5f6fc09 --- /dev/null +++ b/test_tube_merchant/items/medium/food/pitanie,-skromnoe.json @@ -0,0 +1,41 @@ +{ + "name": "Питание, скромное", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/normal_meal.png", + "system": { + "description": { + "value": "Сытный бульон с настоящими овощами
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 3, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/ryba.json b/test_tube_merchant/items/medium/food/ryba.json new file mode 100755 index 0000000..4aebfbf --- /dev/null +++ b/test_tube_merchant/items/medium/food/ryba.json @@ -0,0 +1,41 @@ +{ + "name": "Рыба", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/fish.png", + "system": { + "description": { + "value": "Куриные, утиные или подобные
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/stolovyj-nabor-_-mess-kit.json b/test_tube_merchant/items/medium/food/stolovyj-nabor-_-mess-kit.json new file mode 100755 index 0000000..f9a6cbe --- /dev/null +++ b/test_tube_merchant/items/medium/food/stolovyj-nabor-_-mess-kit.json @@ -0,0 +1,46 @@ +{ + "name": "Столовый набор / Mess kit", + "type": "loot", + "img": "icons/tools/cooking/fork-steel-brown.webp", + "system": { + "description": { + "value": "Жестяная коробочка, в которой есть чашка и простые столовые принадлежности. Крышку коробочки можно использовать как сковородку, а саму коробочку — как тарелку или неглубокую миску.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mess Kit" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/food/suhoj-payok-_-rations.json b/test_tube_merchant/items/medium/food/suhoj-payok-_-rations.json new file mode 100755 index 0000000..2a71da1 --- /dev/null +++ b/test_tube_merchant/items/medium/food/suhoj-payok-_-rations.json @@ -0,0 +1,110 @@ +{ + "name": "Сухой паёк / Rations", + "type": "consumable", + "img": "icons/consumables/meat/hock-leg-stylized.webp", + "system": { + "description": { + "value": "Компактная сухая пища, подходящая для дальних походов. Может включать вяленое мясо, сухофрукты, сухари и орехи.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "food", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Rations" + }, + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + }, + "folder": null +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/cirkon.json b/test_tube_merchant/items/medium/jewelry/cirkon.json new file mode 100755 index 0000000..abbc861 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/cirkon.json @@ -0,0 +1,40 @@ +{ + "name": "Циркон", + "type": "loot", + "img": "icons/commodities/gems/gem-faceted-round-teal.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Циркон — это драгоценный камень самых разнообразных цветов. Существует также его прозрачный вариант, очень похожий на алмаз, поэтому его обычно используют как более дешевую его альтернативу. Любого человека, не разбирающегося в драгоценных камнях, легко обмануть, заставив поверить, что камень стоит дороже, чем он есть на самом деле.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/citrin.json b/test_tube_merchant/items/medium/jewelry/citrin.json new file mode 100755 index 0000000..e9f2f81 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/citrin.json @@ -0,0 +1,40 @@ +{ + "name": "Цитрин", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-teardrop-orange.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "\"Этот камень обычно используется для подмены Топаза, так как они имеют очень похожий цвет. Как вы можете себе предположить, человека с неискушенным взглядом можно легко обмануть, что и происходит снова и снова.\"
\n\n
По своим оттенкам этот камень близок к Императорскому Топазу или Желтому Сапфиру, однако его стоимость значительно ниже. В основном он используется в ювелирных изделиях и орнаментах.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/geliotrop.json b/test_tube_merchant/items/medium/jewelry/geliotrop.json new file mode 100755 index 0000000..54f1243 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/geliotrop.json @@ -0,0 +1,40 @@ +{ + "name": "Гелиотроп", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-cushion-red-white.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Камень темного цвета с небольшими крапинками красного или коричневого оттенков, иногда похожими на полоски или прожилки. В основном он используется в качестве декоративного камня для отделки каменных полов, мелкой резьбы а также в качестве лекарственного средства. Если его положить на открытую рану, он помогает крови быстрее свернуться.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/goluboj-kvarc.json b/test_tube_merchant/items/medium/jewelry/goluboj-kvarc.json new file mode 100755 index 0000000..25d6317 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/goluboj-kvarc.json @@ -0,0 +1,41 @@ +{ + "name": "Голубой кварц", + "type": "loot", + "img": "icons/commodities/gems/gem-fragments-blue.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Его предпочитают стеклодувы или осветители для изготовления различных типов чашек и ваз, а кузнецы с его помощью украшают бокалы. Маги используют этот драгоценный камень, чтобы видеть сквозь пространство или распознать чей-то обман.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "folder": "9Mz3DVR7MAMZVQJV" +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/halcedon.json b/test_tube_merchant/items/medium/jewelry/halcedon.json new file mode 100755 index 0000000..fb76fa3 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/halcedon.json @@ -0,0 +1,40 @@ +{ + "name": "Халцедон", + "type": "loot", + "img": "icons/commodities/gems/pearl-rough-turquoise.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Предполагается, что он иногда используется в некромантии, в основном в качестве замены человеческой кости, чтобы обеспечить либо защиту, либо контроль над нежитью. Он также используется для вырезания небольших камей или бюстов в закрытых подвесках, в основном в ювелирных изделиях.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/hrizopraz.json b/test_tube_merchant/items/medium/jewelry/hrizopraz.json new file mode 100755 index 0000000..d8e9ed8 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/hrizopraz.json @@ -0,0 +1,40 @@ +{ + "name": "Хризопраз", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-oval-green.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Этот драгоценный камень обычно гранят в круглые или овальные формы для использования в качестве подвесок и колец, а при дроблении его используют для создания невидимых магических чернил для изготовления рукописных свитков.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/instrumenty-yuvelira-_-jeweler's-tools.json b/test_tube_merchant/items/medium/jewelry/instrumenty-yuvelira-_-jeweler's-tools.json new file mode 100755 index 0000000..59c7b09 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/instrumenty-yuvelira-_-jeweler's-tools.json @@ -0,0 +1,91 @@ +{ + "name": "Инструменты ювелира / Jeweler's Tools", + "type": "tool", + "img": "icons/commodities/gems/gem-rough-rose-teal.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Jeweler's Tools" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия ювелирным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nУмение в обращении с инструментами ювелира включает в себя знание основных способов работы с драгоценностями, также позволяет опознавать драгоценные камни.
\nКомпоненты. Инструменты ювелира включают в себя небольшие пилу и молоточек, напильники, щипцы и пинцет.
\nМагия. Умение в обращении с инструментами ювелира даёт вам знания об известных способах магического применения драгоценных камней. Эти знания будут кстати при проверках Магии, связанных с драгоценными камнями или инкрустированными ими предметами.
\nРасследование. При осмотре драгоценностей владение инструментами ювелира помогает вам находить зацепки, которые другие бы просмотрели.
\nОпознание драгоценности. Вы можете опознать драгоценность и на глаз определить её стоимость.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Изменить внешний вид драгоценности | \n15 | \n
| Определить прошлое драгоценности | \n20 | \n
\"Существует легенда, что ликантропы при одном только взгляде на этот камень начинают менять форму. И правда, весьма занимательно.\"
Это один из самых доступных драгоценных камней в обращении, и в некоторых культурах его принято вшивать в одежду в качестве талисмана.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.05, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/oniksl.json b/test_tube_merchant/items/medium/jewelry/oniksl.json new file mode 100755 index 0000000..2920791 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/oniksl.json @@ -0,0 +1,40 @@ +{ + "name": "Оникс", + "type": "loot", + "img": "icons/commodities/stone/ore-chunk-black.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "
Если вы носите этот камень незачарованным, Госпожа Удача не будет к вам благосклонна. Так что лучше или поищите хорошего зачарователя, или снимите его.
Камень, часто используемые для инталии. Инталия — ювелирное изделие или украшение, выполненное в технике углублённого рельефа на драгоценных или полудрагоценных камнях или на стекле. Его часто используют для украшения официальных печатей.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/ozherel�e.json b/test_tube_merchant/items/medium/jewelry/ozherel�e.json new file mode 100755 index 0000000..56dca1c --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/ozherel�e.json @@ -0,0 +1,40 @@ +{ + "name": "Ожерелье", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/necklace.png", + "system": { + "description": { + "value": "Ожерелье из плетеного металла с жемчужной подвеской.
", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0.3, + "units": "lb" + }, + "price": { + "value": 150, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/sardoniks.json b/test_tube_merchant/items/medium/jewelry/sardoniks.json new file mode 100755 index 0000000..12a83af --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/sardoniks.json @@ -0,0 +1,40 @@ +{ + "name": "Сардоникс", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-teardrop-orange.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Более дорогая разновидность агата, которая обычно встречается только в сочетании двух цветов с черными полосами по всей поверхности. Считается, что ношение этого драгоценного камня в качестве украшения помогает защититься от заклинаний, однако подробности об этом были давно утеряны.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/serdolik.json b/test_tube_merchant/items/medium/jewelry/serdolik.json new file mode 100755 index 0000000..642d0d2 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/serdolik.json @@ -0,0 +1,40 @@ +{ + "name": "Сердолик", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-square-orange-red.webp", + "system": { + "description": { + "value": "
Непрозрачный самоцвет, от оранжевого до красно-коричневого.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/serebro.json b/test_tube_merchant/items/medium/jewelry/serebro.json new file mode 100755 index 0000000..9495197 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/serebro.json @@ -0,0 +1,40 @@ +{ + "name": "Серебро", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/silver.png", + "system": { + "description": { + "value": "Серебряный слиток, используется в различных ремеслах.", + "chat": "" + }, + "source": { + "custom": "КИ 157" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/yashma.json b/test_tube_merchant/items/medium/jewelry/yashma.json new file mode 100755 index 0000000..ac46a04 --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/yashma.json @@ -0,0 +1,40 @@ +{ + "name": "Яшма", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-teardrop-red.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Считается, что каждая яшма уникальна, поскольку каждый драгоценный камень имеет свой неповторимый рисунок — от пятнистого до кольцевидного или полосатого. В прошлом яшма считалась ценным камнем, а сейчас она используется алхимиками и знахарями для создания противоядий и магических эликсиров, поскольку свойства камня помогают нейтрализовать и защитить от воздействия яда.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/jewelry/zvyozdnyj-rozovyj-kvarc.json b/test_tube_merchant/items/medium/jewelry/zvyozdnyj-rozovyj-kvarc.json new file mode 100755 index 0000000..170d1ee --- /dev/null +++ b/test_tube_merchant/items/medium/jewelry/zvyozdnyj-rozovyj-kvarc.json @@ -0,0 +1,40 @@ +{ + "name": "Звёздный розовый кварц", + "type": "loot", + "img": "icons/commodities/gems/gem-rough-heart-pink.webp", + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + }, + "system": { + "description": { + "value": "Или просто известный как розовый кварц, это розовый драгоценный камень, который в основном используется в ювелирных изделиях. Кварцу часто придают разные формы: от сердечек для праздников и юбилеев до огромных круглых форм для хрустальных шаров волшебников. Знатоки считают, что его можно использовать как магический материал для отражения заклинаний.
", + "chat": "" + }, + "source": { + "custom": "KCoTG" + }, + "quantity": 1, + "weight": { + "value": 0.01, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "rarity": "common", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/bomba-_-bomb.json b/test_tube_merchant/items/medium/mechanical/bomba-_-bomb.json new file mode 100755 index 0000000..4e82838 --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/bomba-_-bomb.json @@ -0,0 +1,144 @@ +{ + "name": "Бомба / Bomb", + "type": "weapon", + "system": { + "description": { + "value": "В качестве действия персонаж может поджечь фитиль и метнуть бомбу в точку на расстоянии до 60 футов. Каждое существо в пределах 5 футов от этой точки должно пройти испытание Ловкости со СЛ 12, при провале оно получит [[/r 3d6]] урона огнём.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 150, + "denomination": "gp" + }, + "attunement": "", + "equipped": true, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 12, + "scaling": "flat" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr" + ], + "proficient": 1, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "img": "icons/weapons/thrown/bomb-fuse-brown-grey.webp", + "flags": { + "midi-qol": { + "fumbleThreshold": null, + "effectActivation": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "autoFailFriendly": false, + "rollOther": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "autoSaveFriendly": false + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + }, + "babele": { + "hasTranslation": true, + "originalName": "Bomb", + "translated": true + } + }, + "effects": [] +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/kapkan-_-hunting-trap.json b/test_tube_merchant/items/medium/mechanical/kapkan-_-hunting-trap.json new file mode 100755 index 0000000..a7e5ab4 --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/kapkan-_-hunting-trap.json @@ -0,0 +1,127 @@ +{ + "name": "Капкан / Hunting Trap", + "type": "consumable", + "img": "icons/environment/traps/trap-jaw-steel.webp", + "effects": [], + "flags": { + "midi-qol": { + "effectActivation": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "autoFailFriendly": false, + "rollOther": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false, + "autoSaveFriendly": false + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + }, + "system": { + "description": { + "value": "В качестве действия вы можете поставить капкан — зубчатое стальное колесо, которое захлопывается, когда существо наступает на прижимную пластину в центре. Капкан прикован тяжёлой цепью к неподвижному объекту вроде дерева или колышка, вбитого в землю. Существо, наступившее в капкан, должно пройти испытание Ловкости со СЛ 13, при провале получает [[/r 1d4]] колющего урона и прекращает перемещение. После этого, пока существо не освободится из капкана, его перемещение будет ограничено длиной цепи (обычно 3 фута). Существо может использовать действие, чтобы пройти проверку Силы со СЛ 13, при успехе освобождая себя или другое существо своей зоне досягаемости. При каждой неудачной проверке пойманное существо получает 1 колющий урон.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 25, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "piercing" + ] + ], + "versatile": "1" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/mehanicheskaya-sobaka.json b/test_tube_merchant/items/medium/mechanical/mehanicheskaya-sobaka.json new file mode 100755 index 0000000..d3972eb --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/mehanicheskaya-sobaka.json @@ -0,0 +1,40 @@ +{ + "name": "Механическая собака", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/tinkerDog.png", + "system": { + "description": { + "value": "Заведенная механическая собака: ходит вперед, лает и переворачивается.
", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/mehanicheskie-drakon�i-shahmaty.json b/test_tube_merchant/items/medium/mechanical/mehanicheskie-drakon�i-shahmaty.json new file mode 100755 index 0000000..d856c12 --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/mehanicheskie-drakon�i-shahmaty.json @@ -0,0 +1,40 @@ +{ + "name": "Механические драконьи шахматы", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/mechanicalCess.png", + "system": { + "description": { + "value": "Доска сама играет в драконьи шахматы с вами.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 20, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/poroh-(rozhok)-_-gunpowder-(horn).json b/test_tube_merchant/items/medium/mechanical/poroh-(rozhok)-_-gunpowder-(horn).json new file mode 100755 index 0000000..4f0cae8 --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/poroh-(rozhok)-_-gunpowder-(horn).json @@ -0,0 +1,109 @@ +{ + "name": "Порох (рожок) / Gunpowder (horn)", + "type": "consumable", + "img": "icons/commodities/bones/horn-engraved-stripes-white.webp", + "system": { + "description": { + "value": "Порох в основном используется для стрельбы пулями из стволов пистолетов и винтовок или создания бомб. Порох продают небольшими деревянными бочонками и водостойкими пороховыми рожками. Если поджечь контейнер, наполненный порохом, он взорвётся, нанеся урон огнём существам в пределах 10 футов от себя — [[/r 3d6]] урона. Успешное испытание Ловкости со СЛ 12 уменьшает урон вдвое. Если поджечь унцию пороха, она будет ярко гореть 1 раунд, испуская @UUID[Compendium.laaru-dnd5-hw.conditions.EvGCMCVp1VpUtCbI]{яркий свет} в радиусе 30 футов и @UUID[Compendium.laaru-dnd5-hw.conditions.BbWvc4m610EHv070]{тусклый} ещё на 30 футов.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 35, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 12, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "ammo", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/sharmanka.json b/test_tube_merchant/items/medium/mechanical/sharmanka.json new file mode 100755 index 0000000..1700ff8 --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/sharmanka.json @@ -0,0 +1,83 @@ +{ + "name": "Шарманка", + "type": "tool", + "img": "modules/test_tube_merchant/assets/icon/items/barrelOrgan.png", + "system": { + "description": { + "value": "Музыкальный инструмент, при вращении рукояти играет музыка.", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 30, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "chatFlavor": "", + "proficient": null, + "bonus": "" + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/mechanical/zamok-_-lock.json b/test_tube_merchant/items/medium/mechanical/zamok-_-lock.json new file mode 100755 index 0000000..7440f77 --- /dev/null +++ b/test_tube_merchant/items/medium/mechanical/zamok-_-lock.json @@ -0,0 +1,109 @@ +{ + "name": "Замок / Lock", + "type": "consumable", + "img": "icons/sundries/misc/lock-bronze-reinforced.webp", + "system": { + "description": { + "value": "Продаётся вместе с ключом. Без ключа существо, умелое в обращении с инструментами вора, может взломать этот замок, успешно пройдя проверку Ловкости со СЛ 15. Мастер может решить, что за хорошие деньги вы можете приобрести и более надёжные замки.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "abil", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Lock" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/potions/alhimika-_-alchemist's-supplies.json b/test_tube_merchant/items/medium/potions/alhimika-_-alchemist's-supplies.json new file mode 100755 index 0000000..c93a1c8 --- /dev/null +++ b/test_tube_merchant/items/medium/potions/alhimika-_-alchemist's-supplies.json @@ -0,0 +1,92 @@ +{ + "name": "Инструменты алхимика / Alchemist's Supplies", + "type": "tool", + "img": "icons/tools/laboratory/vials-blue-pink.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Alchemist's Supplies" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия алхимией и позволяют персонажу создавать полезные варева, такие как кислота или алхимический огонь. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
Компоненты. Инструменты алхимика включают в себя две стеклянные мензурки, металлический каркас, удерживающий мензурку над открытым пламенем, стеклянную палочку для размешивания, небольшие ступку и пестик, мешочек обычных алхимических ингредиентов, включающих в себя соль, измельчённое железо и дистиллированную воду.
Магия. Умение в обращении с инструментами алхимика позволяет вам раскрыть больше информации при проверках Магии, связанных с зельями и подобными веществами.
Расследование. Когда вы осматриваете область в поиске улик, умение в обращении с инструментами алхимика даёт дополнительные знания о том, какие химикаты и прочие вещества использовались в области.
Алхимическое ремесло. Вы можете использовать умением в обращении с инструментами для создания алхимических предметов. Персонаж может потратить деньги, чтобы собрать сырьё, которое весит 500 грамм за каждые использованные 50 зм. Мастер может позволить персонажу пройти проверку на опознание с преимуществом. Частью долгого отдыха вы можете использовать инструменты алхимика, чтобы сделать одну порцию @UUID[Compendium.dnd5e.items.Sx5E6utixHdAbGNb]{кислоты}, @UUID[Compendium.dnd5e.items.FvNOwWbh5FXyX4xe]{алхимического огня}, @UUID[Compendium.dnd5e.items.Fc6UfFNOnW80XMzi]{противоядия}, @UUID[Compendium.dnd5e.items.psoZaItkOScMVaHL]{масла}, @UUID[Compendium.dnd5e.items.uuh4UH3Jx5CsFjdA]{духов} или @UUID[Compendium.dnd5e.items.REBWkTKe6lJaIkpn]{мыла}. Вычтите половину стоимости созданного предмета из суммарной стоимости собранного вами сырья.
| Возможное действие | СЛ |
|---|---|
| Создать клубы густого дыма | 10 |
| Опознать яд | 10 |
| Опознать вещество | 15 |
| Получить огонь | 15 |
| Нейтрализовать кислоту | 20 |
Существо, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 10. При провале оно получает 6 ([[/r 1d12]]) урона ядом и &reference[poisoned]{отравлено} на 24 часа. При успехе существо получает половину урона и не отравлено.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 150, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "poison", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/potions/lyubovnoe-zel�e-_-philter-of-love.json b/test_tube_merchant/items/medium/potions/lyubovnoe-zel�e-_-philter-of-love.json new file mode 100755 index 0000000..e83a8b3 --- /dev/null +++ b/test_tube_merchant/items/medium/potions/lyubovnoe-zel�e-_-philter-of-love.json @@ -0,0 +1,116 @@ +{ + "name": "Любовное зелье / Philter of Love", + "type": "consumable", + "img": "icons/consumables/potions/potion-bottle-stopped-labeled-red.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "philter%20of%20love_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 + 1" + }, + "babele": { + "hasTranslation": true, + "originalName": "Philter of Love", + "translated": true + } + }, + "system": { + "description": { + "value": "После того как вы выпьете это зелье, когда вы в следующий раз увидите любое существо в ближайшие 10 минут, вы будете &reference[charmed]{обворожены} этим существом на 1 час. Если оно того вида и пола, что вас обычно привлекают, на время обворожения вы будете считать его своей истинной любовью.
Зелье розовое и шипучее, в нём есть один почти незаметный пузырёк в форме сердца.
Зелье розовое и шипучее, в нём есть один почти незаметный пузырёк в форме сердца.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/potions/maslo-skol�zheniya-_-oil-of-slipperiness.json b/test_tube_merchant/items/medium/potions/maslo-skol�zheniya-_-oil-of-slipperiness.json new file mode 100755 index 0000000..74fb198 --- /dev/null +++ b/test_tube_merchant/items/medium/potions/maslo-skol�zheniya-_-oil-of-slipperiness.json @@ -0,0 +1,114 @@ +{ + "name": "Масло скольжения / Oil of Slipperiness", + "type": "consumable", + "img": "icons/tools/laboratory/bowl-liquid-black.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "oil%20of%20slipperiness_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 + 2" + }, + "babele": { + "hasTranslation": true, + "originalName": "Oil of Slipperiness", + "translated": true + } + }, + "system": { + "description": { + "value": "Эта липкая чёрная мазь — густая и тяжёлая, пока находится в сосуде, но быстро растекается, если её вылить. Маслом можно покрыть существо среднего или меньшего размера вместе со всем снаряжением, которое оно носит или держит (для каждой категории размера больше среднего требуется по одному дополнительному пузырьку). Нанесение масла занимает 10 минут. После этого обработанное существо получает эффект заклинания @Compendium[laaru-dnd5-hw.spells.qBqA0Y0k8CFbU5Bw]{Свобода движений} на 8 часов.
\nКак вариант, масло можно вылить наземь в качестве действия. Оно покроет квадрат 10 на 10 футов, создавая эффект заклинания @Compendium[laaru-dnd5-hw.spells.bbTImv4AXCPGNw8Q]{Масло} в этой области на 8 часов.
\nВключает пузырьки, снадобья и прочие предметы, необходимые для приготовления ядов. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с приготовлением и использованием ядов.
Излюбленное средство воров, убийц и прочих сомнительных личностей. Этот набор позволяет вам использовать яды и создавать их из различных веществ. Ваши познания в ядах также помогают вам излечивать от них.
Компоненты. Набор отравителя включает в себя стеклянные склянки, ступку и пестик, химические реагенты и стеклянную палочку для размешивания.
История. Ваша подготовка в использовании ядов может помочь вам при попытках вспомнить факты о печально известных отравлениях.
Внимание, Расследование. Ваши познания в ядах научили вас быть осторожным, имея дело с этими веществами, тем самым помогая вам при обследовании отравленного предмета или при получении зацепок о событиях, связанных с ядами.
Медицина. Когда вы лечите жертву яда, ваша осведомлённость может дать вам дополнительные знания о том, как правильнее ухаживать за отравленным.
Выживание, Природа. Работа с ядами позволила вам получить знания о том, какие растения и животные ядовиты.
Обращение с ядами. Ваше умение в обращении с этим набором позволяет вам аккуратно обращаться с ядами и использовать их без риска самому подвергнуться их действию.
| Возможное действие | СЛ |
|---|---|
| Опознать отравленный предмет | 10 |
| Определить эффект яда | 20 |
(поглощаемый)
Существо, подвергшееся действию этого яда, должно пройти испытание Выносливости со СЛ 11, при провале оно &reference[poisoned]{отравлено} на 1 час. Отравленное существо не может сознательно солгать, как под эффектом заклинания @Compendium[laaru-dnd5-hw.spells.5dN5AZgmsr5KTJ5j]{Место истины}.
Выпив это зелье, вы сможете дышать под водой 1 час.
Эта мутно-зелёная жидкость пахнет морем, и в ней плавает пузырёк, похожий на медузу.
Эта мутно-зелёная жидкость пахнет морем, и в ней плавает пузырёк, похожий на медузу.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/potions/zel�e-ognennogo-dyhaniya-_-potion-of-fire-breath.json b/test_tube_merchant/items/medium/potions/zel�e-ognennogo-dyhaniya-_-potion-of-fire-breath.json new file mode 100755 index 0000000..e87653f --- /dev/null +++ b/test_tube_merchant/items/medium/potions/zel�e-ognennogo-dyhaniya-_-potion-of-fire-breath.json @@ -0,0 +1,121 @@ +{ + "name": "Зелье огненного дыхания / Potion of Fire Breath", + "type": "consumable", + "img": "modules/laaru-dnd5-hw/assets/images/pic/Potion%20of%20Fire%20Breath.webp", + "effects": [], + "flags": { + "srd5e": { + "page": "", + "source": "DMG", + "hash": "potion%20of%20fire%20breath_dmg" + }, + "test_tube_merchant": { + "quantity": "1d4 + 2" + }, + "babele": { + "hasTranslation": true, + "originalName": "Potion of Fire Breath", + "translated": true + } + }, + "system": { + "description": { + "value": "Выпив это зелье, вы можете использовать бонусное действие, чтобы выдохнуть огонь на цель в пределах 30 футов от вас. Цель должна пройти испытание Ловкости со СЛ 13, получая [[/r 4d6]] урона огнём при провале или половину этого урона при успехе. Эффект прекращается после того, как вы выдохнете огонь трижды, или через 1 час.
\nОранжевая жидкость этого зелья мерцает, алым заполняет верх сосуда и сочится наружу, если его открыть.
", + "chat": "" + }, + "source": { + "custom": "DMG" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 3, + "max": "3", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "crewed": false, + "unidentified": { + "description": "Оранжевая жидкость этого зелья мерцает, алым заполняет верх сосуда и сочится наружу, если его открыть.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "properties": [ + "mgc" + ], + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/potions/zel�e-uluchshennogo-isceleniya-_-potion-of-greater-healing.json b/test_tube_merchant/items/medium/potions/zel�e-uluchshennogo-isceleniya-_-potion-of-greater-healing.json new file mode 100755 index 0000000..e5e6d78 --- /dev/null +++ b/test_tube_merchant/items/medium/potions/zel�e-uluchshennogo-isceleniya-_-potion-of-greater-healing.json @@ -0,0 +1,116 @@ +{ + "name": "Зелье улучшенного исцеления / Potion of greater healing", + "type": "consumable", + "img": "icons/consumables/potions/bottle-bulb-corked-glowing-red.webp", + "system": { + "description": { + "value": "Зелье — красная жидкость, которая мерцает, если её встряхнуть.
Персонаж, выпивший магическую красную жидкость из этого пузырька, восстанавливает [[/r 4d4+4]] пункта здоровья.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 150, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d4 + 4", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [ + "mgc" + ], + "unidentified": { + "description": "Зелье — красная жидкость, которая мерцает, если её встряхнуть.
" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "container": null, + "attack": { + "bonus": "", + "flat": false + }, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Potion of Greater Healing" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/boevoj-posoh-_-quarterstaff.json b/test_tube_merchant/items/medium/religious/boevoj-posoh-_-quarterstaff.json new file mode 100755 index 0000000..03a1d9f --- /dev/null +++ b/test_tube_merchant/items/medium/religious/boevoj-posoh-_-quarterstaff.json @@ -0,0 +1,125 @@ +{ + "name": "Боевой посох / Quarterstaff", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-gold.webp", + "system": { + "description": { + "value": "Толстое деревянное древко, обмотанное крепкой рукоятью, превращается в весьма функциональное оружие, которое также можно использовать как прочную трость.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "bludgeoning" + ] + ], + "versatile": "1d8 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "quarterstaff" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Quarterstaff" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/derevyannyj-posoh-_-wooden-staff.json b/test_tube_merchant/items/medium/religious/derevyannyj-posoh-_-wooden-staff.json new file mode 100755 index 0000000..34e869f --- /dev/null +++ b/test_tube_merchant/items/medium/religious/derevyannyj-posoh-_-wooden-staff.json @@ -0,0 +1,145 @@ +{ + "name": "Деревянный посох / Wooden Staff", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-spiral-green.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Wooden Staff" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + }, + "midi-qol": { + "fumbleThreshold": null, + "effectActivation": false + }, + "midiProperties": { + "nodam": false, + "fulldam": false, + "halfdam": false, + "autoFailFriendly": false, + "rollOther": false, + "critOther": false, + "offHandWeapon": false, + "magicdam": false, + "magiceffect": false, + "concentration": false, + "toggleEffect": false, + "ignoreTotalCover": false + } + }, + "system": { + "description": { + "value": "Сучковатый или естественный гладкий деревянный посох, вырезанный из живого дерева, те, кто прислушивается к зову природы, могут использовать его, чтобы использовать невероятную силу природы.
\nФокусирующий предмет друида. Это особый предмет, предназначенный для направления энергии заклинаний из списка заклинаний друида. Друид может использовать этот предмет вместо любых реагентов для заклинаний, кроме тех, для которых указана стоимость.
", + "chat": "" + }, + "source": { + "custom": "Wooden Staff" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "bludgeoning" + ] + ], + "versatile": "1d8 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "foc", + "ver", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/kadilo-_-censer.json b/test_tube_merchant/items/medium/religious/kadilo-_-censer.json new file mode 100755 index 0000000..fbcf326 --- /dev/null +++ b/test_tube_merchant/items/medium/religious/kadilo-_-censer.json @@ -0,0 +1,45 @@ +{ + "name": "Кадило / Censer", + "type": "loot", + "img": "icons/tools/laboratory/bowl-liquid-orange.webp", + "system": { + "description": { + "value": "Обычно используется в сочетании с блоками благовоний для ароматизации воздуха.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Censer" + }, + "test_tube_merchant": { + "quantity": "1d4+2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/mantiya-_-robes.json b/test_tube_merchant/items/medium/religious/mantiya-_-robes.json new file mode 100755 index 0000000..1b920db --- /dev/null +++ b/test_tube_merchant/items/medium/religious/mantiya-_-robes.json @@ -0,0 +1,124 @@ +{ + "name": "Мантия / Robes", + "type": "equipment", + "img": "icons/equipment/back/cloak-collared-pink.webp", + "system": { + "description": { + "value": "Простая или церемониальная одежда, часто используемая священниками и другими религиозными деятелями.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Robes" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/nabor-lekarya-_-healer's-kit.json b/test_tube_merchant/items/medium/religious/nabor-lekarya-_-healer's-kit.json new file mode 100755 index 0000000..6c96af7 --- /dev/null +++ b/test_tube_merchant/items/medium/religious/nabor-lekarya-_-healer's-kit.json @@ -0,0 +1,109 @@ +{ + "name": "Набор лекаря / Healer's Kit", + "type": "consumable", + "img": "icons/containers/bags/sack-simple-green.webp", + "system": { + "description": { + "value": "Кожаный кошель содержит бинты, мази и лубки. Может быть использован 10 раз. В качестве действия вы можете потратить одно использование набора, чтобы стабилизировать существо с 0 ПЗ при этом не требуется проверка Мудрости (Медицина).
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 10, + "max": "10", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Healer's Kit" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/pobeg-omely-_-sprig-of-mistletoe.json b/test_tube_merchant/items/medium/religious/pobeg-omely-_-sprig-of-mistletoe.json new file mode 100755 index 0000000..7c70491 --- /dev/null +++ b/test_tube_merchant/items/medium/religious/pobeg-omely-_-sprig-of-mistletoe.json @@ -0,0 +1,121 @@ +{ + "name": "Побег омелы / Sprig of Mistletoe", + "type": "weapon", + "img": "icons/consumables/plants/fern-lady-green.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sprig of Mistletoe" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "system": { + "description": { + "value": "Живая веточка омелы, остролиста или какого-нибудь другого священного листа, сорванная с дерева, корни которого глубоко погружены в линию сил. Те, кто прислушивается к зову природы, способны использовать эту связь, чтобы вызвать невероятную силу природы.
\nФокусирующий предмет друида. Это особый предмет, предназначенный для направления энергии заклинаний из списка заклинаний друида. Друид может использовать этот предмет вместо любых реагентов для заклинаний, кроме тех, для которых указана стоимость.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 151" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "foc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "natural", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/sklyanka-so-svyatoj-vodoj-_-flask-of-holy-water.json b/test_tube_merchant/items/medium/religious/sklyanka-so-svyatoj-vodoj-_-flask-of-holy-water.json new file mode 100755 index 0000000..05e1e26 --- /dev/null +++ b/test_tube_merchant/items/medium/religious/sklyanka-so-svyatoj-vodoj-_-flask-of-holy-water.json @@ -0,0 +1,114 @@ +{ + "name": "Склянка со святой водой / Flask of Holy Water", + "type": "consumable", + "img": "icons/consumables/potions/bottle-round-empty-glass.webp", + "system": { + "description": { + "value": "В качестве действия вы можете выплеснуть содержимое склянки на существо в пределах 5 футов от вас или метнуть её на 20 футов — от удара склянка разобьётся. В обоих случаях совершите дистанционную атаку по этому существу, считая святую воду импровизированным оружием. Если цель — бестия или нежить, при попадании она получит 2d6 лучистого урона.
Жрецы и паладины могут создавать святую воду, выполнив особый ритуал. Он занимает 1 час, стоит 25 зм, потраченных на серебряную пыль, и требует использовать ячейку заклинания 1-го круга.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "Target must be a fiend or undead." + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 5, + "long": 20, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "dex", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "potion", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Flask of Holy Water" + }, + "test_tube_merchant": { + "quantity": "1d3 * 5 + 1d5" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/tisovyj-zhezl-_-yew-wand.json b/test_tube_merchant/items/medium/religious/tisovyj-zhezl-_-yew-wand.json new file mode 100755 index 0000000..20ad202 --- /dev/null +++ b/test_tube_merchant/items/medium/religious/tisovyj-zhezl-_-yew-wand.json @@ -0,0 +1,121 @@ +{ + "name": "Тисовый жезл / Yew Wand", + "type": "weapon", + "img": "icons/weapons/staves/staff-simple-brown.webp", + "system": { + "description": { + "value": "Этот жезл или скипетр из тиса или иной особой древесины исписан мощными рунами для взывания к силам природы теми, кто заботиться о ней.
\nФокусирующий предмет друида. Это особый предмет, предназначенный для направления энергии заклинаний из списка заклинаний друида. Друид может использовать этот предмет вместо любых реагентов для заклинаний, кроме тех, для которых указана стоимость.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "foc", + "mgc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "natural", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Yew Wand" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/totem-_-totem.json b/test_tube_merchant/items/medium/religious/totem-_-totem.json new file mode 100755 index 0000000..7827a0e --- /dev/null +++ b/test_tube_merchant/items/medium/religious/totem-_-totem.json @@ -0,0 +1,121 @@ +{ + "name": "Тотем / Totem", + "type": "weapon", + "img": "icons/equipment/neck/collar-carved-bone-teeth-ring.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Totem" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + }, + "system": { + "description": { + "value": "Тотем, включающий перья, мех, кости и зубы животного, священного для использующего. Те, кто прислушивается к зову природы, способны использовать это, чтобы вызвать невероятную силу природы.
\nФокусирующий предмет друида. Это особый предмет, предназначенный для направления энергии заклинаний из списка заклинаний друида. Друид может использовать этот предмет вместо любых реагентов для заклинаний, кроме тех, для которых указана стоимость.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 151" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "mgc", + "foc" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "natural", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/zaklinanie_-iscelyayushij-moleben.json b/test_tube_merchant/items/medium/religious/zaklinanie_-iscelyayushij-moleben.json new file mode 100755 index 0000000..b383d34 --- /dev/null +++ b/test_tube_merchant/items/medium/religious/zaklinanie_-iscelyayushij-moleben.json @@ -0,0 +1,40 @@ +{ + "name": "Заклинание: Исцеляющий молебен", + "type": "loot", + "img": "icons/magic/holy/prayer-hands-glowing-yellow.webp", + "system": { + "description": { + "value": "Заклинание 2го уровня: [[/damage 2d8+3 healing]]{исцеляет 2d8+3 ПЗ}.
", + "chat": "" + }, + "source": { + "custom": "КМ 240" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 40, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/religious/zaklinanie_-nizshee-vosstanovlenie.json b/test_tube_merchant/items/medium/religious/zaklinanie_-nizshee-vosstanovlenie.json new file mode 100755 index 0000000..6d6627b --- /dev/null +++ b/test_tube_merchant/items/medium/religious/zaklinanie_-nizshee-vosstanovlenie.json @@ -0,0 +1,40 @@ +{ + "name": "Заклинание: Низшее восстановление", + "type": "loot", + "img": "icons/magic/nature/leaf-oak-wreath-glow-green.webp", + "system": { + "description": { + "value": "Лечит одно из болезней или состояний. Из состояний можно исцелить &reference[blinded]{слепоту}, &reference[deafened]{глухоту}, &reference[paralyzed]{паралич} или &reference[poisoned]{отравление}.
", + "chat": "" + }, + "source": { + "custom": "КИ 237" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 40, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Adskoe-vozmezdie-_-Hellish-rebuke.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Adskoe-vozmezdie-_-Hellish-rebuke.json new file mode 100755 index 0000000..abff337 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Adskoe-vozmezdie-_-Hellish-rebuke.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Адское возмездие / Hellish rebuke", + "img": "icons/creatures/unholy/demon-fire-horned-mask.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы указываете пальцем на существо, нанесшее вам урон, и его немедленно окутывает адское пламя. Существо должно пройти испытание Ловкости. Оно получает [[/r 2d10]] урона огнём при провале или половину этого урона при успехе.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "1 ответное действие, которое вы совершаете в ответ на получение урона от существа в пределах 60 футов от вас, которое вы видите" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d10", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Aura-zhiznennoy-sily-_-Aura-of-vitality.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Aura-zhiznennoy-sily-_-Aura-of-vitality.json new file mode 100755 index 0000000..2996ef6 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Aura-zhiznennoy-sily-_-Aura-of-vitality.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Аура жизненной силы / Aura of vitality", + "img": "icons/magic/life/ankh-gold-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Исцеляющая энергия исходит от вас в ауре радиусом 30 футов. Пока длится заклинание, аура перемещается вместе с вами — вы остаётесь в её центре. Вы можете использовать бонусное действие, чтобы восстановить одному любому существу, находящемуся в ауре (включая вас), [[/r 2d6]] ПЗ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Besslednyy-shag-_-Pass-without-trace.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Besslednyy-shag-_-Pass-without-trace.json new file mode 100755 index 0000000..ed0663f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Besslednyy-shag-_-Pass-without-trace.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Бесследный шаг / Pass without trace", + "img": "icons/magic/nature/stealth-hide-beast-eyes-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте покров тени и тишины, маскирующий вас и ваших спутников. Пока длится заклинание, любые выбранные вами существа в пределах 30 футов от вас (включая вас) получают бонус +10 к проверкам Ловкости (Скрытность) и их нельзя выследить иначе как с помощью магии. Существо, получившее этот бонус, не оставляет никаких следов там, где проходит.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bezuderzhnyy-smekh-Tashi-_-Tasha's-hideous-laughter.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bezuderzhnyy-smekh-Tashi-_-Tasha's-hideous-laughter.json new file mode 100755 index 0000000..b7668ed --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bezuderzhnyy-smekh-Tashi-_-Tasha's-hideous-laughter.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Безудержный смех Таши / Tasha's hideous laughter", + "img": "icons/creatures/magical/spirit-fire-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выбранное вами существо, которое вы видите в пределах дистанции, начинает под действием заклинания воспринимать всё вокруг как нечто уморительно смешное неудержимо хохотать, Цель должна пройти испытание Мудрости, при провале она &reference[prone]{распластывается}, &reference[incapacitated]{выведена из строя} и не может встать, пока длится заклинание. На существ с Интеллектом 4 и ниже заклинание не действует.
В конце каждого своего хода и каждый раз при получении урона цель может снова пройти испытание Мудрости. У цели есть преимущество к испытанию, если оно вызвано уроном. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Blagoslovenie-_-Bless.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Blagoslovenie-_-Bless.json new file mode 100755 index 0000000..1d103bb --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Blagoslovenie-_-Bless.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Благословение / Bless", + "img": "icons/magic/life/heart-hand-gold-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы благословляете до трёх существ на ваш выбор в пределах дистанции. Пока длится заклинание, когда цель совершает бросок атаки или испытание, она может бросить [[/r d4]] и добавить к результату основного броска.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "3", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bronya-Agafisa-_-Armor-of-Agathys.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bronya-Agafisa-_-Armor-of-Agathys.json new file mode 100755 index 0000000..6ae96f2 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bronya-Agafisa-_-Armor-of-Agathys.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Броня Агафиса / Armor of Agathys", + "img": "icons/magic/water/heart-ice-freeze.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вас окружает защитное магическое поле, которое проявляется как призрачная изморозь, покрывающая вас и ваше снаряжение. Вы получаете 5 временных ПЗ, пока длится заклинание. Если существо попадает по вам атакой ближнего боя, пока у вас есть эти временные ПЗ, оно получает 5 урона холодом.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, временные ПЗ и урон холодом увеличиваются на 5 за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bryzgi-yada-_-Poison-spray.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bryzgi-yada-_-Poison-spray.json new file mode 100755 index 0000000..650648a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Bryzgi-yada-_-Poison-spray.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Брызги яда / Poison spray", + "img": "icons/creatures/slimes/slime-movement-splash-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы протягиваете руку в сторону существа, которое видите в пределах дистанции, и испускаете на него пары ядовитого газа из ладони. Существо должно успешно пройти испытание Выносливости, иначе получает [[/r 1d12]] урона ядом.
\nУрон заклинания увеличивается на [[/r 1d12]], когда вы достигаете 5-го ([[/r 2d12]]), 11-го ([[/r 3d12]]) и 17-го уровня ([[/r 4d12]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы нашептываете нестройную мелодию, которую может слышать только одно выбранное вами существо в пределах дистанции, и причиняете ему невыносимую боль. Цель должна пройти испытание Мудрости. При провале она получает [[/r 3d6]] психического урона и должна немедленно использовать ответное действие, если оно ей доступно, чтобы переместиться так далеко от вас, как только позволяет её скорость. Цель не станет перемещаться в очевидно опасные места вроде огня или ям. При успехе цель получает половину этого урона и не должна убегать. &reference[deafened]{Глухое}существо автоматически проходит испытание успешно.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dnevnoy-svet-_-Daylight.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dnevnoy-svet-_-Daylight.json new file mode 100755 index 0000000..d5da94e --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dnevnoy-svet-_-Daylight.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дневной свет / Daylight", + "img": "icons/magic/air/weather-sunlight-sky.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Сфера света радиусом 60 футов исходит из выбранной вами точки в пределах дистанции. Внутри сферы свет &reference[brightlight]{яркий}, и она создаёт &reference[dimlight]{тусклый свет} еще на 60 футов.
\nЕсли вы выберете точку на объекте, который держите, или ещё на каком-то предмете, который не носят и не держат другие, свет будет исходить из этого объекта и перемещаться вместе с ним. Если полностью накрыть источник света непрозрачным предметом вроде ведра или шлема, он заблокирует свет. Если область действия этого заклинания накладывается на область тьмы, созданной заклинанием 3-го круга или ниже, заклинание, создавшее тьму, рассеивается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Druidizm-_-Druidcraft.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Druidizm-_-Druidcraft.json new file mode 100755 index 0000000..0b1fe26 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Druidizm-_-Druidcraft.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Друидизм / Druidcraft", + "img": "icons/magic/nature/lotus-glow-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Шепча духам природы, вы создаёте один из этих эффектов в пределах дистанции:
\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, у вас преимущество ко всем проверкам Харизмы против одного существа на ваш выбор, если оно к вам не враждебно. Когда заклинание прекращает действовать, существо осознаёт, что вы с помощью магии манипулировали его настроением, и становится враждебно вам. Склонное к насилию существо может даже атаковать вас, но может отомстить вам и по-другому (по решению мастера), в зависимости от того, как вы с ним взаимодействовали.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание позволяет вам убедить животное, что вы ему не враг. Выберите животное, которое видите в пределах дистанции. Оно должно видеть и слышать вас Если Интеллект животного 4 и выше, заклинание не сработает. В ином случае животное должно пройти испытание Мудрости, при провале оно @UUID[Compendium.laaru-dnd5-hw.conditions.5vKRVm8wXReUJasS]{обворожено} вами, пока длится заклинание. Если вы или ваш спутник причините цели вред, заклинание прекращает действовать
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное животное за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dubovaya-kozha-_-Barkskin.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dubovaya-kozha-_-Barkskin.json new file mode 100755 index 0000000..8c7db6e --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dubovaya-kozha-_-Barkskin.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дубовая кожа / Barkskin", + "img": "icons/magic/nature/barrier-shield-wood-vines.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dykhanie-pod-vodoy-_-Water-Breathing.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dykhanie-pod-vodoy-_-Water-Breathing.json new file mode 100755 index 0000000..0b09106 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Dykhanie-pod-vodoy-_-Water-Breathing.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Дыхание под водой / Water Breathing", + "img": "icons/creatures/fish/fish-bluefin-yellow-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание даёт десяти или менее согласным существам, которых вы видите в пределах дистанции, способность дышать под водой, пока длится заклинание. Существа под влиянием заклинания сохраняют возможность дышать и обычным способом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gadanie-_-Augury.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gadanie-_-Augury.json new file mode 100755 index 0000000..8957254 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gadanie-_-Augury.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Гадание / Augury", + "img": "icons/magic/light/orb-hands-humanoid-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Бросая инкрустированные самоцветами палочки или драконьи кости, раскладывая узорные карты или используя какие-то еще гадальные инструменты, вы получаете от потусторонней сущности предсказание о результатах определенных действий, которые вы планируете совершить в ближайшие 30 минут. Мастер выбирает один из возможных вариантов:
\nЗаклинание не учитывает возможные обстоятельства, которые могут изменить результат, например сотворение дополнительных заклинаний или потерю спутника.
Если вы сотворите это заклинание два или более раза, прежде чем завершите долгий отдых, появляется накапливающийся шанс ([[/r 1d100]] 25% за каждое гадание после первого), что будет получено случайное толкование. Мастер делает этот бросок тайно.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gazoobraznost�-_-Gaseous-Form.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gazoobraznost�-_-Gaseous-Form.json new file mode 100755 index 0000000..62c2ee7 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gazoobraznost�-_-Gaseous-Form.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Газообразность / Gaseous Form", + "img": "icons/magic/lightning/projectile-orb-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы касаетесь согласного существа и превращаете его вместе со всем, что оно носит и держит, в облако тумана, пока длится заклинание. Заклинание прекращает действовать, если ПЗ существа снижаются до 0.
На бестелесных существ заклинание не влияет. Находясь в этой форме, цель может перемещаться только со скоростью полёта в 10 футов. Цель может входить в пространство, занятое любым другим существом, и оставаться там. У цели @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к немагическому урону и преимущество к испытаниям Силы, Ловкости и выносливости. Цель может проходить сквозь небольшие отверстия, щели и даже трещины, а вот жидкость для неё не отличается от сплошной твёрдой поверхности. Цель не может упасть и продолжает парить в воздухе, даже если она &reference[stunned]{в шоке} или &reference[incapacitated]{выведена из строя}.
Находясь в форме облака, цель не может говорить или взаимодействовать с объектами. Любые предметы, которые цель несла или держала, нельзя бросить, использовать или как-то ещё с ними взаимодействовать. Цель не может атаковать или творить заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Geroizm-_-Heroism.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Geroizm-_-Heroism.json new file mode 100755 index 0000000..0e2798f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Geroizm-_-Heroism.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Героизм / Heroism", + "img": "icons/magic/control/buff-strength-muscle-damage-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы касаетесь согласного существа, наделяя его храбростью. Пока длится заклинание, существо невосприимчиво к &reference[frightened]{испугу} и получает в начале каждого своего хода временные ПЗ в количестве, равном вашему модификатору заклинательной характеристики. Когда заклинание прекращает действовать, цель теряет все оставшиеся временные ПЗ, полученные от этого заклинания.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "@mod", + "temphp" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Golod-Khadara-_-Hunger-of-Hadar.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Golod-Khadara-_-Hunger-of-Hadar.json new file mode 100755 index 0000000..9fc2bcf --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Golod-Khadara-_-Hunger-of-Hadar.json @@ -0,0 +1,122 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Голод Хадара / Hunger of Hadar", + "img": "icons/magic/nature/root-vine-thorned-fire-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы открываете врата в межзвёздную пустоту, полную неведомых ужасов. Сфера черноты и мороза радиусом 20 футов появляется из точки в пределах дистанции и существует, пока длится заклинание. Пустота наполнена какофонией шёпота и чавканья, которую слышно на 30 футов вокруг. Никакой свет, ни магический, ни обычный, не может осветить эту область, и существа, полностью находящиеся в ее пределах, &reference[blinded]{слепы }.
Пустота создаёт искажение ткани пространства, её область — &reference[difficultterrain]{пересечённая местность}. Любое существо, начавшее свой ход в этой области, получает [[/r 2d6]] урона холодом. Любое существо, закончившее свой ход в области, должно пройти испытание Ловкости, при провале оно получает [[/r 2d6]] урона кислотой, когда его хватают скользкие потусторонние щупальца.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "cold" + ], + [ + "2d6", + "acid" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Grad-shipov-_-Hail-of-Thorns.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Grad-shipov-_-Hail-of-Thorns.json new file mode 100755 index 0000000..7b2086a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Grad-shipov-_-Hail-of-Thorns.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Град шипов / Hail of Thorns", + "img": "icons/magic/nature/root-vine-spiral-thorns-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gromovaya-kara-_-Thunderous-Smite.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gromovaya-kara-_-Thunderous-Smite.json new file mode 100755 index 0000000..9c8f416 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gromovaya-kara-_-Thunderous-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Громовая кара / Thunderous Smite", + "img": "icons/magic/lightning/bolt-strike-wide-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "thunder" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gromovaya-volna-_-Thunderwave.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gromovaya-volna-_-Thunderwave.json new file mode 100755 index 0000000..656eb76 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Gromovaya-volna-_-Thunderwave.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Громовая волна / Thunderwave", + "img": "icons/magic/lightning/barrier-wall-shield-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
От вас исходит волна громовой силы. Каждое существо в пределах 15-футового куба, исходящего от вас, должно пройти испытание Выносливости. При провале существо получаеr [[/r 2d8]] урона громом и его отталкивает прочь от вас на 10 футов. При успехе существо получает половину урона и его не отталкивает.
Кроме того, незакреплённые объекты, полностью находящиеся в области действия, автоматически отталкиваются на 10 футов прочь от вас, заклинание издает грохот грома, который слышно в пределах 300 футов
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличавается на [[/r 1d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "thunder" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "mgc", + "vocal", + "somatic", + "mgc" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Illyuzornye-pis�mena-_-Illusory-Script.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Illyuzornye-pis�mena-_-Illusory-Script.json new file mode 100755 index 0000000..1c5845b --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Illyuzornye-pis�mena-_-Illusory-Script.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Иллюзорные письмена / Illusory Script", + "img": "icons/sundries/documents/document-writing-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы делаете надпись на пергаменте, бумаге или ином подходящем материале и связываете её с мощной иллюзией, которая существует, пока длится заклинание.
\nВам и тем существам, которых вы выберете при сотворении, надпись кажется обычной, написанной вашей рукой и содержащей тот смысл, который вы в неё вложили. Всем остальным надпись кажется непонятной, написанной на неизвестном или магическом языке. Как вариант, вы можете заставить надпись выглядеть, будто в ней написано нечто совсем иное, иной рукой и на другом языке (но это должен быть известный вам язык).
\nЕсли заклинание рассеять, исчезают и иллюзия, и изначальная надпись.
\nСущество с &reference[truesight]{истинным зрением} может прочесть скрытую надпись.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "day" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "somatic", + "material", + "ritual", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Inoy-oblik-_-Alter-self.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Inoy-oblik-_-Alter-self.json new file mode 100755 index 0000000..f0f9d12 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Inoy-oblik-_-Alter-self.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Иной облик / Alter self", + "img": "icons/creatures/claws/pincer-crab-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы принимаете иную форму. Творя это заклинание, выберите один из представленных вариантов. Его эффекты сохранятся, пока длится заклинание. В это время вы можете в качестве действия прекратить один из вариантов и получить пользу от другого.
Естественное оружие. У вас вырастают когти, клыки, шипы, рога или иное естественное оружие на ваш выбор. Ваши безоружные удары наносят [[/r 1d6]] дробящего, колющего или режущего урона, подходящего выбранному вами естественному оружию, и вы умелы в обращении с ним. Это естественное оружие — магическое, у вас бонус +1 к броскам атаки и урона им.
Подводная адаптация. Ваше тело адаптируется к подводной среде, у вас появляются жабры и перепонки между пальцами. Вы можете дышать под водой и получаете скорость плавания, равную вашей скорости ходьбы.
Смена облика. Вы меняете свою внешность. Вы сами решаете, как вы выглядите теперь, какой у вас рост, вес, черты лица, голос, волосы, цвет кожи и прочее. Вы можете выглядеть как представитель другой расы, но ваши параметры не меняются. Нельзя превратиться в существо другого размера и сильно отличающееся по форме. К примеру, если вы двуногий, нельзя стать четвероногим. В любой момент пока длится заклинание, вы можете использовать действие, чтобы снова сменить облик на другой.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "cha", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "cha" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselenie-ran-_-Cure-Wounds.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselenie-ran-_-Cure-Wounds.json new file mode 100755 index 0000000..448712b --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselenie-ran-_-Cure-Wounds.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Исцеление ран / Cure Wounds", + "img": "icons/magic/life/cross-explosion-burst-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselyayushchee-slovo-_-Healing-Word.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselyayushchee-slovo-_-Healing-Word.json new file mode 100755 index 0000000..0c525d8 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselyayushchee-slovo-_-Healing-Word.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Исцеляющее слово / Healing Word", + "img": "icons/magic/life/heart-cross-strong-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выбранное вами существо, которое вы видите в пределах дистанции, восстанавливает ПЗ в количестве [[/r 1d4]] + модификатор вашей заклинательной характеристики. Заклинание не действует на нежить и конструкции.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, исцеление увеличивается на [[/r 1d4]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselyayushchiy-moleben-_-Prayer-of-Healing.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselyayushchiy-moleben-_-Prayer-of-Healing.json new file mode 100755 index 0000000..fda6bc1 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Istselyayushchiy-moleben-_-Prayer-of-Healing.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Исцеляющий молебен / Prayer of Healing", + "img": "icons/magic/holy/prayer-hands-glowing-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "6", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Izmenenie-oblika-_-Disguise-self.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Izmenenie-oblika-_-Disguise-self.json new file mode 100755 index 0000000..079b6ec --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Izmenenie-oblika-_-Disguise-self.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Изменение облика / Disguise self", + "img": "icons/creatures/eyes/human-single-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы придаёте себе — включая вашу одежду, броню, оружие и прочее снаряжение совершенно иной вид, пока длится заклинание или пока вы не прекратите его, потратив действие.
\nВы можете казаться на 1 фут выше или ниже, более тощим, толстым или средним.
\nОднако Вы не можете полностью поменять своё тело — вам нужно принять форму с таким же набором конечностей. В остальном параметры иллюзии зависят только от вас. Перемены, вызванные этим заклинанием, не выдерживают физического осмотра. К примеру, если вы с помощью заклинания добавите к своему образу шляпу, сквозь неё будут проходить предметы и любой, кто к ней прикоснётся, не почувствует ничего, кроме волос на вашей голове.
\nЕсли с помощью заклинания вы кажетесь худым, любой, кто протянет к вам руку, упрётся в ваши невидимые бока. Чтобы понять, что вы изменили внешность, существо может использовать действие, чтобы изучить ваш облик, и должно пройти проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "cha" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kasanie-vampira-_-Vampiric-Touch.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kasanie-vampira-_-Vampiric-Touch.json new file mode 100755 index 0000000..bd8d69a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kasanie-vampira-_-Vampiric-Touch.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Касание вампира / Vampiric Touch", + "img": "icons/magic/death/mouth-bite-fangs-vampire.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "7", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khizhina-Leomunda-_-Leomund's-Tiny-Hut.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khizhina-Leomunda-_-Leomund's-Tiny-Hut.json new file mode 100755 index 0000000..936eda4 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khizhina-Leomunda-_-Leomund's-Tiny-Hut.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Хижина Леомунда / Leomund's Tiny Hut", + "img": "icons/magic/water/barrier-ice-shield.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Неподвижный силовой купол радиусом 10 футов появляется вокруг вас и над вами и остаётся недвижим, пока длится заклинание. Заклинание прекращает действовать, если вы покидаете его область.
\nВместе с вами под куполом могут уместиться девять существ среднего размера или меньше. Если в области есть существо крупнее среднего или существ больше девяти, заклинание не сработает. Существа и объекты, находившиеся под куполом в момент сотворения, могут свободно проходить сквозь него. Все остальные существа и объекты не могут в него проникнуть. Заклинания и прочие магические эффекты не могут ни проникать сквозь купол, ни быть сотворены сквозь него. Атмосфера под куполом комфортная и сухая вне зависимости от погоды снаружи. Пока длится заклинание, вы можете приказать куполу стать &reference[dimlight]{тускло освещённым} внутри или погрузиться в &reference[darkness]{темноту}. Снаружи купол непрозрачен и имеет цвет, который вы выберете, но изнутри он прозрачен.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khozhdenie-po-vode-_-Water-Walk.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khozhdenie-po-vode-_-Water-Walk.json new file mode 100755 index 0000000..45c63db --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khozhdenie-po-vode-_-Water-Walk.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Хождение по воде / Water Walk", + "img": "icons/magic/water/wave-water-rolling-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание даёт способность перемещаться по любой жидкой поверхности вроде воды, кислоты, грязи, снега, зыбучего песка или лавы, как если бы это была безопасная твёрдая поверхность (при этом существа, ходящие по раскалённой лаве, всё ещё могут получить урон от жары). Пока длится заклинание, эту способность получают до десяти согласных существ, которых вы видите в пределах дистанции.
\nЕсли сотворить это заклинание на существо, уже погруженное в жидкость, магия поднимет цель на поверхность со скоростью 60 футов в раунд.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khromaticheskiy-shar-_-Chromatic-Orb.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khromaticheskiy-shar-_-Chromatic-Orb.json new file mode 100755 index 0000000..e23d13d --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Khromaticheskiy-shar-_-Chromatic-Orb.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Хроматический шар / Chromatic Orb", + "img": "icons/magic/fire/orb-fireball-puzzle.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы бросаете сферу энергии диаметром 4 дюйма в существо, которое видите в пределах дистанции. Выберите тип урона: гром, кислота, молния, огонь, холод или яд, а затем совершите дистанционную атаку заклинанием по цели. При попадании существо получает [[/r 3d8]] урона выбранного типа.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "3d8", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kislotnaya-strela-Melfa-_-Melf's-Acid-Arrow.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kislotnaya-strela-Melfa-_-Melf's-Acid-Arrow.json new file mode 100755 index 0000000..52abc1d --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kislotnaya-strela-Melfa-_-Melf's-Acid-Arrow.json @@ -0,0 +1,120 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Кислотная стрела Мелфа / Melf's Acid Arrow", + "img": "icons/weapons/ammunition/arrow-broadhead-bent-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Мерцающая зелёная стрела поражает цель в пределах дистанции и взрывается брызгами кислоты. Соверите дистанционную атаку заклинанием по цели. При попадании цель получит [[/r 4d4]] урона кислотой немедленно и [[/r 2d4]] урона кислотой в конце своего следующего хода. При промахе стрела обрызгивает цель кислотой на половину начального урона, а в конце следующего хода урона не будет
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон (как начальный, так и последующий) увеличивается на [[/r 1d4]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d4[immediate]", + "acid" + ], + [ + "(@item.level)d4[end of turn]", + "acid" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kleymyashchaya-kara-_-Branding-Smite.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kleymyashchaya-kara-_-Branding-Smite.json new file mode 100755 index 0000000..87756eb --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kleymyashchaya-kara-_-Branding-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Клеймящая кара / Branding Smite", + "img": "icons/magic/fire/dagger-rune-enchant-flame-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием, пока длится заклинание, ваше оружие испускает астральное сияние и атака дополнительно наносит цели [[/r 2d6]] лучистого урона. Цель становится видимой, если была &reference[invisible]{невидима}, испускает &reference[dimlight]{тусклый свет} в радиусе 5 футов и не может стать невидимой, пока длится заклинание.
На высоких кругах. Если сотворяете это заклинание, используя ячейку 3-го круга или выше, дополнительный урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kontrzaklinanie-_-Counterspell.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kontrzaklinanie-_-Counterspell.json new file mode 100755 index 0000000..99cdd2a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Kontrzaklinanie-_-Counterspell.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Контрзаклинание / Counterspell", + "img": "icons/creatures/abilities/wolf-heads-swirl-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы пытаетесь помешать другому существу сотворить заклинание. Если существо творит заклинание 3-го круга или ниже, оно не срабатывает. Если это заклинание 4-го круга или выше, пройдите проверку вашей заклинательной характеристики. СЛ равна 10+ круг вражеского заклинания. При успехе заклинание существа не срабатывает.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, заклинание существа не срабатывает, если его круг не превышает круга использованной вами ячейки.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "1 ответное действие, которое вы совершаете, увидев, как существо в пределах 60 футов от вас творит заклинание" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "abil", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "1d20+@mod+@prof", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "somatic", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Korona-bezumiya-_-Crown-of-Madness.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Korona-bezumiya-_-Crown-of-Madness.json new file mode 100755 index 0000000..dc5d168 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Korona-bezumiya-_-Crown-of-Madness.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Корона безумия / Crown of Madness", + "img": "icons/equipment/head/helm-barbute-horned-gold-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Один гуманоид по вашему выбору, которого вы видите в пределах дистанции, должен пройти испытание Мудрости. При провале он &reference[charmed]{обворожён} вами, пока длится заклинание. Пока цель обворожена этим заклинанием, над её головой видна кривая корона из ломаного железа, а в глазах горит безумие.
Обворожённая цель в каждый свой ход перед перемещением должна использовать действие, чтобы совершить атаку ближнего боя по существу, кроме себя, которое вы мысленно выбираете. Если вы не выбираете существо или если в зоне досягаемости цели нет существ, цель может действовать в свой ход как обычно.
В ваши последующие ходы вы должны тратить действие, чтобы сохранять контроль над целью, иначе заклинание прекращает действовать. Кроме того, цель может проходить испытание Мудрости в конце каждого своего хода. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ledyanoe-prikosnovenie-_-Chill-Touch.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ledyanoe-prikosnovenie-_-Chill-Touch.json new file mode 100755 index 0000000..0b75a55 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ledyanoe-prikosnovenie-_-Chill-Touch.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ледяное прикосновение / Chill Touch", + "img": "icons/magic/lightning/claws-unarmed-strike-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте призрачную ладонь скелета в пространстве, занимаемом существом в пределах дистанции. Совершите дистанционную атаку заклинанием по существу, чтобы обдать его холодом могилы. При попадании цель получает [[/r 1d8]] некротического урона и не может восстанавливать ПЗ до начала вашего следующего хода. Все это время ладонь цепляется за цель.
\nЕсли вы попали этой атакой по нежити, она также получает помеху к броскам атаки по вам до конца вашего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го ([[/r 2d8]]), 11-го ([[/r 3d8]]) и 17-го уровня ([[/r 4d8]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Морозный луч голубого света бьёт в существо в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании она получает [[/r 1d8]] урона холодом и её скорость снижается на 10 футов до начала вашего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d8]] , когда вы достигаете 5-го ([[/r 2d8]] ), 11-го ([[/r 3d8]] ) и 17-го уровня ([[/r 4d8]] ).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Одно существо или незакрепленный объект на ваш выбор, которых вы видите в пределах дистанции, поднимается вертикально вверх на 20 футов или менее и остается там подвешенным, пока длится заклинание. Заклинание может поднять цель, весящую не более 500 фунтов. Если существо не согласно, оно может пройти испытание Выносливости, при успехе заклинание на него не подействует.
\nЦель может перемещаться, только подтягиваясь к неподвижным предметам или поверхностям в зоне ее досягаемости или отталкиваясь от них (например, от стен или потолка), что позволяет ей перемещаться как при лазании. Вы можете поднять или опустить цель на 20 или менее футов в ваш ход. Если ваша цель — вы сами, вы можете двигаться вверх или вниз в качестве части вашего перемещения. В противном случае вы можете использовать действие, чтобы переместить цель, и она должна оставаться в пределах дистанции заклинания.
\nКогда заклинание прекращает действовать, цель плавно опускается на землю, если ещё находилась в воздухе на тот момент.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Lozhnaya-zhizn�-_-False-Life.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Lozhnaya-zhizn�-_-False-Life.json new file mode 100755 index 0000000..b30f485 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Lozhnaya-zhizn�-_-False-Life.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ложная жизнь / False Life", + "img": "icons/magic/life/heart-cross-purple-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + 4", + "temphp" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Luch-bolezni-_-Ray-of-Sickness.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Luch-bolezni-_-Ray-of-Sickness.json new file mode 100755 index 0000000..f570767 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Luch-bolezni-_-Ray-of-Sickness.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Луч болезни / Ray of Sickness", + "img": "icons/magic/light/beam-rays-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Зелёный луч болезнетворной энергии бьет в существо в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель получает [[/r 2d8]] урона ядом и должна пройти испытание Выносливости. При провале цель &reference[poisoned]{отравлена} до конца вашего следующего хода.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "poison" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Lunnyy-svet-_-Moonbeam.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Lunnyy-svet-_-Moonbeam.json new file mode 100755 index 0000000..4e13b51 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Lunnyy-svet-_-Moonbeam.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Лунный свет / Moonbeam", + "img": "icons/environment/settlement/watchtower-moonlit-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d10", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskaya-aura-Nistula-_-Nystul's-Magic-Aura.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskaya-aura-Nistula-_-Nystul's-Magic-Aura.json new file mode 100755 index 0000000..aa83ae4 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskaya-aura-Nistula-_-Nystul's-Magic-Aura.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Магическая аура Нистула / Nystul's Magic Aura", + "img": "icons/equipment/finger/ring-faceted-gold-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы окутываете иллюзией существо или объект, которого коснулись, так что заклинания прорицания выдают о нем ложные сведения. Целью может быть согласное существо или объект, который не носит и не держит другое существо.
Когда вы творите это заклинание, выберите один из этих эффектов или оба. Они длятся, пока длится заклинание. Если сотворять это заклинание на то же существо или объект каждый день на протяжении 30 дней, используя один и тот же эффект, иллюзия будет существовать, пока не рассеяна.
Ложная аура. Вы меняете то, как цель выглядит для заклинаний и магических эффектов, таких как @Compendium[laaru-dnd5-hw.spells.O5tFJkuBe4IhqKEw]{Обнаружение магии}, определяющих магические ауры. Можете заставить немагический предмет казаться магическим, магический — немагическим или изменить ауру предмета так, что она будет казаться принадлежащей к определённой школе магии на ваш выбор. Когда вы применяете этот эффект к объекту, то можете сделать так, чтобы ложная магия казалась настоящей любому существу, использующему предмет.
Маскировка. Вы меняете то, как цель выглядит для заклинаний и магических эффектов, направленных на обнаружение конкретных типов существ, вроде Божественного чутья у паладина или условия срабатывания заклинания @Compendium[laaru-dnd5-hw.spells.9ZpJ79lDSnkltNCR]{Символ}. Вы выбираете тип существа, и все прочие заклинания и магические эффекты воспринимают цель, как если бы она была существом этого типа или мировоззрения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskaya-ruka-_-Mage-hand.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskaya-ruka-_-Mage-hand.json new file mode 100755 index 0000000..0d26853 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskaya-ruka-_-Mage-hand.json @@ -0,0 +1,139 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Магическая рука / Mage hand", + "img": "icons/magic/light/orbs-hand-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Призрачная рука появляется в воздухе в выбранной вами точке в пределах дистанции. Она существует до окончания длительности или пока вы не прекратите заклинание, потратив действие. Рука исчезает, если окажется более чем в 30 футах от вас или если вы снова сотворите это заклинание. Вы можете использовать действие, чтобы управлять рукой. С её помощью вы можете манипулировать предметами, открыть незапертую дверь или контейнер, убрать или достать предмет из открытого контейнера или выплеснуть содержимое пузырька. Вы можете перемещать руку на расстояние до 30 футов каждый раз, когда используете её. Рука не может атаковать, активировать магические предметы и поднимать более 10 фунтов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу, которое не носит броню, и его окружит защитное магическое поле, пока длится заклинание. Базовый КБ цели становится равным 13 + её модификатор Ловкости. Заклинание прекращает действовать, если цель надевает броню или если вы прекратите заклинание, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskiy-krug-_-Magic-Circle.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskiy-krug-_-Magic-Circle.json new file mode 100755 index 0000000..b208fcb --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Magicheskiy-krug-_-Magic-Circle.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Магический круг / Magic Circle", + "img": "icons/magic/symbols/star-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте цилиндр магической энергии радиусом 10 футов и высотой 20 футов с центром в точке на земле, которую видите в пределах дистанции. Там, где цилиндр пересекается с полом или иной поверхностью, загораются светящиеся руны, образуя круг.
Выберите один или несколько типов существ: бестии, небожители, нежить, феи или элементали. Круг воздействует на существ выбранных типов следующим образом:
Когда вы творите это заклинание, вы можете настроить его магию так, чтобы она действовала в обратном направлении: не позволяла существу определённого типа покидать цилиндр и защищала цели за его пределами.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, его длительность увеличивается на 1 час за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Malaya-illyuziya-_-Minor-Illusion.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Malaya-illyuziya-_-Minor-Illusion.json new file mode 100755 index 0000000..1037bc2 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Malaya-illyuziya-_-Minor-Illusion.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Малая иллюзия / Minor Illusion", + "img": "icons/magic/perception/eye-winged-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте звук или образ объекта в пределах дистанции. Он существует, пока длится заклинание. Иллюзия также рассеивается, если вы прекратите её в качестве действия или сотворите это заклинание снова.
\nЕсли вы создаёте звук, его громкость может варьироваться от шёпота до крика. Это может быть ваш или чей-то ещё голос, рёв льва, бой барабанов или что угодно ещё на ваш выбор. Звук может продолжаться всю длительность, или вы можете выбрать отдельные звуки, звучащие в разное время, пока длится заклинание.
\nЕсли вы создаёте образ объекта — например, кресло, грязные следы ног или сундучок, — он должен быть не больше 5-футового куба. Образ не может создавать звук, свет, запах или иной сенсорный эффект. Физическое взаимодействие с образом выдаёт, что это иллюзия, потому что предметы проходят сквозь неё.
\nЕсли существо использует действие, чтобы изучить звук или образ, оно может понять, что это иллюзия, успешно пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Если существо распознаёт иллюзию, она становится для него едва различимой
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Скользкое масло покрывает землю в 10-футовом квадрате с центром в точке в пределах дистанции.
Пока длится заклинание, эта область — &reference[difficultterrain]{пересечённая местность}. Когда появляется масло, каждое существо, стоящее в области действия, должно пройти испытание Ловкости. При провале существо &reference[prone]{распластывается}. Существо, которое входит в область или заканчивает в ней свой ход, тоже должно пройти испытание Ловкости, чтобы не распластаться.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Massovoe-istselyayushchee-slovo-_-Mass-Healing-Word.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Massovoe-istselyayushchee-slovo-_-Mass-Healing-Word.json new file mode 100755 index 0000000..7eafe4a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Massovoe-istselyayushchee-slovo-_-Mass-Healing-Word.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Массовое исцеляющее слово / Mass Healing Word", + "img": "icons/magic/life/heart-cross-strong-flame-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы произносите слова исцеления, и не более шести существ на ваш выбор, которых вы видите в пределах дистанции, восстанавливают ПЗ в количестве [[/r 1d4]] + модификатор вашей заклинательной характеристики. Заклинание не действует на нежить и конструкции.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, исцеление увеличивается на [[/r 1d4]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "6", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Melkie-fokusy-_-Prestidigitation.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Melkie-fokusy-_-Prestidigitation.json new file mode 100755 index 0000000..6525100 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Melkie-fokusy-_-Prestidigitation.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Мелкие фокусы / Prestidigitation", + "img": "icons/magic/light/hand-sparks-smoke-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это маленький магический трюк, которым пользуются заклинатели-новички для тренировки. Вы можете создать один из перечисленных магических эффектов в пределах дистанции:
\nЛюбой из таких эффектов вы можете прекратить, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, бросайте [[/r d20]] в конце каждого вашего хода. При результате 11 или более вы исчезаете с вашего текущего плана бытия и оказываетесь на Эфирном плане (если вы уже там, заклинание не срабатывает и потрачено впустую). В начале вашего следующего хода или если заклинание прекращает действовать, пока вы ещё на Эфирном плане, вы возвращаетесь в незанятое пространство на ваш выбор, которое видите в пределах 10 футов от места, с которого исчезли. Если в пределах этой дистанции нет незанятого пространства, вы появляетесь в ближайшем незанятом (случайно выбранном, если равных по удаленности вариантов несколько). Вы можете прекратить заклинание, потратив действие.
\nПока вы на Эфирном плане, вы можете видеть (в оттенках серого и только в пределах 60 футов) и слышать все, что происходит на том плане, откуда вы прибыли. Вы можете взаимодействовать только с другими существами на Эфирном плане, и только они могут воздействовать на вас. Существа на других планах не чувствуют вас и не могут с вами взаимодействовать, если только им не дает такую возможность особая способность или магия.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Mesto-istiny-_-Zone-of-Truth.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Mesto-istiny-_-Zone-of-Truth.json new file mode 100755 index 0000000..80cfd2c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Mesto-istiny-_-Zone-of-Truth.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Место истины / Zone of Truth", + "img": "icons/magic/light/orb-shadow-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте магическую зону, где невозможен обман. Она занимает сферу радиусом 15 футов вокруг выбранной вами точки в пределах дистанции. Пока длится заклинание, любое существо, впервые за ход вошедшее в область действия или начавшее в ней свой ход, должно пройти испытание Харизмы. При провале существо не может намеренно произнести ни слова лжи, пока находится в области. Вы точно знаете, успешно ли существо прошло испытание.
\nСущество, находящееся под влиянием этого заклинания, знает об этом и может избегать ответов на неудобные вопросы. Такое существо будет отвечать уклончиво, но формально в пределах правды.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Metka-okhotnika-_-Hunter's-Mark.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Metka-okhotnika-_-Hunter's-Mark.json new file mode 100755 index 0000000..de90a63 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Metka-okhotnika-_-Hunter's-Mark.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Метка охотника / Hunter's Mark", + "img": "icons/skills/ranged/target-bullseye-arrow-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Milost�-bozhestva-_-Divine-Favor.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Milost�-bozhestva-_-Divine-Favor.json new file mode 100755 index 0000000..55b48aa --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Milost�-bozhestva-_-Divine-Favor.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Милость божества / Divine Favor", + "img": "icons/skills/ranged/wand-attack-beam-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nanesenie-ran-_-Inflict-wounds.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nanesenie-ran-_-Inflict-wounds.json new file mode 100755 index 0000000..7d371b3 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nanesenie-ran-_-Inflict-wounds.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Нанесение ран / Inflict wounds", + "img": "icons/magic/control/voodoo-doll-pain-damage-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Совершите атаку заклинание в ближнем бою по существу в пределах зоны досягаемости. При попадании цель получает [[/r 3d10]] некротического урона.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d10", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Napravlyayushchiy-luch-_-Guiding-Bolt.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Napravlyayushchiy-luch-_-Guiding-Bolt.json new file mode 100755 index 0000000..faff6c1 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Napravlyayushchiy-luch-_-Guiding-Bolt.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Направляющий луч / Guiding Bolt", + "img": "icons/magic/light/beam-rays-blue-large.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вспышка света бьёт в выбранное вами существо в пределах дистанции. Совершите дистанционную атаку заклинанием по этой цели. При попадании цель получает [[/r 4d6]] лучистого урона, а следующий бросок атаки против этой цели до конца вашего следующего хода получает преимущество благодаря тусклому мистическому свету, который исходит от неё.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d6", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nastavlenie-_-Guidance.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nastavlenie-_-Guidance.json new file mode 100755 index 0000000..6ffcd1a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nastavlenie-_-Guidance.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Наставление / Guidance", + "img": "icons/skills/ranged/arrow-flying-ornate-gold.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному существу. Пока длится заклинание, цель может один раз бросить [[/r d4]] и добавить результат броска к любой проверке характеристики. Кость можно бросить либо до проверки, либо после. Затем заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте образ объекта, существа или иного видимого явления, размером не больше 15-футового куба. Образ появляется в точке в пределах дистанции и существует, пока длится заклинание. Образ сугубо визуальный, его не сопровождают звуки, запахи или иные сенсорные эффекты.
\nВы можете использовать действие, чтобы переместить образ в любую другую точку в пределах дистанции. Когда образ перемещается, вы можете изменять его так, чтобы его движение казалось естественным. К примеру, если вы перемещаете образ существа, можете заставить его перебирать ногами, будто оно идёт.
\nФизическое взаимодействие с образом выдаёт, что это иллюзия, потому что предметы проходят сквозь неё. Существо, которое использует действие, чтобы изучить образ, сможет понять, что это иллюзия, успешно пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. Если существо распознаёт иллюзию, оно может видеть сквозь образ.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Neobnaruzhimost�-_-Nondetection.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Neobnaruzhimost�-_-Nondetection.json new file mode 100755 index 0000000..df7c808 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Neobnaruzhimost�-_-Nondetection.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Необнаружимость / Nondetection", + "img": "icons/magic/symbols/question-stone-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nevidimost�-_-Invisibility.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nevidimost�-_-Invisibility.json new file mode 100755 index 0000000..2ade7c6 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nevidimost�-_-Invisibility.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Невидимость / Invisibility", + "img": "icons/creatures/reptiles/chameleon-camouflage-green-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Существо, которого вы коснулись, становится &reference[invisible]{невидимым}, пока длится заклинание. Все, что цель носит или держит, остаётся невидимым, пока оно у цели. Заклинание прекращает действовать для цели, если она атакует или творит заклинание.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nevidimyy-sluga-_-Unseen-Servant.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nevidimyy-sluga-_-Unseen-Servant.json new file mode 100755 index 0000000..794e187 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nevidimyy-sluga-_-Unseen-Servant.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Невидимый слуга / Unseen Servant", + "img": "icons/creatures/magical/spirit-undead-horned-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт &reference[invisible]{невидимого}, неразумного и бесформенного слугу среднего размера, выполняющего простые задания согласно вашим приказам, пока длится заклинание. Слуга появляется в незанятом пространстве на земле в пределах дистанции. У него КБ 10, 1 ПЗ и Сила 2, он не может атаковать. Если его ПЗ снижаются до 0, заклинание прекращает действовать.
Один раз в любой ваш ход в качестве бонусного действия вы можете мысленно приказать слуге переместиться на расстояние до 15 футов и взаимодействовать с объектом. Слуга может выполнять простые задачи подобно слуге-человеку, например приносить вещи, убираться, чинить сломанное, складывать одежду, зажигать пламя, подавать еду и разливать вино. Отданный вами приказ слуга выполняет так хорошо, как может, а после выполнения ждёт новых приказов.
Если вы приказываете слуге выполнить задание, для которого надо переместиться далее чем на 60 футов от вас, заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nizshee-vosstanovlenie-_-Lesser-Restoration.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nizshee-vosstanovlenie-_-Lesser-Restoration.json new file mode 100755 index 0000000..ffcdd7c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nizshee-vosstanovlenie-_-Lesser-Restoration.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Низшее восстановление / Lesser Restoration", + "img": "icons/magic/nature/leaf-oak-wreath-glow-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу и исцелите одну его болезнь или состояние. Из состояний можно исцелить &reference[blinded]{слепоту}, &reference[deafened]{глухоту}, &reference[paralyzed]{паралич} или &reference[poisoned]{отравление}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nochnoe-zrenie-_-Darkvision.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nochnoe-zrenie-_-Darkvision.json new file mode 100755 index 0000000..ddfdf65 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Nochnoe-zrenie-_-Darkvision.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ночное зрение / Darkvision", + "img": "icons/creatures/magical/construct-golem-stone-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу, и оно получит способность видеть в темноте. Пока длится заклинание, у этого существа &reference[darkvision]{Ночное зрение} в радиусе 60 футов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obereg-ot-oruzhiya-_-Blade-Ward.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obereg-ot-oruzhiya-_-Blade-Ward.json new file mode 100755 index 0000000..d8d27b4 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obereg-ot-oruzhiya-_-Blade-Ward.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Оберег от оружия / Blade Ward", + "img": "icons/skills/melee/sword-damaged-broken-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы протягиваете руку и чертите защитный знак в воздухе. До конца вашего следующего хода у вас @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к дробящему, колющему и режущему урону от атак оружием.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы наполняете воздух вращающимися кинжалами в 5-футовом кубе с центром в выбранной вами точке в пределах дистанции. Существо получает [[/r 4d4]] режущего урона, когда впервые за ход входит в область действия заклинания или начинает в ней свой ход.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон увеличивается на [[/r 2d4]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "4d4", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oblako-tumana-_-Fog-Cloud.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oblako-tumana-_-Fog-Cloud.json new file mode 100755 index 0000000..40d60a1 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oblako-tumana-_-Fog-Cloud.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Облако тумана / Fog Cloud", + "img": "icons/magic/air/fog-gas-smoke-swirling-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-lovushek-_-Find-Traps.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-lovushek-_-Find-Traps.json new file mode 100755 index 0000000..3f32767 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-lovushek-_-Find-Traps.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение ловушек / Find Traps", + "img": "icons/environment/traps/trap-jaw-tan.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы ощущаете присутствие любой ловушки в пределах дистанции, если она также на линии видимости. Ловушкой это заклинание считает все, что может причинить неожиданный эффект, который считается вредным или нежелательным, и что намеренно было создано с этой целью. Таким образом, заклинание указывает область действия заклинаний @Compendium[laaru-dnd5-hw.spells.sQSnAqsvleQJvtie]{Сигнал тревоги} и @Compendium[laaru-dnd5-hw.spells.BxF5Gz9NuDGN52zF]{Сторожевая печать}, а также механическую яму-ловушку, но не может заметить простой обветшалый пол, готовый обвалиться потолок или яму-промоину.
\nЗаклинание просто указывает, что ловушка здесь есть. Вы не узнаете местонахождение каждой ловушки, но узнаете примерную суть опасности, которую она представляет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-magii-_-Detect-magic.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-magii-_-Detect-magic.json new file mode 100755 index 0000000..1174b54 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-magii-_-Detect-magic.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение магии / Detect magic", + "img": "icons/magic/unholy/hands-cloud-light-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы чувствуете присутствие магии в пределах 30 футов от вас. Почувствовав магию, можете использовать действие, чтобы разглядеть слабую ауру вокруг любого видимого существа или объекта в области действия, содержащего магию, и узнать его @Compendium[laaru-dnd5-hw.intro.V7fkbFEaNipZXVjU]{школу магии}, если она есть.
\nЗаклинание проходит через большинство препятствий. Его блокируют 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "ritual", + "vocal", + "somatic", + "concentration", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-mysley-_-Detect-Thoughts.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-mysley-_-Detect-Thoughts.json new file mode 100755 index 0000000..1d66a80 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-mysley-_-Detect-Thoughts.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение мыслей / Detect Thoughts", + "img": "icons/magic/lightning/bolt-strike-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы можете прочесть мысли некоторых существ. Когда вы сотворяете это заклинание или в качестве действия в каждый ваш ход, вы можете сфокусировать свой разум на одном существе, которое видите в пределах 30 футов от вас. Если у выбранного вами существа Интеллект 3 или ниже или оно не говорит ни на одном языке, заклинание на него не действует
\nВы сперва узнаете поверхностные мысли существа что у него на уме в данный момент. В качестве действия вы можете либо переключить внимание на мысли другого существа, либо попытаться проникнуть глубже в разум того же существа. Если вы проникаете глубже, цель должна пройти испытание Мудрости. При провале вы понимаете ее рассуждения (если есть), эмоциональное состояние и то, что для нее важно (например, что ее волнует, что она любит или ненавидит). При успехе заклинание прекращает действовать. В любом случае цель узнаёт, что вы читали её мысли. Если вы не переключитесь на мысли другого существа, цель может использовать действие в свой ход, чтобы пройти проверку Интеллекта в состязании с вашей проверкой Интеллекта; при успехе цели заклинание прекращает действовать.
\nВопросы, заданные цели вслух, могут естественным образом направить течение её мыслей, так что заклинание особенно полезно при допросе.
\nВы также можете использовать его, чтобы обнаружить присутствие мыслящих существ, которых не видите. Когда вы сотворяете это заклинание или в качестве действия, пока оно длится, вы можете поискать чужие мысли в пределах 30 футов от вас. Заклинание проходит через большинство препятствий. Его блокируют 2 фута камня, 2 дюйма обычного металла или тонкий лист свинца. Нельзя обнаружить мысли существа с Интеллектом 3 или ниже или такого, которое не говорит ни на одном языке.
\nОбнаружив присутствие существа таким образом, вы можете читать его мысли до конца длительности заклинания, как описано выше, даже если не видите цель, но только пока она остаётся в пределах дистанции.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "self", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-yada-i-bolezni-_-Detect-Poison-and-Disease.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-yada-i-bolezni-_-Detect-Poison-and-Disease.json new file mode 100755 index 0000000..83f2ff6 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-yada-i-bolezni-_-Detect-Poison-and-Disease.json @@ -0,0 +1,115 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение яда и болезни / Detect Poison and Disease", + "img": "icons/skills/toxins/poison-bottle-open-fire-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы чувствуете присутствие и местоположение ядов, ядовитых существ и болезней в пределах 30 футов от вас. Вы также опознаёте типы ядов, ядовитых существ и болезней в каждом случае.
\nЗаклинание проходит через большинство препятствий. Его блокируют 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "concentration", + "vocal", + "somatic", + "material", + "ritual", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-zla-i-dobra-_-Detect-evil-and-good.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-zla-i-dobra-_-Detect-evil-and-good.json new file mode 100755 index 0000000..fc8486f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Obnaruzhenie-zla-i-dobra-_-Detect-evil-and-good.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Обнаружение зла и добра / Detect evil and good", + "img": "icons/magic/unholy/orb-contained-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, вы знаете, есть ли в пределах 30 футов от вас аберрация, бестия, небожитель, нежить, фея или элементаль, а также местонахождение этого существа. Аналогично вы узнаёте, если в пределах 30 футов есть место или объект, магически освящённый или осквернённый. Заклинание проходит через большинство препятствий. Его блокируют 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ochishchenie-edy-i-pit�ya-_-Purify-Food-and-Drink.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ochishchenie-edy-i-pit�ya-_-Purify-Food-and-Drink.json new file mode 100755 index 0000000..4d71e64 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ochishchenie-edy-i-pit�ya-_-Purify-Food-and-Drink.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Очищение еды и питья / Purify Food and Drink", + "img": "icons/consumables/meat/hock-leg-stylized.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "ritual", + "vocal", + "somatic", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-klinok-_-Flame-Blade.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-klinok-_-Flame-Blade.json new file mode 100755 index 0000000..a3db68d --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-klinok-_-Flame-Blade.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный клинок / Flame Blade", + "img": "icons/magic/fire/dagger-rune-enchant-flame-strong-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "(floor((@item.level) / 2) + 2)d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-shar-_-Fireball.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-shar-_-Fireball.json new file mode 100755 index 0000000..823cb56 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-shar-_-Fireball.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный шар / Fireball", + "img": "icons/magic/fire/projectile-fireball-smoke-strong-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-snaryad-_-Fire-bolt.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-snaryad-_-Fire-bolt.json new file mode 100755 index 0000000..a29b3ab --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ognennyy-snaryad-_-Fire-bolt.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Огненный снаряд / Fire bolt", + "img": "icons/magic/fire/projectile-bolt-zigzag-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы бросаете комок огня в существо или объект в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель получает [[/r 1d10]] урона огнём. Горючий объект, по которому попало это заклинание, загорается, если его не носят и не держат.
\nУрон заклинания увеличивается на [[/r 1d10]], когда вы достигаете 5-го ([[/r 2d10]]), 11-го ([[/r 3d10]]) и 17-го уровня ([[/r 4d10]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы втыкаете четыре немагических боеприпаса (стрелы или арбалетных болта) в землю в пределах дистанции и сотворяете на них магию, чтобы защищать эту область. Пока длится заклинание, всякий раз, когда любое существо, кроме вас, впервые за ход проходит в пределах 30 футов от боеприпаса или заканчивает там свой ход, один из боеприпасов взлетает и атакует его. Существо должно пройти испытание Ловкости, при провале оно получает [[/r 1d6]] колющего урона. Боеприпас при этом уничтожается. Заклинание прекращает действовать, когда не остаётся боеприпасов.
Когда вы творите заклинание, вы можете указать любых существ, против которых заклинание не будет срабатывать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, количество используемых боеприпасов увеличивается на два за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Opalyayushchiy-luch-_-Scorching-Ray.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Opalyayushchiy-luch-_-Scorching-Ray.json new file mode 100755 index 0000000..6041270 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Opalyayushchiy-luch-_-Scorching-Ray.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опаляющий луч / Scorching Ray", + "img": "icons/magic/light/beam-rays-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "3", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Opoznanie-_-Identify.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Opoznanie-_-Identify.json new file mode 100755 index 0000000..d52d186 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Opoznanie-_-Identify.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опознание / Identify", + "img": "icons/sundries/scrolls/scroll-bound-blue-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выберите объект и прикасайтесь к нему, пока творите заклинание. Если это магический предмет или иной объект, наполненный магией, вы узнаете его свойства и как его использовать, требует ли он настроенности и сколько у него зарядов, если они есть. Вы также узнаете, воздействуют ли заклинания на предмет и какие. Если предмет создан заклинанием, вы узнаёте каким. Если вместо этого во время сотворения прикасаться к существу, вы узнаете, воздействуют ли какие-то заклинания на него и какие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oputyvanie-_-Entangle.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oputyvanie-_-Entangle.json new file mode 100755 index 0000000..68eb16c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oputyvanie-_-Entangle.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опутывание / Entangle", + "img": "icons/creatures/tentacles/tentacle-earth-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Цепкие лозы и лианы выползают из земли в 20-футовом квадрате, начинающемся с точки в пределах дистанции. Пока длится заклинание, эти растения превращают область действия в пересечённую местность.
Каждое существо в области в момент сотворения должно пройти испытание Силы. При провале оно &reference[restrained]{обездвижено} лозами, пока длится заклинание. Существо, обездвиженное лозами, может использовать действие, чтобы пройти проверку Силы. СЛ равна СЛ испытаний против ваших заклинаний. При успехе существо освобождается.
Когда заклинание прекращает действовать, созданные растения увядают.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oputyvayushchiy-udar-_-Ensnaring-Strike.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oputyvayushchiy-udar-_-Ensnaring-Strike.json new file mode 100755 index 0000000..d065109 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oputyvayushchiy-udar-_-Ensnaring-Strike.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Опутывающий удар / Ensnaring Strike", + "img": "icons/magic/nature/root-vine-hand-strike.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием, пока длится заклинание, в точке попадания вырастает масса извивающихся шипастых лиан. Цель должна пройти испытание Силы, при провале она &reference[restrained]{обездвижена} магическими лианами, пока длится заклинание. Существо крупного размера и более получает преимущество к испытанию. При успехе цели лианы увядают.
Пока цель обездвижена лианами, она получает [[/r 1d6]] колющего урона в начале каждого своего хода. Существо, обездвиженное лианами, или другое существо, способное его коснуться, может использовать действие, чтобы пройти проверку Силы. СЛ равна СЛ испытаний против ваших заклинаний. При успехе цель освобождается.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oslablyayushchiy-luch-_-Ray-of-Enfeeblement.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oslablyayushchiy-luch-_-Ray-of-Enfeeblement.json new file mode 100755 index 0000000..a5f1801 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Oslablyayushchiy-luch-_-Ray-of-Enfeeblement.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ослабляющий луч / Ray of Enfeeblement", + "img": "icons/creatures/magical/humanoid-silhouette-glowing-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Чёрный луч ослабляющей энергии исторгается из вашего пальца в сторону существа в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель сможет наносить своими атаками оружием, связанными с силой, только половину обычного урона, пока длится заклинание.
\nВ конце каждого своего хода цель может пройти испытание Выносливости против заклинания. При успехе заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ozhivlenie-mertvetsov-_-Animate-Dead.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ozhivlenie-mertvetsov-_-Animate-Dead.json new file mode 100755 index 0000000..f59700c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ozhivlenie-mertvetsov-_-Animate-Dead.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Оживление мертвецов / Animate Dead", + "img": "icons/magic/death/skeleton-skull-soul-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт слугу-нежить. Выберите груду костей или труп среднего или небольшого гуманоида в пределах дистанции. Ваше заклинание наделяет покойника нечестивым подобием жизни и превращает его в нежить. Цель становится скелетом, если вы выбрали кости, или зомби, если это был труп (параметры существа есть у мастера). В каждый ваш ход вы можете использовать бонусное действие, чтобы отдать мысленный приказ любому существу, которое вы создали этим заклинанием, если оно в пределах 60 футов от вас. Если вы контролируете несколько существ, можете отдать одинаковый приказ любому их количеству одновременно. Вы можете решить, какое действие совершит существо и куда переместится в свой следующий ход, а можете отдать приказ общего характера, например охранять конкретную комнату или коридор. Если вы не прикажете ничего, то существо будет только защищаться от враждебных существ. Получив приказ, существо следует ему до выполнения задачи. Существо остаётся под вашим контролем 24 часа, после чего перестаёт подчиняться вашим приказам. Чтобы сохранить контроль над существом ещё на 24 часа, вам надо снова сотворить на него это заклинание, пока нынешние 24 часа не истекли. Подобное применение заклинания позволяет вам сохранить контроль над четырьмя или менее существами, которых вы оживили этим заклинанием, вместо того, чтобы оживлять новое.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, то можете оживить или продлить контроль над двумя дополнительными существами-нежитью за каждый круг ячейки выше 3-го. Каждое из этих существ должно быть создано из отдельного трупа или груды костей.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Paralich-gumanoida-_-Hold-person.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Paralich-gumanoida-_-Hold-person.json new file mode 100755 index 0000000..227d7f0 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Paralich-gumanoida-_-Hold-person.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паралич гуманоида / Hold person", + "img": "icons/magic/control/debuff-chains-shackle-movement-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите гуманоида, которого видите в пределах дистанции. Цель должна пройти испытание Мудрости, при провале она &reference[paralyzed]{парализована}, пока длится заклинание. В конце каждого своего хода цель может пройти еще одно испытание Мудрости. При успехе заклинание прекращает действовать на цель.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, то можете выбрать целью одного дополнительного гуманоида за каждый круг ячейки выше 2-го. Эти гуманоиды должны быть в пределах 30 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Paryashchiy-disk-Tenzera-_-Tenser's-Floating-Disk.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Paryashchiy-disk-Tenzera-_-Tenser's-Floating-Disk.json new file mode 100755 index 0000000..6b569da --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Paryashchiy-disk-Tenzera-_-Tenser's-Floating-Disk.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Парящий диск Тензера / Tenser's Floating Disk", + "img": "icons/consumables/food/candy-pattie-pink-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание создаёт круглый горизонтальный силовой диск диаметром з фута и толщиной 1 дюйм. Он парит в 3 футах от земли в незанятом пространстве на ваш выбор, которое вы видите в пределах дистанции. Диск существует, пока длится заклинание, и может выдерживать вес до 500 фунтов. Если на него поместить больший вес, заклинание прекращает действовать и все, что было на диске, падает наземь
Диск неподвижен, пока вы в пределах 20 футов от него. Если вы переместитесь за пределы 20 футов, диск полетит вслед за вами, чтобы оставаться в пределах 20 футов от вас. Он может лететь над пересеченной местностью, вверх и вниз по ступенями склонам, но неспособен преодолеть уступ высотой более 10 футов. К примеру, диск не может перелететь через яму глубиной 10 футов, а если он создан на ее дне — не сможет ее покинуть.
Если вы окажетесь более чем в 100 футах от диска (например, потому что он не смог преодолеть препятствие, следуя за вами), заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pauch�i-lapy-_-Spider-Climb.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pauch�i-lapy-_-Spider-Climb.json new file mode 100755 index 0000000..b974660 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pauch�i-lapy-_-Spider-Climb.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паучьи лапы / Spider Climb", + "img": "icons/creatures/invertebrates/spider-web-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pautina-_-Web.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pautina-_-Web.json new file mode 100755 index 0000000..c15fbd3 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pautina-_-Web.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Паутина / Web", + "img": "icons/creatures/webs/web-spider-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете массу плотной липкой паутины в выбранной вами точке в пределах дистанции. Паутина наполняет 20-футовый куб, исходящий из этой точки, пока длится заклинание.
Паутина создаёт &reference[difficultterrain]{пересечённую местность} и слегка затрудняет в ней видимость. Если не закрепить паутину на двух твердых поверхностях (вроде стен или деревьев) или не нанести ее слоями на пол, стену или потолок, паутина обвалится и заклинание прекратит действовать в начале вашего следующего хода. Глубина слоёв паутины на плоской поверхности равна 5 футам.
Каждое существо, которое начинает свой ход в паутине или вошло в нее в свой ход, должно пройти испытание Ловкости. При провале существо становится &reference[restrained]{обездвиженным}, пока находится в паутине или пока не освободится.
&reference[restrained]{Обездвиженное} паутиной существо может потратить действие, чтобы пройти проверку Силы со Сл, равной СЛ испытаний против ваших заклинаний. При успехе оно перестаёт быть обездвиженным.
Паутина горюча. Любой 5-футовый куб паутины, попав в огонь, сгорает за 1 раунд, нанося [[/r 2d4]] урона огнём любому существу, которое начнёт свой ход в нём.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plashch-krestonostsa-_-Crusader's-Mantle.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plashch-krestonostsa-_-Crusader's-Mantle.json new file mode 100755 index 0000000..853c270 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plashch-krestonostsa-_-Crusader's-Mantle.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Плащ крестоносца / Crusader's Mantle", + "img": "icons/magic/holy/angel-wings-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Священная мощь исходит из вас в виде ауры с радиусом 30 футов и пробуждает отвагу в дружественных вам существах. Пока длится заклинание, аура перемещается вместе с вами — вы остаетесь в её центре. Находясь в ауре, каждое невраждебное вам существо (включая вас) дополнительно наносит [[/r 1d4]] лучистого урона, когда попадает атакой оружием.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plavnoe-padenie-_-Feather-Fall.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plavnoe-padenie-_-Feather-Fall.json new file mode 100755 index 0000000..05da66c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plavnoe-padenie-_-Feather-Fall.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Плавное падение / Feather Fall", + "img": "icons/commodities/materials/feather-white-glowing-fire.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "1 ответное действие, совершаемое, когда вы или существо в пределах 60 футов падаете" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "material", + "vocal", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plyashushchie-ogon�ki-_-Dancing-lights.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plyashushchie-ogon�ki-_-Dancing-lights.json new file mode 100755 index 0000000..f1ee7c6 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Plyashushchie-ogon�ki-_-Dancing-lights.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пляшущие огоньки / Dancing lights", + "img": "icons/magic/light/orbs-firefly-hand-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте до четырёх огоньков размером с факелы в пределах дистанции, придав им форму факелов, фонарей или светящихся шаров. Они парят в воздухе, пока длится заклинание. Вы можете также соединить четыре огонька в один светящийся силуэт в форме гуманоида среднего размера. Независимо от формы, каждый огонёк испускает тусклый свет в радиусе 10 футов.
\nВ качестве бонусного действия в свой ход вы можете переместить огоньки на расстояние до 60 футов в пределах дистанции. Каждый огонёк должен находиться в пределах 20 футов от другого, созданного тем же заклинанием. Если огонёк выходит за пределы дистанции заклинания, он гаснет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание чинит одну поломку или разрыв в объекте, которого вы коснулись, например порванное звено цепочки, сломанный пополам ключ, разорванный плащ или протёкший бурдюк. Если разрыв или поломка не более 1 футa в любом измерении, вы можете их починить, не оставив даже следа прежнего повреждения.
\nЗаклинание может физически починить магические предметы и конструкции, но не может восстановить в них магию.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Назовите или опишите знакомый вам предмет. Вы ощутите, в каком направлении он находится, если он в пределах 1 000 футов от вас. Если предмет перемещается, вы узнаете, в каком направлении.
\nЗаклинание может найти конкретный знакомый вам предмет, если вы хоть раз видели его вблизи (в пределах 30 футов). Как вариант, заклинание может найти ближайший предмет подобного вида, например определённого вида одежду, украшение, мебель, инструмент или оружие.
\nЗаклинание не может найти предмет, если прямой путь между ним и вами преграждает слой свинца любой толщины, даже тонкий лист.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poisk-zhivotnogo-ili-rasteniya-_-Locate-Animals-or-Plants.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poisk-zhivotnogo-ili-rasteniya-_-Locate-Animals-or-Plants.json new file mode 100755 index 0000000..d963353 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poisk-zhivotnogo-ili-rasteniya-_-Locate-Animals-or-Plants.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поиск животного или растения / Locate Animals or Plants", + "img": "icons/creatures/amphibians/treefrog-leaf-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poliglot-_-Tongues.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poliglot-_-Tongues.json new file mode 100755 index 0000000..b303961 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poliglot-_-Tongues.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полиглот / Tongues", + "img": "modules/laaru-dnd5-hw/assets/icons/feat/phb-linguist.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это заклинание позволяет существу, которого вы коснулись, понимать устную речь на любых языках, которую оно слышит. Кроме того, когда цель говорит, любое существо, знающее хоть один язык и способное слышать цель, понимает речь цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "material", + "vocal", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Polnotsennyy-obraz-_-Major-Image.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Polnotsennyy-obraz-_-Major-Image.json new file mode 100755 index 0000000..5ed4c8f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Polnotsennyy-obraz-_-Major-Image.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полноценный образ / Major Image", + "img": "icons/magic/nature/mushrooms-fire-glow-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Polyot-_-Fly.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Polyot-_-Fly.json new file mode 100755 index 0000000..8993e55 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Polyot-_-Fly.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Полёт / Fly", + "img": "icons/creatures/abilities/wings-birdlike-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному существу. Цель получает скорость полёта 60 футов, пока длится заклинание. Когда заклинание прекращает действовать, цель падает, если находилась в воздухе и не смогла избежать падения.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pomoshch�-_-Aid.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pomoshch�-_-Aid.json new file mode 100755 index 0000000..2c47ede --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pomoshch�-_-Aid.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Помощь / Aid", + "img": "icons/magic/life/cross-area-circle-green-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "3", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ponimanie-yazykov-_-Comprehend-Languages.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ponimanie-yazykov-_-Comprehend-Languages.json new file mode 100755 index 0000000..8b2e41c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ponimanie-yazykov-_-Comprehend-Languages.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Понимание языков / Comprehend Languages", + "img": "icons/skills/trades/academics-book-study-runes.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, вы понимаете буквальное значение услышанных вами слов, произнесённых на любом языке. Вы также понимаете надписи на любом языке, которые видите, но для этого нужно прикоснуться к тому, на чём они написаны. На чтение одной страницы текста уходит около 1 минуты.
\nЗаклинание не расшифровывает тайные послания и символы вроде волшебного знака, которые не входят в обычный язык.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Porcha-_-Bane.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Porcha-_-Bane.json new file mode 100755 index 0000000..7c9cf55 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Porcha-_-Bane.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Порча / Bane", + "img": "icons/magic/death/skull-horned-white-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "3", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poryv-vetra-_-Gust-of-wind.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poryv-vetra-_-Gust-of-wind.json new file mode 100755 index 0000000..74236ac --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poryv-vetra-_-Gust-of-wind.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Порыв ветра / Gust of wind", + "img": "icons/magic/nature/leaf-juggle-humanoid-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Порыв сильного ветра длиной 60 футов и шириной 10 футов дует от вас в выбранном вами направлении, пока длится заклинание. Каждое существо, начавшее свой ход на линии ветра, должно пройти испытание Силы. При провале его оттолкнёт на 15 футов от вас по направлению ветра. Любое существо на линии ветра должно тратить 2 фута скорости за каждый фут перемещения, если перемещается к вам.
Порыв рассеивает газы и пары, гасит свечи, факелы и прочие незащищённые источники пламени в области. Защищённое пламя, например в фонарях, он заставляет дико трепетать и с шансом [[/r 1d100]]{50%} гасит и его.
В качестве бонусного действия в любой свой ход, пока длится заклинание, вы можете поменять направление, в котором ветер дует от вас.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "line", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poslanie-_-Sending.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poslanie-_-Sending.json new file mode 100755 index 0000000..08cd5c2 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Poslanie-_-Sending.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Послание / Sending", + "img": "icons/sundries/scrolls/scroll-writing-tan-grey.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы отправляете короткое послание (не более 25 слов) существу, с которым знакомы. Существо слышит послание в своём разуме, понимает, что оно отправлено вами, если знает вас, и может немедленно вам мысленно ответить. Заклинание позволяет существам со значением Интеллекта не менее 1 понять смысл послания.
Вы можете отправить послание на любое расстояние и даже на другие планы бытия. Однако если цель на другом плане, есть шанс [[/r 1d100]]{5%} , что послание её не достигнет.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Posmertnyy-pokoy-_-Gentle-Repose.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Posmertnyy-pokoy-_-Gentle-Repose.json new file mode 100755 index 0000000..efbd2a7 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Posmertnyy-pokoy-_-Gentle-Repose.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Посмертный покой / Gentle Repose", + "img": "icons/magic/light/light-candles-lit-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к трупу или другим останкам. Пока длится заклинание, цель защищена от разложения и не может стать нежитью. Заклинание также фактически продлевает время, за которое цель можно вернуть к жизни, поскольку дни, проведенные под влиянием заклинания, не учитываются для временных ограничений заклинаний, подобных @Compendium[laaru-dnd5-hw.spells.TXndfwZDERV0H0gI]{Возвращение к жизни}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "day" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pospeshnoe-otstuplenie-_-Expeditious-Retreat.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pospeshnoe-otstuplenie-_-Expeditious-Retreat.json new file mode 100755 index 0000000..7c2b409 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pospeshnoe-otstuplenie-_-Expeditious-Retreat.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Поспешное отступление / Expeditious Retreat", + "img": "icons/creatures/mammals/rabbit-movement-glowing-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Это заклинание позволяет вам перемещаться с невероятной скоростью. Когда вы сотворяете это заклинание, а также в качестве бонусного действия в каждый ваш следующий ход, пока длится заклинание, вы можете совершить действие @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Potustoronniy-razryad-_-Eldritch-Blast.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Potustoronniy-razryad-_-Eldritch-Blast.json new file mode 100755 index 0000000..7fc7aaa --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Potustoronniy-razryad-_-Eldritch-Blast.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Потусторонний разряд / Eldritch Blast", + "img": "icons/magic/lightning/bolt-strike-sparks-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Трескучий разряд энергии бьет в существо в пределах дистанции. Совершите дистанционную атаку заклинанием по цели. При попадании цель получает [[/r 1d10]] урона силой.
\nЗаклинание создаёт больше разрядов, когда вы достигаете высоких уровней: два разряда на 5-м уровне, три на 11-м и четыре на 17-м. Вы можете направить разряды как в одну и ту же цель, так и в разные. Совершите по отдельному броску атаки для каждого разряда.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы отдаете приказ из одного слова существу, которое вы видите в пределах дистанции. Цель должна успешно пройти испытание Мудрости, иначе в следующий свой ход она исполнит ваш приказ. Заклинание не действует на нежить, на тех, кто не понимает ваш язык, и в случае, если приказ наносит цели прямой вред.
Вот некоторые типичные приказы и их эффекты. Вы можете отдать другой приказ, не описанный тут. В таком случае мастер решает, как поведет себя цель. Если цель не может выполнить ваш приказ, заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го. Эти существа должны быть в пределах 20 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Privorot-gumanoida-_-Charm-Person.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Privorot-gumanoida-_-Charm-Person.json new file mode 100755 index 0000000..21a3a79 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Privorot-gumanoida-_-Charm-Person.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Приворот гуманоида / Charm Person", + "img": "icons/magic/life/heart-shadow-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы пытаетесь обворожить выбранного гуманоида, которого видите в пределах дистанции. Цель должна пройти испытание Мудрости и получает преимущество к нему, если вы или ваши спутники сражаются с ней. При провале цель остаётся &reference[charmed]{обворожённой} вами, пока длится заклинание или пока вы или ваши спутники не нанесут ей какой-либо вред. Обворожённое существо считает вас дружественным. Когда заклинание прекращает действовать, существо помнит, что было обворожено вами.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го. Эти существа должны быть в пределах 30 футов друг от друга в момент сотворения.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizrachnoe-oruzhie-_-Spiritual-weapon.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizrachnoe-oruzhie-_-Spiritual-weapon.json new file mode 100755 index 0000000..3b312c0 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizrachnoe-oruzhie-_-Spiritual-weapon.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призрачное оружие / Spiritual weapon", + "img": "icons/weapons/swords/sword-winged-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте летающее призрачное оружие в пределах дистанции. Оно существует, пока длится заклинание или пока вы не сотворите его снова. Когда вы сотворяете это заклинание, вы можете совершить атаку заклинанием в ближнем бою по существу в пределах 5 футов от оружия. При попадании цель получает урон силой, равный [[/r 1d8]] + модификатор вашей заклинательной характеристики.
В качестве бонусного действия в свой ход вы можете переместить оружие на расстояние до 20 футов и повторить атаку по существу в пределах 5 футов от него
Оружие может принять любую форму на ваш выбор. Жрецы божеств, связанных с определенным оружием (к примеру, булава святого Катберта или молот Тора), придают эффекту заклинания вид этого оружия.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон увеличивается на [[/r 1d8]] за каждые два круга ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "msak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "(floor((@item.level) / 2))d8 + @mod", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizrachnye-strazhi-_-Spirit-Guardians.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizrachnye-strazhi-_-Spirit-Guardians.json new file mode 100755 index 0000000..831e53b --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizrachnye-strazhi-_-Spirit-Guardians.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призрачные стражи / Spirit Guardians", + "img": "icons/magic/fire/barrier-wall-flame-ring-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-famil�yara-_-Find-Familiar.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-famil�yara-_-Find-Familiar.json new file mode 100755 index 0000000..6bdc9d9 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-famil�yara-_-Find-Familiar.json @@ -0,0 +1,301 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв фамильяра / Find Familiar", + "img": "icons/creatures/birds/corvid-call-sound-glowing.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете фамильяра, духа, который принимает форму животного на ваш выбор; ворона, жабы (лягушки), летучей мыши, кошки, краба, крысы, ласки, морского конька, осьминога, паука, рыбы (квиппера), совы, ядовитой змеи, ястреба или ящерицы. Фамильяр появляется в незанятом пространстве в пределах дистанции и получает все параметры выбранной формы, хотя на самом деле это бестия, небожитель или фея (на ваш выбор), а не животное.
Ваш фамильяр действует независимо от вас, но всегда выполняет ваши приказы. В бою у него свой бросок инициативы и свои ходы. Фамильяр не может атаковать, но может совершать другие действия как обычно.
Когда ПЗ фамильяра снижаются до 0, он исчезает, не оставляя физического тела, и снова появляется только после того, как вы сотворите заклинание ещё раз.
Пока ваш фамильяр в пределах 100 футов от вас, вы можете общаться с ним телепатически. Кроме того, в качестве действия вы можете смотреть глазами фамильяра и слышать то, что слышит он, до начала вашего следующего хода. При этом вы получаете особые способы восприятия фамильяра, Ваше настоящее тело в это время &reference[blinded]{слепо} и &reference[deafened]{глухо}.
В качестве действия вы можете временно отпустить фамильяра. Он исчезает, переносясь в карманное измерение, и дожидается там призыва. Как вариант, вы можете отпустить его совсем. Пока он отпущен временно, вы можете в качестве действия заставить его вновь появиться в незанятом пространстве в пределах 30 футов от вас.
Нельзя иметь более одного фамильяра одновременно. Если вы сотворите это заклинание вновь, когда у вас уже есть фамильяр, вы вместо этого придаёте ему новую форму. Выберите одну из перечисленных ранее форм, и ваш фамильяр превратится в выбранное существо.
Наконец, если вы творите заклинание с дистанцией «касание», ваш фамильяр может коснуться цели, как если бы заклинание сотворил он. При этом ваш фамильяр должен находиться в пределах 100 футов от вас и использовать своё ответное действие, чтобы доставить заклинание, когда вы его сотворите. Если заклинанию требуется бросок атаки, можете использовать при броске ваш модификатор атаки.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fiend", + "celestial", + "fey" + ], + "profiles": [ + { + "count": "", + "name": "", + "_id": "prpQWTvzSiLQgNg4", + "uuid": "Compendium.laaru-dnd5-hw.monsters2.Actor.3FRxzvpGbeS7QB3M", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "DloEuTwCvqQ4riXb", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.pxeemMWZhxGAKtOv", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "YBnIR0JPA8fxFGKj", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.8gUi9Nd8FT1nIyep", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "WT5QeE28mx8sNcGY", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.EkcnceHvM3uVi7nU", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "QvW3MjFyFf5UfJBT", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.KpZXltrckvrBYkQj", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "doh8tUhHEmjdEESs", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.t5q60qZoVZmjIljJ", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "bNYCb9t8QmzvKG11", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.AWt5rCpK4Vh1yIlu", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "0E69wV7yMxfEzOum", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.qXJ4Sn7GMWNQXYjK", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "i1JeKHtK2ZRJ3iHY", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.EjDcmob5wI6OzAC1", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "0bak8Tbq39xTaynp", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.txTKnGIkPqQbGViP", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "8QXbEeyb3GUgA3IJ", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.zdi8PIoz3wExqrqz", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "8PT5XPVQQYHSTBAZ", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.JEjVRQNe7c9zaC1w", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "QxhwGMtILAJSpIEU", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.zfm8JN4c5ovAeaSg", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "rQTe2wTP09XehHIP", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.rMJ9j4GirmFIl2c5", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "9bsEzUNQQgFhaUph", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.M57DVwbz4ckkQ57l", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-grada-snyaryadov-_-Conjure-Barrage.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-grada-snyaryadov-_-Conjure-Barrage.json new file mode 100755 index 0000000..aefa93d --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-grada-snyaryadov-_-Conjure-Barrage.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв града снярядов / Conjure Barrage", + "img": "icons/skills/ranged/daggers-thrown-salvo-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-skakuna-_-Find-Steed.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-skakuna-_-Find-Steed.json new file mode 100755 index 0000000..c19ad47 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-skakuna-_-Find-Steed.json @@ -0,0 +1,187 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв скакуна / Find Steed", + "img": "icons/magic/control/buff-luck-fortune-gold.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете духа, который принимает форму необычайно разумного, сильного и верного волшебного скакуна, связанного с вами сильными узами. Скакун появляется в незанятом пространстве в пределах дистанции и принимает форму на ваш выбор — @UUID[Compendium.laaru-dnd5-hw.monsters.fRYieFHWaVQJctGW]{боевой лошади}, @UUID[Compendium.laaru-dnd5-hw.monsters.OWaAUtjQFOD0GSsB]{верблюда}, @UUID[Compendium.laaru-dnd5-hw.monsters.dy0EsZ9AjDclnobu]{лося}, @UUID[Compendium.laaru-dnd5-hw.monsters.xGuwh46ubTwb66oI]{мастифа} или @UUID[Compendium.laaru-dnd5-hw.monsters.UgPzf6AScVoYZxni]{пони} (с разрешения мастера можете использовать и других животных). Скакун получает параметры выбранной формы, хотя на самом деле это бестия, небожитель или фея (на ваш выбор), а не животное. Кроме того, если у вашего скакуна Интеллект 5 или ниже, его Интеллект становится равным 6 и он получает способность понимать один язык, на котором вы говорите, на ваш выбор.
Вы можете ездить верхом на волшебном скакуне как в бою, так и вне его. Он связан с вами инстинктивными узами, которые позволяют вам действовать как единое целое. Пока вы верхом на своём скакуне, можете сделать так, чтобы любое сотворяемое вами заклинание, которое нацелено только на вас, также было нацелено на вашего скакуна.
Когда ПЗ скакуна снижаются до 0, он исчезает, не оставляя физического тела. В качестве действия вы также можете отпустить скакуна, после чего он исчезает. В обоих случаях, если вы сотворите заклинание повторно, появится тот же скакун, полностью восстановивший ПЗ.
Пока ваш скакун в пределах 1 мили от вас, вы можете общаться друг с другом телепатически.
С помощью этого заклинания нельзя получить больше одного волшебного скакуна одновременно. В качестве действия вы можете освободить скакуна от уз в любой момент, после чего он исчезнет.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fiend", + "celestial", + "fey" + ], + "profiles": [ + { + "count": "", + "name": "", + "_id": "Jv2WQ6wyVcksQuCp", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.fRYieFHWaVQJctGW", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "VWxXLu6szQRfdhSg", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.OWaAUtjQFOD0GSsB", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "oqiNOi4g3rJQCpQ0", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.dy0EsZ9AjDclnobu", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "41YJbWkhUdrPsW3w", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.xGuwh46ubTwb66oI", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "", + "name": "", + "_id": "hzbOpM0ZwWl8sluV", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.UgPzf6AScVoYZxni", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-zhivotnykh-_-Conjure-Animals.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-zhivotnykh-_-Conjure-Animals.json new file mode 100755 index 0000000..b6f88e2 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Prizyv-zhivotnykh-_-Conjure-Animals.json @@ -0,0 +1,176 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Призыв животных / Conjure Animals", + "img": "icons/creatures/abilities/cougar-pounce-stalk-black.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы призываете духов фей в форме животных. Они появляются в незанятых местах, которые вы видите в пределах дистанции. Выберите один из вариантов того, что появится:
Эти животные также считаются феями. Они исчезают, когда их ПЗ снижаются до 0 или когда заклинание прекращает действовать
Призванные существа дружественны вам и вашим спутникам. Сделайте бросок инициативы для призванных существ как для группы, которая совершает собственные ходы. Они подчиняются вашим устным приказам (действие от вас не требуется). Если вы не отдаёте приказов, они защищаются от враждебных существ, но других действий не совершают.
Параметры существ есть у мастера.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку определённого более высокого круга, то можете выбрать один из перечисленных выше вариантов, но животных появляется больше: вдвое больше для ячейки 5-го круга, втрое — для ячейки 7-го круга и вчетверо — для ячейки 9-го круга.
Примечание. Для работоспособности Призыва, мастеру нужно в настройках прав игроков разрешить создавать Токены и Актёров.
Для призыва прописаны популярные животные, других можно добавить в настройках этого заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "summ", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": { + "match": { + "proficiency": false, + "attacks": false, + "saves": false + }, + "bonuses": { + "ac": "", + "hd": "", + "hp": "", + "attackDamage": "", + "saveDamage": "", + "healing": "" + }, + "creatureSizes": [], + "creatureTypes": [ + "fey" + ], + "profiles": [ + { + "count": "", + "name": "Белый медведь КО 2", + "_id": "ZPsyG9ZVmvYkWnsB", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.bjM30XQmz3jyEIoj", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "8", + "name": "Волк КО 1/4", + "_id": "BVgSNW9U2BntIzam", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.reTxudLmL6ldE6xE", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "2", + "name": "Лев КО 1", + "_id": "pj8KuMEFe8DzAFdb", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.hupgn3z52DGFIVib", + "level": { + "min": null, + "max": null + }, + "types": [] + }, + { + "count": "4", + "name": "Чёрный медведь КО1/2", + "_id": "sb6jQ89Idv7BYyXS", + "uuid": "Compendium.laaru-dnd5-hw.monsters.Actor.r6qkvNIITLgr6mb8", + "level": { + "min": null, + "max": null + }, + "types": [] + } + ], + "prompt": true + }, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Proklyatie-_-Bestow-Curse.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Proklyatie-_-Bestow-Curse.json new file mode 100755 index 0000000..cc11d2a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Proklyatie-_-Bestow-Curse.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Проклятие / Bestow Curse", + "img": "icons/magic/death/projectile-skull-fire-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь существу, и оно должно пройти испытание Мудрости. При провале оно будет проклято, пока длится заклинание. Когда вы творите заклинание, выберите проклятие из этих вариантов:
Заклинание @Compendium[laaru-dnd5-hw.spells.Y5EfiRqmCWKJ7Qhk]{Снятие проклятия} прекращает этот эффект. По решению мастера вы можете выбрать другой вариант проклятия, но он не должен быть мощнее описанных выше. Окончательное решение по действию проклятия остается за мастером.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, его длительность — концентрация, до 10 минут. Если использовать ячейку 5-го круга или выше, длительность — 8 часов. Если использовать ячейку 7-го круга или выше, длительность — 24 часа. Если использовать ячейку 9-го круга, заклинание действует, пока не рассеяно. При сотворении с использованием ячейки 5-го круга или выше заклинание не требует концентрации.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pryzhok-_-Jump.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pryzhok-_-Jump.json new file mode 100755 index 0000000..03664eb --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pryzhok-_-Jump.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Прыжок / Jump", + "img": "icons/creatures/amphibians/bullfrog-glass-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, и расстояние его @Compendium[laaru-dnd5-hw.actions.Q9DJAJq4OyeHsMj6]{прыжков} увеличивается втрое, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Purga-_-Sleet-Storm.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Purga-_-Sleet-Storm.json new file mode 100755 index 0000000..7a25b65 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Purga-_-Sleet-Storm.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пурга / Sleet Storm", + "img": "icons/magic/water/projectile-icecicles-salvo.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, ледяной дождь и град идут в цилиндре высотой 20 футов и радиусом 40 футов с центром в выбранной вами точке в пределах дистанции. Видимость в области крайне затруднена, а открытый огонь гаснет.
Землю в области покрывает гололёд, превращая ее в &reference[difficultterrain]{пересечённую местность}, Когда существо впервые за ход входит в область заклинания или начинает в ней свой ход, оно должно пройти испытание Ловкости. При провале оно &reference[prone]{распластывается}.
Если существо начинает свой ход в области действия и концентрируется при этом на заклинании, оно должно пройти испытание Выносливости (СЛ равна СЛ испытаний против ваших заклинаний), при провале оно теряет концентрацию.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "cylinder", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pylayushchaya-sfera-_-Flaming-Sphere.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pylayushchaya-sfera-_-Flaming-Sphere.json new file mode 100755 index 0000000..d1a9cfd --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pylayushchaya-sfera-_-Flaming-Sphere.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пылающая сфера / Flaming Sphere", + "img": "icons/magic/earth/orb-lava-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "3", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pylayushchie-ruki-_-Burning-Hands.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pylayushchie-ruki-_-Burning-Hands.json new file mode 100755 index 0000000..ea40308 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Pylayushchie-ruki-_-Burning-Hands.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Пылающие руки / Burning Hands", + "img": "icons/magic/fire/flame-burning-fist-strike.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Raskalyonnyy-metall-_-Heat-metal.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Raskalyonnyy-metall-_-Heat-metal.json new file mode 100755 index 0000000..39f8aee --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Raskalyonnyy-metall-_-Heat-metal.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Раскалённый металл / Heat metal", + "img": "icons/weapons/axes/axe-double-short-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите рукотворный металлический предмет, который видите в пределах дистанции, например оружие, тяжёлую или среднюю металлическую броню. Вы заставляете этот предмет раскалиться докрасна. Любое существо, физически контактирующее с предметом, получает [[/r 2d8]] урона огнём в момент сотворения. Пока длится заклинание, вы можете использовать бонусное действие в каждый свой следующий ход, чтобы снова нанести этот урон.
Если существо держит предмет или носит его и получает от него урон, оно должно пройти испытание Выносливости, при провале оно роняет предмет, если может. Если оно не может его уронить, оно получает помеху к броскам атак и проверкам характеристик до начала вашего следующего хода.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, урон увеличивается на [[/r 1d8]] за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d8", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rasplyvchatost�-_-Blur.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rasplyvchatost�-_-Blur.json new file mode 100755 index 0000000..88dc401 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rasplyvchatost�-_-Blur.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Расплывчатость / Blur", + "img": "icons/skills/wounds/injury-body-pain-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Для всех, кто видит, ваше тело кажется размытым, мелькающим и колеблющимся. Пока длится заклинание, у всех существ есть помеха к броскам атаки против вас. Атакующий невосприимчив к этому эффекту, если он не полагается на зрение (как при &reference[blindsight]{слепозрении}) или способен видеть сквозь иллюзии (&reference[truesight]{истинное зрение}).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rasseivanie-magii-_-Dispel-Magic.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rasseivanie-magii-_-Dispel-Magic.json new file mode 100755 index 0000000..187defb --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rasseivanie-magii-_-Dispel-Magic.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рассеивание магии / Dispel Magic", + "img": "icons/magic/nature/plant-sprout-hand-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razbivayushchiy-zvuk-_-Shatter.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razbivayushchiy-zvuk-_-Shatter.json new file mode 100755 index 0000000..a926362 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razbivayushchiy-zvuk-_-Shatter.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разбивающий звук / Shatter", + "img": "icons/magic/earth/explosion-lava-stone-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "thunder" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-myortvymi-_-Speak-with-Dead.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-myortvymi-_-Speak-with-Dead.json new file mode 100755 index 0000000..25e3c47 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-myortvymi-_-Speak-with-Dead.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разговор с мёртвыми / Speak with Dead", + "img": "icons/magic/death/undead-ghost-scream-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы придаёте подобие жизни и разума выбранному вами трупу в пределах дистанции, позволяя ему ответить на ваши вопросы. У трупа должен сохраниться рот, и он не должен быть нежитью, заклинание не сработает, если труп был целью того же заклинания за последние 10 дней.
\nПока длится заклинание, вы можете задать трупу не более пяти вопросов. Труп знает только то, что знал при жизни, в том числе языки. Ответы обычно бывают короткими, загадочными и повторяющимися. Труп не обязан давать вам правдивый ответ, если был вашим врагом при жизни или узнал в вас врага. Заклинание не возвращает душу существа в тело, а только оживляет его. Поэтому труп не может узнать новые сведения, понятия не имеет о том, что случилось после его смерти, и не может строить предположения о будущих событиях.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-rasteniyami-_-Speak-with-Plants.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-rasteniyami-_-Speak-with-Plants.json new file mode 100755 index 0000000..bd6ed8c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-rasteniyami-_-Speak-with-Plants.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разговор с растениями / Speak with Plants", + "img": "icons/magic/nature/tree-animated-smile.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы наделяете растения в пределах 30 футов от вас ограниченным разумом и способностью двигаться, позволяя им общаться с вами и выполнять ваши простые приказы. Вы можете расспросить растения о событиях, случившихся в области заклинания за последний день, получить сведения о существах, которые проходили тут, о погоде и прочих обстоятельствах.
Вы можете также превратить местность, ставшую &reference[difficultterrain]{пересечённой} из-за растений (вроде густых кустов и подлеска), в обычную, пока длится заклинание. Также вы можете превратить обычную местность с растениями в &reference[difficultterrain]{пересечённую}, пока длится заклинание (к примеру, лианы и ветви будут задерживать погоню за вами).
С разрешения мастера растения могут совершать и другие действия для вас. Заклинание не позволяет растениям вынимать корни из земли и перемещаться, но они могут свободно двигать ветвями, побегами и стеблями.
Если в области находится растение-существо, можете общаться с ним, как будто знаете общий язык, но магически повлиять на него не можете. С помощью этого заклинания можно заставить растения, созданные заклинанием @Compendium[laaru-dnd5-hw.spells.dG8ddfpg5fOIkJ4h]{Опутывание}, отпустить &reference[restrained]{обездвиженное} существо.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-zhivotnymi-_-Speak-with-Animals.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-zhivotnymi-_-Speak-with-Animals.json new file mode 100755 index 0000000..06a1e66 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Razgovor-s-zhivotnymi-_-Speak-with-Animals.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Разговор с животными / Speak with Animals", + "img": "icons/creatures/mammals/deer-antlers-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "ritual", + "vocal", + "somatic", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rost-rasteniy-_-Plant-Growth.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rost-rasteniy-_-Plant-Growth.json new file mode 100755 index 0000000..dd3d8c4 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Rost-rasteniy-_-Plant-Growth.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Рост растений / Plant Growth", + "img": "icons/magic/nature/plant-sproud-hands-dirt-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание наполняет жизненной силой растения в пределах определённой области. Есть два способа использовать это заклинание, которые дают либо немедленную, либо долгосрочную пользу.
\nЕсли вы творите это заклинание, используя 1 действие, выберите точку в пределах дистанции. Все обычные растения в радиусе 100 футов вокруг этой точки становятся высокими и толстыми. Существо, проходящее через эту область, вынуждено тратить по 4 фута скорости за каждый 1 фут перемещения
\nВы можете исключить из эффекта одну или несколько областей любого размера в пределах области заклинания.
\nЕсли вы творите это заклинание 8 часов, вы насыщаете землю. Все растения в радиусе полумили вокруг точки в пределах дистанции становятся насыщены на 1 год. Такие растения дают вдвое больше пищи при сборе урожая.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ruki-Khadara-_-Arms-of-Hadar.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ruki-Khadara-_-Arms-of-Hadar.json new file mode 100755 index 0000000..099f28f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ruki-Khadara-_-Arms-of-Hadar.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Руки Хадара / Arms of Hadar", + "img": "icons/magic/unholy/hand-claw-fire-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы призываете мощь Хадара, Тёмного Голода. Языки тёмной энергии вырываются из вас и обрушиваются на всех существ в пределах 10 футов от вас. Каждое существо в этой области должно пройти испытание Силы. При провале цель получает [[/r 2d6]] некротического урона и не может совершать ответные действия до своего следующего хода. При успехе существо получает половину этого урона без иных эффектов.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "spec" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "necrotic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "mgc", + "vocal", + "somatic", + "mgc" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sglaz-_-Hex.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sglaz-_-Hex.json new file mode 100755 index 0000000..fff261a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sglaz-_-Hex.json @@ -0,0 +1,115 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сглаз / Hex", + "img": "icons/magic/control/voodoo-doll-pain-damage-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы проклинаете существо, которое видите в пределах дистанции. Пока длится заклинание, вы наносите цели дополнительно [[/r 1d6]] некротического урона каждый раз, когда попадаете по ней атакой. Также выберите одну характеристику при сотворении заклинания, цель будет проходить проверки этой характеристики с помехой.
Если ПЗ цели снижаются до 0, прежде чем заклинание прекращает действовать, вы можете использовать бонусное действие в один из следующих ходов, чтобы проклясть новое существо
Заклинание @Compendium[laaru-dnd5-hw.spells.Y5EfiRqmCWKJ7Qhk]{Снятие проклятия}, сотворённое на цель, досрочно прекращает это заклинание.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го или 4-го круга, то можете сохранять свою концентрацию на заклинании до 8 часов. Если использовать ячейку 5-го круга или выше, вы можете сохранять свою концентрацию на заклинании до 24 часов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "mgc" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shchit-_-Shield.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shchit-_-Shield.json new file mode 100755 index 0000000..61b82d5 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shchit-_-Shield.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Щит / Shield", + "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Появляется незримый барьер магической силы, который защищает вас. До начала вашего следующего хода у вас бонус +5 к КБ, в том числе против атаки, вызвавшей это @Compendium[laaru-dnd5-hw.actions.mMwkUE20bEfKeetq]{ответное действие}, и вы не получаете урона от заклинаний @Compendium[laaru-dnd5-hw.spells.FgeTrsMqHnbTEIPl]{Волшебная стрела}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "reaction", + "cost": 1, + "condition": "когда по вам попали атакой или выбрали вас целью волшебной стрелы" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shchit-very-_-Shield-of-faith.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shchit-very-_-Shield-of-faith.json new file mode 100755 index 0000000..9c005d9 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shchit-very-_-Shield-of-faith.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Щит веры / Shield of faith", + "img": "icons/magic/holy/barrier-shield-winged-cross.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Мерцающее поле окутывает выбранное вами существо в пределах дистанции и даёт ему бонус +2 к КБ, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shilleyla-_-Shillelagh.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shilleyla-_-Shillelagh.json new file mode 100755 index 0000000..143f1a6 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shilleyla-_-Shillelagh.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Шиллейла / Shillelagh", + "img": "icons/skills/melee/hand-grip-staff-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Земля в радиусе 20 футов вокруг точки в пределах дистанции изгибается, испуская твёрдые шипы и колючки. Область становится &reference[difficultterrain]{пересечённой местностью}, пока длится заклинание. Когда существо входит в область или перемещается внутри нее, оно получает [[/r 2d4]] колющего урона за каждые 5 футов перемещения.
Изменение поверхности замаскировано и на вид кажется естественным. Любое существо, которое не видело область во время сотворения заклинания, должно пройти проверку Мудрости (Внимание), чтобы понять, что область опасна, прежде чем туда входить. СЛ равна СЛ испытаний против ваших заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 150, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d4", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shokovoe-prikosnovenie-_-Shocking-grasp.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shokovoe-prikosnovenie-_-Shocking-grasp.json new file mode 100755 index 0000000..9e63134 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Shokovoe-prikosnovenie-_-Shocking-grasp.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Шоковое прикосновение / Shocking grasp", + "img": "icons/magic/unholy/hand-fire-skeleton-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Молния срывается с ладони в существо, которого вы касаетесь. Совершите по цели атаку заклинанием в ближнем бою. У вас преимущество к броску атаки, если цель носит металлическую броню. При попадании цель получает [[/r 1d8]] урона молнией и не может совершать ответные действия до начала своего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го [[/r 2d8]], 11-го [[/r 3d8]] и 17-го уровня [[/r 4d8]].
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы устанавливаете сигнализацию на случай незваных гостей. Выберите дверь, окно или область в пределах дистанции, объемом не больше чем 20-футовый куб. Пока длится заклинание, сигнализация предупреждает вас о появлении существ размером не менее маленького в охраняемой области. Когда вы сотворяете заклинание, можете выбрать существ, которые не будут вызывать срабатывание сигнализации. Вы можете также выбрать, будет ли тревога поднята мысленно или звуком.
\nМысленный сигнал тревоги может предупредить вас звоном в голове, если вы в пределах 1 мили от охраняемой области. Он разбудит вас, если вы спите.
\nЗвуковой сигнал тревоги издает звук колокольчика в течение 10 секунд в пределах 60 футов.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sila-fantazma-_-Phantasmal-Force.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sila-fantazma-_-Phantasmal-Force.json new file mode 100755 index 0000000..67ef096 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sila-fantazma-_-Phantasmal-Force.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сила фантазма / Phantasmal Force", + "img": "icons/creatures/slimes/slime-giant-face-eyes.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте иллюзию, и она укореняется в разуме существа, которое вы видите в пределах дистанции. Цель должна пройти испытание Интеллекта. При провале вы создаёте фантазм объекта, существа или иного видимого явления на ваш выбор размером не более 10-футового куба. Его наблюдает только цель и только пока длится заклинание. Заклинание не действует на нежить и конструкции.
Фантазм также воспроизводит звуки, температуру и прочие признаки, которые воспринимает только цель
Цель может использовать действие, чтобы изучить образ, пройдя проверку Интеллекта (Расследование). СЛ проверки равна СЛ испытаний против ваших заклинаний. При успехе существо распознаёт иллюзию, и заклинание прекращает действовать.
Пока заклинание влияет на цель, та воспринимает фантазм как реальность. Цель находит объяснения странным результатам взаимодействия с образом. К примеру, если цель пытается пройти по иллюзорному мосту через провал, она упадёт, провалившись сквозь него. Если цель переживёт падение, она будет считать, что мост всё же реален, а упала она по другой причине — ее толкнули, она поскользнулась, сильный ветер сдул ее, и тому подобное.
Цель настолько убеждена в реальности фантазма, что может даже получать от него урон. Фантазм, созданный в виде существа, может атаковать цель. Аналогично, если фантазм выглядит как пламя, кислота или лава, он может обжечь цель. Каждый раунд в ваш ход фантазм может нанести цели [[/r 1d6]] психического урона, если она в области фантазма или в пределах 5 футов от него и если иллюзия выглядит как существо или опасность, которые наносят урон. Цель считает, что получила урон того типа, который соответствует иллюзии.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "int", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Skorokhod-_-Longstrider.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Skorokhod-_-Longstrider.json new file mode 100755 index 0000000..63a1695 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Skorokhod-_-Longstrider.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Скороход / Longstrider", + "img": "icons/equipment/feet/boots-leather-laced-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу, и его скорость увеличивается на 10 футов, пока длится заклинание.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Slepota_Glukhota-_-Blindness_Deafness.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Slepota_Glukhota-_-Blindness_Deafness.json new file mode 100755 index 0000000..8a7ed95 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Slepota_Glukhota-_-Blindness_Deafness.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слепота/Глухота / Blindness/Deafness", + "img": "icons/skills/wounds/injury-eyes-blood-red-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы можете ослепить или оглушить врага. Выберите одно существо, которое видите в пределах дистанции. Оно должно пройти испытание Выносливости. При провале цель &reference[blinded]{слепнет} или &reference[deafened]{глохнет} (на ваш выбор), пока длится заклинание. В конце каждого своего хода цель может повторно пройти испытание Выносливости. При успехе заклинание прекращает действовать.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Slepyashchaya-kara-_-Blinding-Smite.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Slepyashchaya-kara-_-Blinding-Smite.json new file mode 100755 index 0000000..9ac0288 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Slepyashchaya-kara-_-Blinding-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слепящая кара / Blinding Smite", + "img": "icons/skills/wounds/injury-eyes-blood-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваше оружие загорается ярким светом и атака дополнительно наносит цели [[/r 3d8]] лучистого урона. Кроме того, цель должна пройти испытание Выносливости, при провале она &reference[blinded]{ослеплена}, пока длится заклинание.
Существо, ослеплённое этим заклинанием, может проходить испытание Выносливости в конце каждого своего хода. При успехе оно перестаёт быть ослеплённым.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "radiant" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sliyanie-s-kamnem-_-Meld-into-Stone.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sliyanie-s-kamnem-_-Meld-into-Stone.json new file mode 100755 index 0000000..b81ab43 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sliyanie-s-kamnem-_-Meld-into-Stone.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Слияние с камнем / Meld into Stone", + "img": "icons/magic/earth/lava-stone-fire-eye.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы входите в каменный объект или поверхность, достаточно большую, чтобы вместить ваше тело целиком, и погружаете себя и всё свое снаряжение в камень, пока длится заклинание. Используя перемещение, вы входите в камень в любой точке, которой можете коснуться. Ничто не выдаёт вашего присутствия, вас нельзя заметить немагическими способами.
На время слияния с камнем вы не можете видеть, что происходит снаружи, а проверки Мудрости (Внимание), чтобы услышать, что происходит снаружи, вы совершаете с помехой. Вы продолжаете чувствовать ход времени и можете творить заклинания на себя, находясь в камне. Вы можете использовать перемещение, чтобы покинуть камень в том же месте, где вошли, после чего заклинание прекращает действовать. Помимо этого, вы не можете перемещаться.
Незначительный физический урон, нанесённый камню, вам не вредит, но частичное разрушение или смена формы камня (до такой степени, что вы хотя бы частично оказываетесь за его пределами) изгоняют вас из камня и наносят вам [[/r 6d6]] дробящего урона. Полное разрушение камня или превращение его в иной материал изгоняет вас из него и наносит 50 дробящего урона. Если вас изгнали из камня, вы &reference[prone]{распластываетесь} в незанятом пространстве, ближайшем к тому месту, где в него вошли.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d6", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "ritual", + "vocal", + "somatic", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Smradnoe-oblako-_-Stinking-Cloud.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Smradnoe-oblako-_-Stinking-Cloud.json new file mode 100755 index 0000000..dec00e9 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Smradnoe-oblako-_-Stinking-Cloud.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Смрадное облако / Stinking Cloud", + "img": "icons/magic/air/fog-gas-smoke-swirling-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте сферу тошнотворного жёлтого газа радиусом 20 футов вокруг точки в пределах дистанции. Облако распространяется и за углы, и в его области видимость &reference[heavilyobscured]{крайне затруднена}. Облако существует, пока длится заклинание.
Каждое существо, полностью оказавшееся в пределах облака в начале своего хода, должно пройти испытание Выносливости против яда. При провале существо тратит своё действие в этот ход на рвоту. Существа, которым не нужно дышать или невосприимчивые к яду, автоматически проходят испытание успешно.
Средний ветер (не менее 10 миль в час) может развеять облако за 4 раунда. Сильный ветер (не менее 20 миль в час) развеет его за 1 раунд.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Snyatie-proklyatiya-_-Remove-Curse.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Snyatie-proklyatiya-_-Remove-Curse.json new file mode 100755 index 0000000..ce508b3 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Snyatie-proklyatiya-_-Remove-Curse.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Снятие проклятия / Remove Curse", + "img": "icons/magic/unholy/hand-light-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Son-_-Sleep.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Son-_-Sleep.json new file mode 100755 index 0000000..ea3dbb9 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Son-_-Sleep.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сон / Sleep", + "img": "icons/magic/control/sleep-bubble-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Заклинание погружает существ в магическую дрёму.
Бросьте [[/r 5d8]]; результат укажет, на существ с каким суммарным количеством ПЗ влияет это заклинание.
Существа в пределах 20 футов от выбранной вами точки в пределах дистанции подпадают под действие заклинания в порядке возрастания их текущих П3 (игнорируя существ &reference[unconscious]{без сознания}).
Начиная с существа с наименьшими текущими П3, каждое существо, попавшее под действие заклинания, &reference[unconscious]{теряет сознание}, пока длится заклинание. Существо приходит в сознание, если получает урон или кто-то использует действие, чтобы разбудить его. Вычитайте П3 каждого существа из результата броска, прежде чем перейти к следующему существу в порядке возрастания ПЗ. Количество ПЗ существа должно быть равно или меньше остатка результата, чтобы заклинание подействовало на это существо.
На нежить и существ с невосприимчивостью к &reference[charmed]{обворожению} это заклинание не действует.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, бросьте дополнительно [[/r 2d8]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 90, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Soobshchenie-_-Message.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Soobshchenie-_-Message.json new file mode 100755 index 0000000..fc32840 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Soobshchenie-_-Message.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сообщение / Message", + "img": "icons/skills/social/diplomacy-writing-letter.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы указываете пальцем на существо в пределах дистанции и шепчете сообщение. Цель (и только цель) слышит его и может ответить шёпотом, который услышите только вы.
\nВы можете творить это заклинание сквозь твёрдые преграды, если вы знакомы с целью и точно знаете, что она за преградой. Магическая тишина, 1 фут камня, 1 дюйм обычного металла, тонкий лист свинца или 3 фута дерева или земли блокируют заклинание. Заклинание необязательно должно идти по прямой, оно может огибать углы и проходить через отверстия.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному существу. Пока длится заклинание, цель может один раз бросить [[/r d4]] и добавить результат броска к любому испытанию. Кость можно бросить либо до, либо после испытания. Затем заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте 45 фунтов еды и 30 галлонов воды на земле или в сосудах в пределах дистанции. Этого достаточно, чтобы прокормить до пятнадцати гуманоидов или пятерых скакунов на 24 часа. Пища безвкусна, но питательна. Она портится, если её не съесть за 24 часа. Вода чиста и не портится.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sozdanie-ili-unichtozhenie-vody-_-Create-or-Destroy-Water.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sozdanie-ili-unichtozhenie-vody-_-Create-or-Destroy-Water.json new file mode 100755 index 0000000..ac2911c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sozdanie-ili-unichtozhenie-vody-_-Create-or-Destroy-Water.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Создание или уничтожение воды / Create or Destroy Water", + "img": "icons/consumables/potions/potion-flash-open-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте или уничтожаете воду.
Создание воды. Вы создаёте до 10 галлонов чистой воды в пределах дистанции в открытом сосуде. Как вариант, вода может пролиться дождём в 30-футовом кубе в пределах дистанции, гася открытое пламя в этой области.
Уничтожение воды. Вы уничтожаете до 10 галлонов воды в открытом сосуде в пределах дистанции. Как вариант, вы можете уничтожить туман в 30-футовом кубе в пределах дистанции.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, то создаёте или уничтожаете дополнительно 10 галлонов воды либо размер куба увеличивается на 5 футов за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sozdanie-plameni-_-Produce-Flame.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sozdanie-plameni-_-Produce-Flame.json new file mode 100755 index 0000000..b9e3b7e --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Sozdanie-plameni-_-Produce-Flame.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Создание пламени / Produce Flame", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Трепещущий язычок пламени появляется у вас в ладони. Пламя остаётся там, пока длится заклинание, не нанося вреда ни вам, ни вашему снаряжению. Пламя испускает &reference[brightlight]{яркий свет} в радиусе 10 футов и &reference[dimlight]{тусклый} ещё на 10 футов. Заклинание прерывается, если вы прекратите его в качестве действия или сотворите снова.
Вы можете атаковать пламенем, но это тоже прекратит действие заклинания. Когда вы сотворяете это заклинание или в качестве действия в ваш последующий ход, вы можете метнуть пламя в существо в пределах 30 футов от вас. Совершите дистанционную атаку заклинанием. При попадании цель получает [[/r 1d8]] урона огнём.
Урон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го ([[/r 2d8]]), 11-го ([[/r 3d8]]) и 17-го уровня ([[/r 4d8]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь живого существа, у которого осталось 0 ПЗ. Существо стабилизируется. Заклинание не действует на нежить и конструкции.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь подавить сильные эмоции группы гуманоидов. Каждый гуманоид в сфере радиусом 20 футов вокруг выбранной вами точки в пределах дистанции должен пройти испытание Харизмы; существо может добровольно провалить испытание. При провале выберите один из описанных двух вариантов.
Вы можете подавить любой эффект, вызывающий &reference[charmed]{обворожение} или &reference[frightened]{испуг} цели. Подавленный эффект вернётся, когда заклинание прекратится, если его длительность не истечет за это время.
Как вариант, можете сделать цель безразличной к существам на ваш выбор, к которым цель враждебна. Безразличие прекращается, если существо атакуют, нанесут ему вред заклинанием или оно увидит, как вредят его друзьям. Когда заклинание прекращает действовать, существо снова становится враждебным, если мастер не решит иначе.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "cha", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stena-vetra-_-Wind-Wall.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stena-vetra-_-Wind-Wall.json new file mode 100755 index 0000000..8664f95 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stena-vetra-_-Wind-Wall.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стена ветра / Wind Wall", + "img": "icons/magic/air/air-wave-gust-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Стена сильного ветра исходит из-под земли в выбранной вами точке в пределах дистанции. Стена может быть до 50 футов в длину, 15 футов в высоту и фута в толщину. Можете придать стене любую форму на ваш выбор, но она должна представлять собой один единый, цельный путь по земле. Стена существует, пока длится заклинание.
\nКогда стена появляется, каждое существо в пределах ее области должно пройти испытание Силы. При провале существо получает [[/r 3d8]] дробящего урона, при успехе - половину этого урона.
\nСильный ветер не пропускает туман, дым и прочие газы. Летающие существа и объекты небольшого или меньшего размера не могут пройти сквозь стену. Лёгкие материалы, попав в стену, взлетают вверх. Стрелы, болты и прочие обычные боеприпасы, выпущенные по целям с другой стороны стены, автоматически промахиваются (это не действует на валуны, запущенные великанами или осадными орудиями, и другие подобные снаряды). Существа в газообразной форме не могут проходить сквозь стену.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "50", + "width": null, + "units": "ft", + "type": "wall", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d8", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stikhiynoe-oruzhie-_-Elemental-Weapon.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stikhiynoe-oruzhie-_-Elemental-Weapon.json new file mode 100755 index 0000000..1556543 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stikhiynoe-oruzhie-_-Elemental-Weapon.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стихийное оружие / Elemental Weapon", + "img": "icons/weapons/swords/sword-flanged-lightning.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Немагическое оружие, которого вы коснулись, становится магическим. Выберите один тип урона: гром, кислота, молния, огонь или холод. Пока длится заклинание, оружие получает бонус +1 к броскам атаки и дополнительно наносит при попадании [[/r 1d4]] урона выбранного типа.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 5-го или 6-го круга, бонус к броскам атаки увеличивается до +2, а дополнительный урон — до [[/r 2d4]]. Если использовать ячейку 7-го круга или выше, бонус увеличивается до +3, а дополнительный урон до [[/r 3d4]].
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Storozhevaya-pechat�-_-Glyph-of-Warding.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Storozhevaya-pechat�-_-Glyph-of-Warding.json new file mode 100755 index 0000000..33120ac --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Storozhevaya-pechat�-_-Glyph-of-Warding.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Сторожевая печать / Glyph of Warding", + "img": "icons/magic/symbols/rune-sigil-red-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Когда вы сотворяете это заклинание, вы чертите символ сторожевой печати, в котором заключен магический эффект, либо на поверхности (например, на стене, полу или столе), либо внутри объекта, который можно закрыть, чтобы скрыть символ (например, внутри книги, свитка или сундука с сокровищами). Символ может покрывать площадь не более 10 футов в диаметре. Если объект или поверхность переместить более чем на 10 футов от места, где вы сотворили заклинание, символ разрушится и заклинание прекратит действовать, не сработав.
Символ почти невидим — чтобы заметить его, требуется успешная проверка Интеллекта (Расследование). СЛ равна СЛ испытаний против ваших заклинаний.
Когда вы сотворяете заклинание, вы сами решаете, что заставит символ сработать. Символы, нанесённые на поверхность, как правило, активируются, если их кто-то касается, наступает на них, снимает то, что скрывало символ, приближается к символу на определённое расстояние или манипулирует объектом, на котором символ начертан. Символы, спрятанные внутри объекта, обычно активируются, если кто-то открывает этот объект, приближается к нему на определённое расстояние, видит или читает символ. Как только символ активируется, заклинание прекращается.
Вы можете доработать заклинание так, чтобы оно активировалось только при строго определённых условиях, физических характеристиках цели (вроде роста или веса), мировоззрении или виде (например, можно настроить печать против аберраций или дроу). Вы также можете задать условия для существ, позволяющие избежать активации символа, например определённый пароль.
Когда вы чертите символ, выберите один из двух вариантов.
Взрывные руны. При активации символ испускает магическую энергию в сфере радиусом 20 футов с центром на нем. Сфера распространяется и за углы. Каждое существо в области действия должно пройти испытание Ловкости. При провале существо получает [[/r 5d8]] урона громом, кислотой, молнией, огнём или холодом (на ваш выбор при создании символа), при успехе — половину этого урона.
Символ заклинания. Вы можете вложить в символ подготовленное заклинание не выше 3-го круга, сотворив его как часть создания символа. Целью заклинания должно быть одно существо или область. Вложенное заклинание не оказывает эффекта в момент сотворения. Оно срабатывает, только когда символ активируется. Если у заклинания должна быть цель, оно сработает на существо, активировавшее символ. Если заклинание воздействует на область, то символ — центр этой области. Если заклинание призывает враждебных существ, создает опасные предметы или ловушки, они появляются как можно ближе к незваному гостю и атакуют его. Если заклинание требует концентрации, оно действует свою полную длительность.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон от взрывных рун увеличивается на [[/r 1d8]] за каждый круг ячейки выше 3-го. Если вы сотворяете символ заклинания, то можете вложить любое заклинание не выше того же круга, ячейку которого вы использовали для сотворения заклинания сторожевая печать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "hour", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5d8", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Strela-molniya-_-Lightning-Arrow.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Strela-molniya-_-Lightning-Arrow.json new file mode 100755 index 0000000..1664772 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Strela-molniya-_-Lightning-Arrow.json @@ -0,0 +1,120 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стрела-молния / Lightning Arrow", + "img": "icons/magic/lightning/strike-arrow-spear-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы совершите дистанционную атаку оружием, пока длится заклинание, боеприпас или само оружие, если оно метательное, превращается в разряд молнии. Совершите бросок атаки, как обычно. Вместо обычного урона от оружия цель получает [[/r 4d8]] урона молнией при попадании или половину этого урона при промахе. Вне зависимости от попадания или промаха каждое существо в пределах 10 футов от цели должно пройти испытание Ловкости. Каждое из этих существ получает [[/r 2d8]] урона молнией при провале или половину этого урона при успехе. Оружие или боеприпас после этого возвращаются в свою обычную форму.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон от обоих эффектов заклинания увеличивается на [[/r 1d8]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "((@item.level) + 1)[on hit]", + "lightning" + ], + [ + "((@item.level) - 1)d8[area]", + "lightning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stuk-_-Knock.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stuk-_-Knock.json new file mode 100755 index 0000000..6d991ef --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Stuk-_-Knock.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Стук / Knock", + "img": "icons/sundries/misc/key-short-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Выберите объект, который видите в пределах дистанции. Это может быть дверь, коробка, сундук, кандалы, навесной замок или любой иной предмет, который магическим или естественным образом препятствует доступу.
\nЦель, запертая обычным замком, заклинившая или закрытая на засов, становится открытой. Если на объекте несколько замков, открывается только один из них.
\nЕсли вы выберете цель, закрытую заклинанием @Compendium[laaru-dnd5-hw.spells.CuRWKGEoSXJmDPsh]{Волшебный засов}, это заклинание будет подавлено на 10 минут, во время которых цель можно свободно открывать и закрывать. При сотворении этого заклинания цель издаёт громкий стук, который слышно в пределах 300 футов.
\n\nЕсли заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Svet-_-Light.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Svet-_-Light.json new file mode 100755 index 0000000..04bb8fb --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Svet-_-Light.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Свет / Light", + "img": "icons/magic/light/orb-lightbulb-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к объекту размером не более 10 футов в любом измерении, Пока длится заклинание, этот объект будет испускать &reference[brightlight]{яркий свет} в радиусе 20 футов и &reference[dimlight]{тусклый свет} ещё на 20 футов. Свет может быть любого цвета на ваш выбор. Если полностью накрыть объект чем-то непрозрачным, свет блокируется. Заклинание прекращает действовать, если вы сотворите его снова или прекратите его, потратив действие.
Если цель — объект, который носит или держит враждебное существо, оно должно успешно пройти испытание Ловкости, чтобы избежать заклинания.
*Для удобства можно использовать макрос @UUID[Compendium.laaru-dnd5-hw.macro.74bKUFXbQUUvAXBG]{Свет} (игроку надо перенести его на панель быстрого доступа).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Svyashchennoe-plamya-_-Sacred-flame.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Svyashchennoe-plamya-_-Sacred-flame.json new file mode 100755 index 0000000..82c01ae --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Svyashchennoe-plamya-_-Sacred-flame.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Священное пламя / Sacred flame", + "img": "icons/magic/fire/projectile-fireball-orange-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Огненное сияние обрушивается на существо, которое вы видите в пределах дистанции. Цель должна успешно пройти испытание Ловкости, иначе получит [[/r 1d8]] лучистого урона. Укрытие не даёт бонусов цели для этого испытания.
\nУрон заклинания увеличивается на [[/r 1d8]], когда вы достигаете 5-го [[/r 2d8]], 11-го [[/r 3d8]] и 17-го уровня [[/r 4d8]] .
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы творите маленькое чудо, знак сверхъестественной силы. Вы можете создать один из этих магических эффектов в пределах дистанции:
\nЕсли сотворить это заклинание несколько раз, можно поддерживать до трёх 1-минутных эффектов одновременно. Любой из таких эффектов вы можете прекратить, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте длинный хлыст, похожий на лиану, усеянную шипами. По вашему приказу он хлещет существо в пределах дистанции. Совершите атаку заклинанием в ближнем бою по цели. При попадании существо получает [[/r 1d6]] колющего урона. Если это существо крупного размера или меньше, вы притягиваете это существо к себе на 10 футов или менее.
Урон заклинания увеличивается на [[/r 1d6]], когда вы достигаете 5-го ([[/r 2d6]]), 11-го ([[/r 3d6]]) и 17-го уровня ([[/r 4d6]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, никакой звук не может возникнуть в сфере радиусом 20 футов вокруг выбранной вами точки в пределах дистанции или пройти сквозь неё. Любое существо или объект, полностью находящиеся в этой сфере, невосприимчивы к урону громом, но при этом такие существа на время становятся &reference[deafened]{глухи}. В этой области невозможно сотворить заклинание со словесным компонентом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "ritual", + "vocal", + "somatic", + "concentration", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Tsvetnye-bryzgi-_-Color-Spray.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Tsvetnye-bryzgi-_-Color-Spray.json new file mode 100755 index 0000000..431667a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Tsvetnye-bryzgi-_-Color-Spray.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Цветные брызги / Color Spray", + "img": "icons/magic/unholy/strike-beam-blood-large-red-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Ошеломляющее множество мерцающих разноцветных лучей срывается с вашей руки. Бросьте [[/r 6d10]]; результат укажет, на существ с каким суммарным количеством ПЗ влияет это заклинание. Существа в пределах 15-футового конуса, исходящего от вас, подвергаются воздействию в порядке возрастания текущих ПЗ (не считая существ &reference[unconscious]{без сознания} и существ, которые не видят).
Начиная с существа с наименьшими текущими ПЗ, каждое существо, подвергшееся влиянию заклинания, &reference[blinded]{слепнет} до конца вашего следующего хода. Вычитайте ПЗ каждого существа из результата броска, прежде чем перейти к следующему. Количество ПЗ существа должно быть равно или меньше остатка результата, чтобы заклинание подействовало на это существо.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, бросьте дополнительно [[/r 2d10]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "round" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "6d10", + "" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Tumannyy-shag-_-Misty-step.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Tumannyy-shag-_-Misty-step.json new file mode 100755 index 0000000..150aeab --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Tumannyy-shag-_-Misty-step.json @@ -0,0 +1,107 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Туманный шаг / Misty step", + "img": "icons/magic/air/fog-gas-smoke-swirling-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вас ненадолго окутывает серебристый туман, и вы телепортируетесь в незанятое пространство в пределах 30 футов, которое можете видеть.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "space", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "vocal" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-T�ma-_-Darkness.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-T�ma-_-Darkness.json new file mode 100755 index 0000000..60c9960 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-T�ma-_-Darkness.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Тьма / Darkness", + "img": "icons/magic/unholy/orb-glowing-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Из выбранной вами точки в пределах дистанции исходит магическая тьма, наполняя сферу радиусом 15 футов, пока длится заклинание. &reference[darkness]{Тьма} распространяется и за углы. Существо с &reference[darkvision]{ночным зрением} не может видеть в ней, и никакой немагический свет не может её осветить.
Если начальная точка находится на объекте, который вы держите, или на объекте, который не носят и не держат другие существа, то тьма исходит от этого предмета и перемещается вместе с ним. Если полностью накрыть источник тьмы непрозрачным предметом вроде ведра или шлема, он заблокирует тьму.
Если область действия этого заклинания накладывается на область света, созданного заклинанием 2-го круга или ниже, заклинание, создавшее свет, рассеивается.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "15", + "width": null, + "units": "ft", + "type": "sphere", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "cha", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "cha" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "material", + "concentration", + "vocal", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ubezhishche-_-Sanctuary.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ubezhishche-_-Sanctuary.json new file mode 100755 index 0000000..765f6a0 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ubezhishche-_-Sanctuary.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Убежище / Sanctuary", + "img": "icons/magic/holy/barrier-shield-winged-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы защищаете существо в пределах дистанции от атак. Пока длится заклинание, любое существо, прежде чем выбрать защищённое существо целью атаки или вредоносного заклинания, должно пройти испытание Мудрости. При провале оно должно выбрать другую цель или потерять свою атаку или заклинание. Это заклинание не защищает существо от эффектов с областью действия, например от взрыва @Compendium[laaru-dnd5-hw.spells.j2cNLHZYnbKl46gZ]{огненного шара}.
Если защищённое существо совершает атаку, творит заклинание, действующее на врага, или наносит урон другому существу, это заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Udar-molnii-_-Lightning-bolt.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Udar-molnii-_-Lightning-bolt.json new file mode 100755 index 0000000..aaadca3 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Udar-molnii-_-Lightning-bolt.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Удар молнии / Lightning bolt", + "img": "icons/magic/lightning/bolt-strike-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Удар молнии в виде линии длиной 100 футов и шириной в 5 футов исходит от вас в выбранном вами направлении. Каждое существо на линии должно пройти испытание Ловкости. При провале существо получает [[/r 8d6]] урона молнией, а при успехе — половину этого урона. Молния поджигает все горючие предметы в области действия, кроме тех, что носят или держат.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон увеличивается на [[/r 1d6]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "100", + "width": null, + "units": "ft", + "type": "line", + "prompt": true + }, + "range": { + "value": 0, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "8d6", + "lightning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Usilenie-kharakteristiki-_-Enhance-Ability.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Usilenie-kharakteristiki-_-Enhance-Ability.json new file mode 100755 index 0000000..03a45a8 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Usilenie-kharakteristiki-_-Enhance-Ability.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Усиление характеристики / Enhance Ability", + "img": "icons/magic/control/buff-strength-muscle-damage-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Коснувшись существа, вы магически усиливаете его. Выберите один из этих эффектов; он будет воздействовать на цель, пока длится заклинание.
Бычья сила. У цели преимущество к проверкам Силы, а её грузоподъёмность удваивается.
Кошачья грация. У цели преимущество к проверкам Ловкости. Она также не получает урона при падении с 20 футов и менее, если &reference[incapacitated]{не выведена из строя}.
Лисья хитрость. У цели преимущество к проверкам Интеллекта.
Медвежья стойкость. У цели преимущество к проверкам Выносливости. Она также получает [[/r 2d6]] временных ПЗ, которые исчезают, когда заклинание прекращает действовать.
Орлиное великолепие. У цели преимущество к проверкам Харизмы.
Совиная мудрость. У цели преимущество к проверкам Мудрости.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 3-го круга или выше, то можете выбрать целью одно дополнительное существо за каждый круг ячейки выше 2-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6", + "temphp" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uskorenie-_-Haste.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uskorenie-_-Haste.json new file mode 100755 index 0000000..57c7e14 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uskorenie-_-Haste.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ускорение / Haste", + "img": "icons/skills/movement/feet-winged-boots-brown.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Выберите согласное существо, которое видите в пределах дистанции. Пока длится заклинание, скорость цели удваивается, она получает бонус +2 к КБ, преимущество к испытаниям Ловкости и дополнительное действие в каждый свой ход. Это действие можно использовать только для совершения действий @Compendium[laaru-dnd5-hw.actions.Y0O7jQKh7vGMSTBu]{Атака} (только одна атака оружием), @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок}, @Compendium[laaru-dnd5-hw.actions.NwKMv5Ljen62a44Y]{Отступление}, @Compendium[laaru-dnd5-hw.actions.H9TgqPZGVRUQY4GF]{Засада} или @Compendium[laaru-dnd5-hw.actions.ydiv2XUXmVXv5ENI]{Использование объекта}.
Когда заклинание прекращает действовать, цель не может ни перемещаться, ни совершать действия до конца своего следующего хода - её охватывает слабость.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uvelichenie_umen�shenie-_-Enlarge_Reduce.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uvelichenie_umen�shenie-_-Enlarge_Reduce.json new file mode 100755 index 0000000..803e6e4 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uvelichenie_umen�shenie-_-Enlarge_Reduce.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Увеличение/уменьшение / Enlarge/Reduce", + "img": "icons/magic/control/silhouette-grow-shrink-tan.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы заставляете существо или объект, который видите в пределах дистанции, стать больше или меньше, пока длится заклинание. Выберите существо или объект, который не носят и не держат. Если цель не согласна, она может пройти испытание Выносливости. При успехе заклинание не сработает.
Если цель — существо, всё, что оно носит и держит, меняет размер вместе с ним. Любой предмет, который уронит цель, немедленно вернётся к обычному размеру.
Увеличение. Размер цели по всем измерениям удваивается, а ее вес увеличивается в восемь раз. Увеличение повышает размер цели на одну категорию — например, со среднего до крупного. Если для полного увеличения цели не хватает места, она увеличивается настолько, насколько позволяет доступное пространство. Пока длится заклинание, у цели также преимущество к проверкам и испытаниям Силы. Оружие цели также увеличивается до её нового размера. Пока оружие увеличено, атаки цели с его использованием наносят дополнительно [[/r 1d4]] урона.
Уменьшение. Размер цели по всем измерениям уменьшается вдвое, а её вес уменьшается в восемь раз. Уменьшение снижает размер цели на одну категорию - например, со среднего до небольшого. Пока длится заклинание, у цели также помеха к проверкам и испытаниям Силы. Оружие цели также уменьшается до ее нового размера. Пока оружие уменьшено, атаки цели с его использованием наносят на [[/r 1d4]] меньше урона (но не меньше 1).
*Используйте для визуализации макрос @UUID[Compendium.laaru-dnd5-hw.macro.PbsokcPJs6YZZ44T]{Изменение Размера}
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uzhas-_-Fear.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uzhas-_-Fear.json new file mode 100755 index 0000000..d8b75fa --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Uzhas-_-Fear.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ужас / Fear", + "img": "icons/creatures/slimes/slime-face-hollow-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы проецируете призрачный образ того, чего существо боится больше всего. Каждое существо в пределах 30-футового конуса должно пройти испытание Мудрости. При провале оно уронит то, что держит в данный момент, и будет &reference[frightened]{испугано}, пока длится заклинание.
Пока существо &reference[frightened]{испугано} этим заклинанием, оно должно в каждый свой ход совершать действие @Compendium[laaru-dnd5-hw.actions.v1tkJ8DKVJFCNFPM]{Рывок} и перемещаться как можно дальше от вас безопасным путём, пока ему не станет некуда бежать. Если цель заканчивает ход в таком месте, где вы больше не будете на её линии видимости, она может пройти испытание Мудрости. При успехе заклинание прекращает на неё действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vechnyy-svet-_-Continual-Flame.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vechnyy-svet-_-Continual-Flame.json new file mode 100755 index 0000000..1bac0b7 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vechnyy-svet-_-Continual-Flame.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вечный свет / Continual Flame", + "img": "icons/magic/fire/flame-burning-fence.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Свет, равный по яркости @UUID[Compendium.laaru-dnd5-hw.goods.1mDvh7GEWrbuq3jt]{факелу}, вспыхивает на предмете, которого вы коснётесь. Он выглядит как обычное пламя, но от него нет жара, и он не тратит кислород. Вечный свет можно спрятать или накрыть, но нельзя погасить.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ved�movskoy-razryad-_-Witch-Bolt.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ved�movskoy-razryad-_-Witch-Bolt.json new file mode 100755 index 0000000..c384185 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Ved�movskoy-razryad-_-Witch-Bolt.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ведьмовской разряд / Witch Bolt", + "img": "icons/magic/lightning/bolt-strike-sparks-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Трескучий разряд синей энергии обрушивается на существо в пределах дистанции, создавая между вами и целью постоянную дугу-молнию. Совершите дистанционную атаку заклинанием по этому существу. При попадании цель получает [[/r 1d12]] урона молнией, а в каждый ваш последующий ход, пока длится заклинание, вы можете использовать действие, чтобы автоматически нанести цели ещё [[/r 1d12]] урона молнией. Заклинание прекращает действовать, если вы потратите действие на что-либо еще. Заклинание также прекращается, если цель окажется за пределами дистанции заклинания или будет полностью укрыта от вас.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, начальный урон увеличивается на [[/r 1d12]] за каждый круг ячейки выше 1-го
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rsak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12", + "lightning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "5", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vernyy-udar-_-True-Strike.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vernyy-udar-_-True-Strike.json new file mode 100755 index 0000000..61ed03b --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vernyy-udar-_-True-Strike.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Верный удар / True Strike", + "img": "icons/skills/ranged/target-bullseye-archer-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Пока длится заклинание, вы видите &reference[invisible]{невидимых } существ и объекты, как если бы они были видимы, и можете видеть Эфирный план. Эфирные существа и объекты кажутся вам призрачно-полупрозрачными.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vkusnye-yagody-_-Goodberry.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vkusnye-yagody-_-Goodberry.json new file mode 100755 index 0000000..87be9ee --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vkusnye-yagody-_-Goodberry.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вкусные ягоды / Goodberry", + "img": "icons/consumables/fruit/berry-dates-jujube-red.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Несколько ягод (не более 10), наполненных магией, появляются в вашей руке. Существо может использовать действие, чтобы съесть одну ягоду. Это восстановит ему 1 ПЗ, кроме того, ягода достаточно питательна, чтобы насытить существо на целый день.
\nЯгоды становятся бесполезны, если их не съесть в течение 24 часов после сотворения заклинания.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vnushenie-_-Suggestion.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vnushenie-_-Suggestion.json new file mode 100755 index 0000000..df7a4ce --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vnushenie-_-Suggestion.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Внушение / Suggestion", + "img": "icons/magic/nature/elemental-plant-humanoid.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы магически внушаете выбранному существу в пределах дистанции, которое может вас слышать и понимать, совершить определённые действия (описание которых ограничено одним-двумя предложениями). На существ с невосприимчивостью к &reference[charmed]{обворожению} заклинание не действует. Внушение должно быть сформулировано так, чтобы существу эти действия показались разумными. Если вы прикажете существу заколоться, броситься на копьё, поджечь себя или каким-то ещё образом явно нанести себе вред, заклинание сразу прекращает действовать.
Цель должна пройти испытание Мудрости. При провале она выполняет внушённые вами действия по мере своих возможностей. Выполнение может занимать всю длительность заклинания. Если внушённые действия можно совершить быстрее, заклинание прекращает действовать, как только цель совершит их.
Можно также указать условия, при которых внушение сработает в пределах длительности. К примеру, вы можете внушить рыцарю отдать своего коня первому встречному нищему. Если условия не выполняются до конца длительности, действия тоже не совершаются.
Если вы или ваши спутники наносите цели урон, заклинание прекращает действовать.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "8", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "material", + "concentration", + "vocal", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnaya-strela-_-Magic-missile.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnaya-strela-_-Magic-missile.json new file mode 100755 index 0000000..fcd8814 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnaya-strela-_-Magic-missile.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебная стрела / Magic missile", + "img": "icons/skills/ranged/arrows-flying-salvo-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы создаёте три светящихся стрелы из магической силы. Каждая стрела поражает выбранное вами существо в пределах дистанции, которое вы видите. Каждая стрела наносит цели [[/r 1d4 + 1]] урона силой. Все три стрелы поражают цели одновременно, вы можете направить их как в одно существо, так и в несколько разных.
На высоких кругах. Если вы сотворяете это заклинание, используя ячейку 2-го круга или выше, заклинание создаёт по дополнительной стреле за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "int", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + 1", + "force" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "int" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "mgc", + "vocal", + "somatic", + "mgc" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnoe-oruzhie-_-Magic-weapon.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnoe-oruzhie-_-Magic-weapon.json new file mode 100755 index 0000000..b3f1684 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnoe-oruzhie-_-Magic-weapon.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебное оружие / Magic weapon", + "img": "icons/weapons/clubs/club-spiked-glowing.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к немагическому оружию. Пока длится заклинание, это оружие становится магическим с бонусом +1 к броскам атаки и урона.
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, бонус увеличивается до +2. Если вы используете ячейку 6-го круга или выше, бонус увеличивается до +3
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnyy-rot-_-Magic-Mouth.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnyy-rot-_-Magic-Mouth.json new file mode 100755 index 0000000..440dd50 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnyy-rot-_-Magic-Mouth.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный рот / Magic Mouth", + "img": "icons/magic/control/fear-fright-jackolantern-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы вкладыва послание в объект пределах дистанции. Оно будет произнесено, когда наступит определённое условие. Выберите объект, который вы видите и который не носит и не держит другое существо. Произнесите сообщение, не превышающее 25 слов (впрочем, произноситься оно может вплоть до 10 минут). Определите, при каком условии заклинание сработает и воспроизведёт ваше сообщение
\nПри наступлении этого условия на объекте появится волшебный рот и произнесёт сообщение вашим голосом с той же громкостью, с какой говорили вы. Если у избранного вами объекта есть свой рот или нечто похожее (например, у статуи), волшебный рот появляется там, как будто статуя разговаривает. Когда вы сотворяете заклинание, вы решаете, прекращается ли заклинание после воспроизведения сообщения или сохранится и будет повторять сообщение при каждом наступлении условия.
\nУсловие может быть приблизительным или конкретным, но оно должно быть основано на видимых или слышимых обстоятельствах в пределах 30 футов от предмета. К примеру, можете велеть рту заговорить, когда любое существо подходит к нему ближе чем на 30 футов или когда зазвенит серебряный колокольчик в пределах зо футов от него.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnyy-zasov-_-Arcane-Lock.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnyy-zasov-_-Arcane-Lock.json new file mode 100755 index 0000000..c60e811 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Volshebnyy-zasov-_-Arcane-Lock.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Волшебный засов / Arcane Lock", + "img": "icons/sundries/misc/lock-open-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к закрытой двери, окну, воротам, сундуку или иному входу, и он будет заперт, пока длится заклинание. Только вы и существа, выбранные вами при сотворении, можете открывать его как обычно. Можете также задать пароль, который, если произнести его в 5 футах от объекта, подавляет заклинание на 1 минуту. В противном случае открыть его нельзя, если только не выломать его или не подавить либо не рассеять заклинание. Заклинание @Compendium[laaru-dnd5-hw.spells.PJIQYRUNqG5PODUx]{Стук} подавляет волшебный засов на 10 минут.
\nПод действием заклинания объект труднее сломать или взломать, СЛ того, чтобы его сломать или взломать его замки, увеличивается на 10.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "perm" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vozrozhdenie-_-Revivify.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vozrozhdenie-_-Revivify.json new file mode 100755 index 0000000..5063581 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vozrozhdenie-_-Revivify.json @@ -0,0 +1,116 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Возрождение / Revivify", + "img": "icons/magic/life/heart-hand-gold-green-light.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "inst" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "heal", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "healing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vsplesk-kisloty-_-Acid-Splash.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vsplesk-kisloty-_-Acid-Splash.json new file mode 100755 index 0000000..ffd796f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vsplesk-kisloty-_-Acid-Splash.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Всплеск кислоты / Acid Splash", + "img": "icons/magic/acid/projectiles-trio-salvo.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы кидаете во врага пузырь кислоты. Выберите одно существо, которое видите в пределах дистанции, или двух существ, которых видите в пределах дистанции, если они в пределах 5 футов друг от друга. Каждая цель должна успешно пройти испытание Ловкости, иначе она получит [[/r 1d6]] урона кислотой
\nУрон заклинания увеличивается на [[/r 1d6]] , когда вы достигаете 5-го ([[/r 2d6]]), 11-го ([[/r 3d6]]) и 17-го уровня ([[/r 4d6]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вокруг точки, которую вы видите прямо над вами в пределах дистанции, появляется грозовое облако в форме цилиндра 10 футов высотой и радиусом 60 футов. Заклинание не сработает, если вы не видите точки, где может появиться облако (к примеру, если вы в комнате, где оно не поместится).
\nКогда вы творите это заклинание, выберите точку, которую видите, находящуюся под облаком. Молния обрушивается из облака в эту точку. Каждое существо в пределах 5 футов от точки должно пройти испытание Ловкости. При провале существо получает [[/r 3d10]] урона молнией, при успехе — половину этого урона. В каждый ваш ход, пока длится заклинание, вы можете использовать действие, чтобы таким образом вызвать молнию в ту же точку или в другую.
\nЕсли вы творите это заклинание под открытым небом в бурю, оно даёт вам власть над уже существующей грозой, а не создаёт новую. В таких условиях урон заклинания увеличивается на [[/r 1d10]].
\nНа высоких кругах. Если вы сотворяете это заклинание, используя ячейку 4-го круга или выше, урон увеличивается на [[/r 1d10]] за каждый круг ячейки выше 3-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "3d10", + "lightning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vyzov-na-duel�-_-Compelled-Duel.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vyzov-na-duel�-_-Compelled-Duel.json new file mode 100755 index 0000000..4b62f8b --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Vyzov-na-duel�-_-Compelled-Duel.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Вызов на дуэль / Compelled Duel", + "img": "icons/skills/melee/strike-stake-gray.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы пытаетесь заставить существо принять ваш вызов на дуэль. Одно существо, которое вы видите в пределах дистанции, должно пройти испытание Мудрости. При провале божественная воля направляет это существо к вам. Пока длится заклинание, у него помеха к броскам атаки по всем существам, кроме вас, и всякий раз, когда оно пытается переместиться в пространство за пределами 30 футов от вас, оно должно проходить испытание Мудрости; при успехе этого испытания заклинание не ограничивает перемещение существа в этот ход.
Заклинание прекращает действовать, если вы атакуете любое другое существо, сотворяете заклинание, нацеленное на другое враждебное существо, или если существо, дружественное вам, нанесёт цели урон или сотворит на неё вредоносное заклинание, или если вы закончите ход более чем в 30 футах от цели.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yarostnaya-kara-_-Wrathful-Smite.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yarostnaya-kara-_-Wrathful-Smite.json new file mode 100755 index 0000000..a30b803 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yarostnaya-kara-_-Wrathful-Smite.json @@ -0,0 +1,114 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Яростная кара / Wrathful Smite", + "img": "icons/weapons/polearms/spear-flared-silver-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваша атака дополнительно наносит [[/r 1d6]] психического урона. Кроме того, если цель — существо, оно должно пройти испытание Мудрости. При провале оно будет &reference[frightened]{испугано} вами, пока длится заклинание. Существо может в качестве действия пройти проверку Мудрости, чтобы собраться с духом и прекратить заклинание. СЛ равна СЛ испытаний против ваших заклинаний.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "psychic" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yasnovidenie-_-Clairvoyance.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yasnovidenie-_-Clairvoyance.json new file mode 100755 index 0000000..37d1243 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yasnovidenie-_-Clairvoyance.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Ясновидение / Clairvoyance", + "img": "icons/magic/perception/orb-crystal-ball-scrying.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте невидимый сенсор в пределах дистанции в знакомом вам месте (которое уже посещали или видели прежде) или незнакомом, но очевидном месте (например, за дверью, за углом, в роще деревьев). Сенсор остается на месте, пока длится заклинание, его нельзя атаковать или как-то с ним взаимодействовать.
Когда вы творите это заклинание, выберите зрение или слух. Вы получите выбранный способ восприятия через сенсор, как если бы находились на его месте. В качестве действия вы можете переключиться между зрением и слухом. Существо, способное увидеть сенсор (например, благодаря заклинанию @Compendium[laaru-dnd5-hw.spells.tVkOKnYPKNHRlHdH]{Видение невидимого} или обладающее &reference[truesight]{истинным зрением}), видит светящийся нематериальный шар размером с ваш кулак.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 10, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "", + "type": "space", + "prompt": true + }, + "range": { + "value": 1, + "long": null, + "units": "mi" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yazvitel�naya-nasmeshka-_-Vicious-Mockery.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yazvitel�naya-nasmeshka-_-Vicious-Mockery.json new file mode 100755 index 0000000..9ef1620 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Yazvitel�naya-nasmeshka-_-Vicious-Mockery.json @@ -0,0 +1,112 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Язвительная насмешка / Vicious Mockery", + "img": "icons/creatures/magical/spirit-poison-smoke-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы обрушиваете тираду оскорблений, приправленных незаметными чарами, на существо, которое видите в пределах дистанции. Если цель может слышать вас (ей необязательно вас понимать, она должна пройти испытание Мудрости. При провале она получает [[/r 1d4]] психического урона и помеху к следующему броску атаки, который совершит до конца своего следующего хода.
\nУрон заклинания увеличивается на [[/r 1d4]], когда вы достигаете 5-го ([[/r 2d4]]), 11-го ([[/r 3d4]]) и 17-го уровня ([[/r 4d4]]).
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 10. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы сплетаете нить из обманчивых слов, заставляя способных слышать вас существ на ваш выбор, которых Вы видите в пределах дистанции, пройти испытание Мудрости. Любое существо, которое нельзя &reference[charmed]{обворожить}, автоматически успешно проходит испытание. Если ваши спутники сражаются с этим существом, у него есть преимущество к испытанию. При провале цель получает помеху к проверкам Мудрости (Внимание) для того, чтобы воспринимать любое существо, кроме вас, пока длится заклинание или пока цель не перестанет слышать вас. Заклинание прекращает действовать, если вы &reference[incapacitated]{выведены из строя} или не можете больше говорить.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "creature", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zamedlenie-_-Slow.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zamedlenie-_-Slow.json new file mode 100755 index 0000000..7a3530c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zamedlenie-_-Slow.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Замедление / Slow", + "img": "icons/creatures/invertebrates/snail-movement-green.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы меняете ход времени для не более чем шести выбранных вами существ в 40-футовом кубе в пределах дистанции. Каждая цель должна пройти испытание Мудрости. При провале она попадает под влияние заклинания, пока оно длится. Скорость цели под влиянием заклинания снижается вдвое. Цель получает штраф –2 к КБ и испытаниям Ловкости и не может совершать @UUID[Compendium.laaru-dnd5-hw.actions.Item.mMwkUE20bEfKeetq]{ответные действия}. В свой ход она может использовать либо действие, либо бонусное действие, но не оба. Вне зависимости от способностей и магических предметов, существо не может совершить более одной атаки (дистанционной или ближнего боя) в свой ход. Если существо попытается сотворить заклинание, время сотворения которого составляет 1 действие, бросьте [[/r d20]]. Если выпало 11 или больше, заклинание не начнёт действовать до следующего хода существа, и существо должно потратить действие в следующий ход, чтобы завершить заклинание. Если оно не сможет этого сделать, заклинание потрачено зря.
Существо, попавшее под влияние заклинания, снова проходит испытание Мудрости в конце каждого своего хода. При успехе заклинание прекращает действовать на него.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "40", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-energii-_-Protection-from-Energy.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-energii-_-Protection-from-Energy.json new file mode 100755 index 0000000..6472e3c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-energii-_-Protection-from-Energy.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от энергии / Protection from Energy", + "img": "icons/magic/lightning/bolt-strike-explosion-yellow.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "touch", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "concentration", + "vocal", + "somatic", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-yada-_-Protection-from-Poison.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-yada-_-Protection-from-Poison.json new file mode 100755 index 0000000..f724a41 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-yada-_-Protection-from-Poison.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от яда / Protection from Poison", + "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к существу. Если оно было &reference[poisoned]{отравлено}, вы нейтрализуете яд. Если оно было отравлено более чем одним ядом, вы нейтрализуете один яд из тех, о которых знаете, или один случайный.
Пока длится заклинание, у цели есть преимущество к испытаниям против яда и @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к урону ядом.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-zla-i-ot-dobra-_-Protection-from-Evil-and-Good.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-zla-i-ot-dobra-_-Protection-from-Evil-and-Good.json new file mode 100755 index 0000000..1931089 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchita-ot-zla-i-ot-dobra-_-Protection-from-Evil-and-Good.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защита от зла и от добра / Protection from Evil and Good", + "img": "icons/magic/defensive/shield-barrier-deflect-gold.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Пока длится заклинание, одно согласное существо, которого вы коснулись, защищено от определенных типов существ: аберраций, бестий, небожителей, нежити, фей и элементалей.
Защита дает несколько выгод. Существа этих типов получают помеху к броскам атаки по цели. Цель не может быть &reference[charmed]{обворожена}или &reference[frightened]{испугана} ими, они не могут в нее вселиться. Если цель уже обворожена или испугана подобным существом либо оно вселилось в нее, она получает преимущество к любому последующему испытанию против этого эффекта.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "10", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "concentration", + "vocal", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchitnye-uzy-_-Warding-Bond.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchitnye-uzy-_-Warding-Bond.json new file mode 100755 index 0000000..c57098d --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zashchitnye-uzy-_-Warding-Bond.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Защитные узы / Warding Bond", + "img": "icons/equipment/head/helm-barbute-horned-gold-pink.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Это заклинание защищает согласное существо, которого вы коснулись, и создаёт между вами и целью мистическую связь, пока длится заклинание. Пока цель находится в пределах 60 футов от вас, она получает бонус +1 к КБ и испытаниям и @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} ко всему урону. Когда цель получает урон, вы получаете такой же урон.
\nЗаклинание прекращает действовать, если ваши ПЗ снижаются до 0 или если вас и цель разделяет более 60 футов. Также оно прекращает действовать, если это заклинание сотворить снова на любое из связанных существ. Вы можете прекратить заклинание, потратив действие.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zavorazhivayushchiy-uzor-_-Hypnotic-Pattern.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zavorazhivayushchiy-uzor-_-Hypnotic-Pattern.json new file mode 100755 index 0000000..ed06517 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zavorazhivayushchiy-uzor-_-Hypnotic-Pattern.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Завораживающий узор / Hypnotic Pattern", + "img": "icons/magic/control/hypnosis-mesmerism-swirl.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Вы создаёте калейдоскопический цветной узор, который сплетается в воздухе в 30-футовом кубе в пределах дистанции. Узор появляется на миг и исчезает. Каждое существо в этой области, увидевшее узор, должно пройти испытание Мудрости. При провале существо &reference[charmed]{обворожено}, пока длится заклинание. Пока существо обворожено этим заклинанием, оно &reference[incapacitated]{выведено из строя} и его скорость равна 0.
Заклинание прекращается для существа, если оно получает любой урон или если кто-то другой использует действие, чтобы встряхнуть существо, позволяя ему выйти из ступора.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "30", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 120, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "wis", + "dc": 15, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "somatic", + "material", + "concentration", + "somatic", + "material", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zerkal�noe-otrazhenie-_-Mirror-Image.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zerkal�noe-otrazhenie-_-Mirror-Image.json new file mode 100755 index 0000000..aa472f6 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zerkal�noe-otrazhenie-_-Mirror-Image.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Зеркальное отражение / Mirror Image", + "img": "icons/magic/defensive/illusion-evasion-echo-purple.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Три ваших иллюзорных двойника появляются в занимаемом вами пространстве. Пока длится заклинание, двойники перемещаются вместе с вами, повторяя ваши действия и меняясь местами, так что невозможно уследить, кто из вас реален. Вы можете использовать действие, чтобы рассеять иллюзорных двойников.
Пока длится заклинание, каждый раз, когда существо выбирает вас целью атаки, бросьте [[/r d20]], чтобы определить, будет ли атака нацелена на вас или на ваших двойников.
Если у вас три двойника, то двойник станет целью атаки при результате 6 и более. Если двойников двое, надо получить 8 или более. Если двойник один 11 или более.
КБ двойника равен 10 + ваш модификатор Ловкости. Если атака попадает в двойника, он уничтожается. Двойника можно уничтожить только попавшей по нему атакой. Он невосприимчив к любому другому урону и эффектам. Заклинание прекращает действовать, когда уничтожены все три двойника.
Заклинание не действует на существо, которое не может видеть или полагается на другие способы восприятия, например обладает @UUID[Compendium.laaru-dnd5-hw.conditions.x7Ty7ddxZGFudOeO]{слепозрением}, или если оно способно распознавать иллюзии, например обладает &reference[truesight]{истинным зрением}.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "vocal", + "somatic" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zhguchaya-kara-_-Searing-Smite.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zhguchaya-kara-_-Searing-Smite.json new file mode 100755 index 0000000..c7378d9 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zhguchaya-kara-_-Searing-Smite.json @@ -0,0 +1,118 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Жгучая кара / Searing Smite", + "img": "icons/skills/melee/strike-hammer-destructive-orange.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
В следующий раз, когда вы попадаете по существу атакой оружием в ближнем бою, пока длится заклинание, ваше оружие раскаляется добела и атака дополнительно наносит цели [[/r 1d6]] урона огнём. Цель загорается и в начале каждого своего хода, пока длится заклинание, должна проходить испытание Выносливости. При провале она получает ещё [[/r 1d6]] урона огнём. При успехе заклинание прекращается. Если цель или существо в пределах 5 футов от неё использует действие, чтобы погасить пламя, или какой-то ещё эффект погасит его (например, цель окажется под водой), заклинание прекращается.
На высоких кругах. Если сотворяете это заклинание, используя ячейку 2-го круга или выше, начальный дополнительный урон, наносимый атакой, увеличивается на [[/r 1d6]] за каждый круг ячейки выше 1-го.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "bonus", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "self", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "self" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6", + "fire" + ], + [ + "1d6", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "con", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zhivotnoe-poslannik-_-Animal-Messenger.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zhivotnoe-poslannik-_-Animal-Messenger.json new file mode 100755 index 0000000..24208da --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zhivotnoe-poslannik-_-Animal-Messenger.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Животное-посланник / Animal Messenger", + "img": "icons/creatures/birds/dove-pigeon-flying-white.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "24", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zverinoe-chut�yo-_-Beast-Sense.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zverinoe-chut�yo-_-Beast-Sense.json new file mode 100755 index 0000000..5e6779c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-Zverinoe-chut�yo-_-Beast-Sense.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Звериное чутьё / Beast Sense", + "img": "icons/magic/fire/flame-burning-eye.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Прикоснитесь к согласному животному. Пока длится заклинание, вы можете использовать действие, чтобы увидеть то, что видит животное, и услышать то, что оно слышит. Так будет продолжаться, пока вы не используете действие, чтобы вернуться к своему обычному восприятию. Пока вы воспринимаете мир с помощью животного, вы получаете все его особые способы восприятия, но &reference[blinded]{слепы} и &reference[deafened]{глухи} к тому, что происходит вокруг вашего тела.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "somatic", + "ritual", + "concentration", + "somatic", + "ritual", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�al�shivaya-smert�-_-Feign-Death.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�al�shivaya-smert�-_-Feign-Death.json new file mode 100755 index 0000000..e197f9c --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�al�shivaya-smert�-_-Feign-Death.json @@ -0,0 +1,113 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фальшивая смерть / Feign Death", + "img": "icons/magic/death/grave-tombstone-glow-teal.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Прикоснитесь к согласному существу и погрузите его в состояние каталепсии, неотличимое от смерти.
Пока длится заклинание или пока вы не используете действие, чтобы коснуться цели, и не прекратите заклинание, цель кажется мёртвой для стороннего наблюдателя и даже для заклинаний, определяющих её состояние. Цель &reference[blinded]{слепа} и &reference[incapacitated]{выведена из строя}, а её скорость снижается до 0. У цели @UUID[Compendium.laaru-dnd5-hw.conditions.w7WKEM8had6v4vy8]{устойчивость} к любому урону, кроме психического. Если цель была больна или отравлена в момент сотворения заклинания или становится больна или &reference[poisoned]{отравлена}, пока оно действует, то болезнь или яд не оказывают на неё влияния, пока длится заклинание.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "ritual", + "vocal", + "somatic", + "material", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�antomnyy-skakun-_-Phantom-Steed.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�antomnyy-skakun-_-Phantom-Steed.json new file mode 100755 index 0000000..a312a01 --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�antomnyy-skakun-_-Phantom-Steed.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фантомный скакун / Phantom Steed", + "img": "icons/creatures/mammals/spirit-deer-herd-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Крупное квазиреальное существо, похожее на лошадь, появляется на земле в незанятом пространстве на ваш выбор в пределах дистанции. Вы можете сами придумать внешний вид существа. На нем есть седло и узда. Всё снаряжение, созданное заклинанием, испаряется, если окажется за пределами 10 футов от скакуна.
\nПока длится заклинание, вы или выбранное вами существо можете ездить на этом скакуне. Существо обладает параметрами скаковой лошади, но его скорость достигает 100 футов, и оно может перемещаться на 10 миль в час или 13 миль, если скачет галопом. Когда заклинание прекращает действовать, скакун медленно исчезает, давая всаднику 1 минуту на то, чтобы спешиться. Заклинание прекращает действовать, если вы прекратите его, потратив действие, или если скакун получит какой-либо урон.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 13. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 15
Бонус атаки: +7.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 13. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "minute", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "0", + "width": null, + "units": "any", + "type": "space", + "prompt": true + }, + "range": { + "value": 30, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "ritual", + "vocal", + "somatic", + "ritual" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�eyskoe-siyanie-_-Faerie-fire.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�eyskoe-siyanie-_-Faerie-fire.json new file mode 100755 index 0000000..ae0142f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�eyskoe-siyanie-_-Faerie-fire.json @@ -0,0 +1,109 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фейское сияние / Faerie fire", + "img": "icons/magic/light/explosion-star-glow-silhouette.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Требует концентрацию
Каждый объект внутри 20-футового куба в пределах дистанции окружает синий, зелёный или лиловый свет (на ваш выбор). Любое существо, оказавшееся во время сотворения в области действия, тоже окружает свет, если оно проваливает испытание Ловкости. Пока длится заклинание, объекты и существа под его влиянием испускают &reference[dimlight]{тусклый свет} в радиусе 10 футов.
Любой бросок атаки против подсвеченного существа или объекта имеет преимущество, если атакующий видит цель. Подсвеченное существо или объект не получает пользы от &reference[invisible]{невидимости}
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 11. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 11. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "20", + "width": null, + "units": "ft", + "type": "cube", + "prompt": true + }, + "range": { + "value": 60, + "long": null, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "concentration", + "vocal", + "concentration" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�okus-s-veryovkoy-_-Rope-Trick.json b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�okus-s-veryovkoy-_-Rope-Trick.json new file mode 100755 index 0000000..ae4927a --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/Svitok-zaklinaniya_-�okus-s-veryovkoy-_-Rope-Trick.json @@ -0,0 +1,111 @@ +{ + "type": "consumable", + "name": "Свиток заклинания: Фокус с верёвкой / Rope Trick", + "img": "icons/tools/nautical/rope-line-blue.webp", + "system": { + "description": { + "value": "Свиток заклинания содержит слова одного заклинания, записанные мистическим шифром. Если заклинание есть в списке заклинаний вашего класса, вы можете прочитать свиток и сотворить заклинание, при этом вам не требуются реагенты. В ином случае свиток для вас нечитаем. Сотворение заклинания со свитка требует обычного времени сотворения. Как только заклинание сотворено, слова на свитке исчезают и он рассыпается в прах. Если сотворение прервано, свиток не исчезает.
Вы касаетесь отрезка верёвки не длиннее 60 футов. Один из концов верёвки взмывает в воздух так, что верёвка повисает в воздухе на всю длину перпендикулярно земле. На верхнем конце верёвки появляется невидимый вход в межпространственный карман, который остается там, пока длится заклинание.
\nВ межпространственный карман можно попасть, взобравшись по верёвке до верха. В пространство могут уместиться не более восьми существ среднего размера или меньше. Саму верёвку можно втянуть в пространство, после чего она станет невидима снаружи.
\nАтаки и заклинания не могут проходить через вход в межпространственный карман ни наружу, ни внутрь. Однако те, кто находится в нем, могут смотреть через вход, который выглядит как просвет 3 на 5 футов вокруг верёвки. Когда заклинание прекращает действовать, все, что находилось в межпространственном кармане, выпадает наружу.
Если заклинание есть в списке заклинаний вашего класса, но выше кругом, чем заклинания, которые вы можете сотворять, вам надо пройти проверку заклинательной характеристики, чтобы определить, удастся ли вам его сотворить. СЛ равна 12. При провале заклинание исчезает со свитка и не действует.
Редкость свитка, СЛ испытаний против заклинания и бонус атаки зависят от круга заклинания, как указано в таблице ниже.
СЛ испытаний: 13
Бонус атаки: +5.
Заклинание волшебника можно скопировать в книгу заклинаний со свитка так же, как из другой книги заклинаний. При копировании со свитка, копирующий должен пройти проверку Интеллекта (Магия) со СЛ 12. При успехе заклинание скопировано. Как при успехе, так и при провале, свиток заклинания уничтожается.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 250, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "uncommon", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "hour" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "spec", + "type": "object", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "touch" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "scroll", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [ + "mgc", + "vocal", + "somatic", + "material", + "vocal", + "somatic", + "material" + ], + "attack": { + "bonus": "", + "flat": true + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/scrolls/fvtt-Item-zaklinanie_-opoznanie-SqOKXRr9g2JJuDGC.json b/test_tube_merchant/items/medium/scrolls/fvtt-Item-zaklinanie_-opoznanie-SqOKXRr9g2JJuDGC.json new file mode 100755 index 0000000..988604f --- /dev/null +++ b/test_tube_merchant/items/medium/scrolls/fvtt-Item-zaklinanie_-opoznanie-SqOKXRr9g2JJuDGC.json @@ -0,0 +1,108 @@ +{ + "name": "Заклинание: Опознание", + "type": "consumable", + "img": "icons/sundries/scrolls/scroll-bound-blue-red.webp", + "system": { + "description": { + "value": "[[Lookup @name]] Сообщает вам свойства магического предмета.
[[Lookup @name]] может использовать 3 закл в день
Эти специальные инструменты включают предметы, необходимые для занятия кожевенным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПознания в кожевенном деле распространяются на знания о шкурах животных и их свойствах. Они также включают в себя знания о кожаных доспехах и аналогичных вещах.
\nКомпоненты. Инструменты кожевенника включают кожевенный резак (нож), небольшую киянку, канавкорез, пробойник, нить и куски кожи.
\nМагия. Ваши знания и опыт в работе с кожей дают вам дополнительные знания при обследовании магических предметов, сделанных из кожи, как, например, ботинки или некоторые плащи.
\nРасследование. Вы получаете дополнительные знания, когда исследуете кожаные предметы или улики, связанные с ними, также вы используете свои познания в кожевничестве, чтобы находить зацепки, которые другие бы просмотрели.
\nОпознание кожи. Смотря на кусок кожи или кожаный предмет, вы можете определить источник кожи и любые особые методы, использованные в её обработке. Например, вы можете обнаружить разницу между кожей, выделанной с использованием дварфийских методик, и кожей, выделанной с использованием методик полуросликов.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Изменить внешний вид кожаного предмета | \n10 | \n
| Определить прошлое кожаного предмета | \n20 | \n
В качестве действия вы можете поставить капкан — зубчатое стальное колесо, которое захлопывается, когда существо наступает на прижимную пластину в центре. Капкан прикован тяжёлой цепью к неподвижному объекту вроде дерева или колышка, вбитого в землю. Существо, наступившее в капкан, должно пройти испытание Ловкости со СЛ 13, при провале получает [[/r 1d4]] колющего урона и прекращает перемещение. После этого, пока существо не освободится из капкана, его перемещение будет ограничено длиной цепи (обычно 3 фута). Существо может использовать действие, чтобы пройти проверку Силы со СЛ 13, при успехе освобождая себя или другое существо своей зоне досягаемости. При каждой неудачной проверке пойманное существо получает 1 колющий урон.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 25, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "", + "cost": 0, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "piercing" + ] + ], + "versatile": "1" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 13, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/kolchan-dlya-arbaletnyh-boltov-_-crossbow-bolt-case.json b/test_tube_merchant/items/medium/skin/kolchan-dlya-arbaletnyh-boltov-_-crossbow-bolt-case.json new file mode 100755 index 0000000..61f71c6 --- /dev/null +++ b/test_tube_merchant/items/medium/skin/kolchan-dlya-arbaletnyh-boltov-_-crossbow-bolt-case.json @@ -0,0 +1,55 @@ +{ + "name": "Колчан для арбалетных болтов / Crossbow Bolt Case", + "type": "container", + "img": "icons/containers/ammunition/arrows-quiver-green-brown.webp", + "system": { + "description": { + "value": "Деревянный футляр, вмещающий до двадцати арбалетных @UUID[Compendium.laaru-dnd5-hw.items.SItCnYBqhzqBoaWG]{болтов}.
", + "chat": "" + }, + "source": { + "custom": "РНВ" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 1.5 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crossbow Bolt Case" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/kolchan-dlya-strel-_-quiver.json b/test_tube_merchant/items/medium/skin/kolchan-dlya-strel-_-quiver.json new file mode 100755 index 0000000..40c1996 --- /dev/null +++ b/test_tube_merchant/items/medium/skin/kolchan-dlya-strel-_-quiver.json @@ -0,0 +1,55 @@ +{ + "name": "Колчан для стрел / Quiver", + "type": "container", + "img": "icons/containers/ammunition/arrows-quiver-brown-grey.webp", + "system": { + "description": { + "value": "Колчан вмещает до 20 @UUID[Compendium.laaru-dnd5-hw.items.3c7JXOzsv55gqJS5]{стрел}.
", + "chat": "" + }, + "source": { + "custom": "SRD 5.1" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 1 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Quiver" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/kozhanyj-dospeh-_-leather-armor.json b/test_tube_merchant/items/medium/skin/kozhanyj-dospeh-_-leather-armor.json new file mode 100755 index 0000000..b2e03ad --- /dev/null +++ b/test_tube_merchant/items/medium/skin/kozhanyj-dospeh-_-leather-armor.json @@ -0,0 +1,124 @@ +{ + "name": "Кожаный доспех / Leather Armor", + "type": "equipment", + "img": "icons/equipment/chest/breastplate-layered-leather-stitched.webp", + "system": { + "description": { + "value": "Сделан из вываренной в масле жёсткой кожи, защищающей грудь и плечи, и более мягких материалов в других местах.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 11, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "light", + "baseItem": "leather" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Leather Armor" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/odezhda-puteshestvennika-_-traveler's-clothes.json b/test_tube_merchant/items/medium/skin/odezhda-puteshestvennika-_-traveler's-clothes.json new file mode 100755 index 0000000..6489773 --- /dev/null +++ b/test_tube_merchant/items/medium/skin/odezhda-puteshestvennika-_-traveler's-clothes.json @@ -0,0 +1,124 @@ +{ + "name": "Одежда путешественника / Traveler's Clothes", + "type": "equipment", + "img": "icons/equipment/chest/shirt-collared-brown.webp", + "system": { + "description": { + "value": "Комплект одежды которую обычно носят путешественники.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "clothing", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Traveler's Clothes" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/ryukzak.json b/test_tube_merchant/items/medium/skin/ryukzak.json new file mode 100755 index 0000000..50a6a49 --- /dev/null +++ b/test_tube_merchant/items/medium/skin/ryukzak.json @@ -0,0 +1,59 @@ +{ + "name": "Рюкзак", + "type": "container", + "img": "icons/containers/bags/pack-simple-leather.webp", + "system": { + "description": { + "value": "Рюкзак может вмещать один кубический фут или 30 фунтов снаряжения. К внешней стороне рюкзака можно пристегнуть такие предметы, как спальный мешок или моток верёвки.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 30 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "folder": null, + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Backpack" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/skakovoe-sedlo.json b/test_tube_merchant/items/medium/skin/skakovoe-sedlo.json new file mode 100755 index 0000000..3026711 --- /dev/null +++ b/test_tube_merchant/items/medium/skin/skakovoe-sedlo.json @@ -0,0 +1,128 @@ +{ + "name": "Скаковое седло", + "type": "equipment", + "img": "icons/equipment/shoulder/pauldron-leather-molded.webp", + "system": { + "description": { + "value": "Тип седла, которое крепится на спине лошади и предназначено для поддержки всадника и крепления части снаряжения лошади, например, стремян. Этот тип седла подходит для ездовых скакунов.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 25, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": null, + "proficient": null, + "type": { + "value": "clothing", + "baseItem": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [], + "attack": { + "bonus": "", + "flat": false + }, + "enchantment": null, + "summons": null, + "attuned": false + }, + "effects": [], + "folder": null, + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Riding Saddle" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/skin/sklyanka-s-maslom.json b/test_tube_merchant/items/medium/skin/sklyanka-s-maslom.json new file mode 100755 index 0000000..fb1a984 --- /dev/null +++ b/test_tube_merchant/items/medium/skin/sklyanka-s-maslom.json @@ -0,0 +1,118 @@ +{ + "name": "Склянка с маслом", + "type": "consumable", + "img": "icons/consumables/potions/bottle-bulb-empty-glass.webp", + "system": { + "description": { + "value": "Масло обычно разливают в глиняные ёмкости объёмом в 1 пинту. В качестве действия вы можете выплеснуть масло из этой склянки на существо в пределах 5 футов от вас или метнуть её на 20 футов — от удара склянка разобьётся. Совершите дистанционную атаку по этому существу или объекту, считая масло импровизированным оружием.
При попадании цель будет покрыта маслом. Если цель получит какой-либо урон огнём прежде, чем масло высохнет (в течение 1 минуты), цель дополнительно получает 5 урона огнём от горящего масла. Можно также вылить масло из склянки на землю, что создаст лужу в 5-футовом квадрате, если поверхность ровная.
Если лужу поджечь, она будет гореть 2 раунда и наносить 5 урона огнём любому существу, которое войдет в эту область или закончит в ней свой ход. Существо может получить этот урон только раз в ход.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "sp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "1", + "units": "minute" + }, + "cover": null, + "target": { + "value": "1", + "width": null, + "units": "", + "type": "creature", + "prompt": true + }, + "range": { + "value": 5, + "long": 20, + "units": "ft" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "dex", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "5", + "fire" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "properties": [], + "attack": { + "bonus": "", + "flat": false + }, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "attuned": false + }, + "effects": [], + "folder": null, + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Oil Flask" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/instrumenty-vora-_-thieves'-tools.json b/test_tube_merchant/items/medium/thieves/instrumenty-vora-_-thieves'-tools.json new file mode 100755 index 0000000..35cdb45 --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/instrumenty-vora-_-thieves'-tools.json @@ -0,0 +1,92 @@ +{ + "name": "Инструменты вора / Thieves' Tools", + "type": "tool", + "img": "icons/tools/hand/lockpicks-steel-grey.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Thieves' Tools" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "В этот набор входит маленький напильник, набор отмычек, зеркальце на длинной металлической ручке, зауженные ножницы и плоскогубцы. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с попыткой взломать замок или обезвредить ловушку.
\nВоровские инструменты, возможно наиболее часто используемые искателями приключений инструменты, разработаны для взлома замков и обезвреживания ловушек. Умение в обращении с этими инструментами также даёт вам общие знания о принципах действий ловушек и замков.
\nКомпоненты. Воровские инструменты включают в себя надфиль, набор отмычек, небольшое зеркальце с металлической рукояткой, набор ножниц с узкими лезвиями и пару щипцов.
\nИстория. Ваши познания в области ловушек дают вам дополнительные знания при ответах на вопросы о местах, знаменитых своими ловушками.
\nВнимание, Расследование. Вы получаете дополнительные знания при поиске ловушек, потому что вам известны различные простые признаки, выдающие их наличие.
\nУстановка ловушки. Вы можете не только обезвреживать ловушки, но и устанавливать их. Частью короткого отдыха вы можете создать ловушку из подручных средств. Результат вашей проверки становится СЛ для пытающегося обнаружить или обезвредить ловушку. Ловушка наносит урон, соответствующий материалам, использованным при создании (как то яд или оружие), или урон, равный половине результата вашей проверки, смотря что Мастер сочтёт более подходящим.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Вскрыть замок | \nРазличная | \n
| Обезвредить ловушку | \nРазличная | \n
Короткий металлический клинок, прикрепленный к небольшой рукояти и гарде. Кинжал является эффективным вспомогательным оружием для закаленных воинов или скрытым клинком для убийц и воров.
", + "chat": "" + }, + "source": { + "custom": "", + "book": "SRD 5.1", + "page": "", + "license": "CC-BY-4.0" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt", + "thr" + ], + "proficient": null, + "type": { + "value": "simpleM", + "baseItem": "dagger" + }, + "unidentified": { + "description": "" + }, + "container": null, + "crewed": false, + "attack": { + "bonus": "", + "flat": false + }, + "summons": null, + "magicalBonus": null, + "enchantment": null, + "attuned": false + }, + "effects": [], + "folder": "EinwPOm9D8CS7QzU", + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Dagger" + }, + "test_tube_merchant": { + "quantity": "1d3 * 4 + 1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/korotkij-luk-_-shortbow.json b/test_tube_merchant/items/medium/thieves/korotkij-luk-_-shortbow.json new file mode 100755 index 0000000..bfb2c21 --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/korotkij-luk-_-shortbow.json @@ -0,0 +1,126 @@ +{ + "name": "Короткий лук / Shortbow", + "type": "weapon", + "img": "icons/weapons/bows/shortbow-recurve.webp", + "system": { + "description": { + "value": "Этот лук несколько меньше традиционного длинного, что делает его идеальным для быстрых атак в движении или верхом на скакуне.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.3c7JXOzsv55gqJS5]{Стрела}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 80, + "long": 320, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "two", + "amm" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleR", + "baseItem": "shortbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/korotkij-mech-_-shortsword.json b/test_tube_merchant/items/medium/thieves/korotkij-mech-_-shortsword.json new file mode 100755 index 0000000..0e01669 --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/korotkij-mech-_-shortsword.json @@ -0,0 +1,126 @@ +{ + "name": "Короткий меч / Shortsword", + "type": "weapon", + "img": "icons/weapons/swords/sword-guard-brown.webp", + "system": { + "description": { + "value": "Средних размеров клинок с прочной гардой и обтянутой кожей рукоятью. Универсальное оружие, которое компенсирует универсальностью то, что ему не хватает длины.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "shortsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortsword" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/lomik-_-crowbar.json b/test_tube_merchant/items/medium/thieves/lomik-_-crowbar.json new file mode 100755 index 0000000..261c158 --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/lomik-_-crowbar.json @@ -0,0 +1,45 @@ +{ + "name": "Ломик / Crowbar", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/crowbar.png", + "system": { + "description": { + "value": "Использование ломика как рычага (если это возможно) даёт преимущество к проверкам Силы.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crowbar" + }, + "test_tube_merchant": { + "quantity": "1d3 * 3 + 1d3" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/maskirovochnyj-nabor-_-disguise-kit.json b/test_tube_merchant/items/medium/thieves/maskirovochnyj-nabor-_-disguise-kit.json new file mode 100755 index 0000000..f9baa25 --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/maskirovochnyj-nabor-_-disguise-kit.json @@ -0,0 +1,92 @@ +{ + "name": "Маскировочный набор / Disguise Kit", + "type": "tool", + "img": "icons/commodities/materials/bowl-powder-blue.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Disguise Kit" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "midi-qol": { + "onUseMacroName": "", + "effectActivation": false + } + }, + "system": { + "description": { + "value": "Сумка с гримом, краской для волос и мелкой бутафорией, позволяющей загримироваться до неузнаваемости. Умение в обращении с набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с визуальной маскировкой.
\nОтличный выбор для любого, кто хочет заниматься обманом, маскировочный набор позволяет своему владельцу принимать фальшивую личину.
\nКомпоненты. Маскировочный набор включает в себя различную косметику, краску для волос, немного реквизита и несколько нарядов.
\nОбман. В некоторых случаях маскировка может помочь вам плести более убедительную ложь.
\nЗапугивание. Правильный образ может сделать вас более устрашающим, когда вы хотите кого-то отпугнуть, притворившись заражённым чумой, либо, когда запугиваете шайку бандитов под видом громилы-головореза.
\nИсполнение. Искусство перевоплощения может увеличить удовлетворённость публики выступлением, при условии, что обличье должным образом разработано, чтобы вызывать нужную реакцию.
\nУбеждение. Народ склонен доверять людям в форме. Если вы замаскировались под авторитетную фигуру, ваши попытки убедить других обычно более эффективны.
\nСоздание обличья. Частью долгого отдыха вы можете создать обличье для маскировки. Для смены обличья после его создания требуется 1 минута. Вы можете одновременно иметь при себе только одно такое обличье, не привлекая ненужного внимания, если только у вас нет сумки хранения или другого подобного способа хранить их незамеченными. Каждое такое обличье весит 500 грамм. В других случаях требуется 10 минут на создание обличья, которое немного изменяет вашу внешность, и 30 минут, если требуются более обширные изменения.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Скрыть травмы или особые приметы | \n10 | \n
| Распознать использование маскировки кем-либо другим | \n15 | \n
| Скопировать внешность гуманоида | \n20 | \n
Включает пузырьки, снадобья и прочие предметы, необходимые для приготовления ядов. Умение в обращении с этим набором позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с приготовлением и использованием ядов.
Излюбленное средство воров, убийц и прочих сомнительных личностей. Этот набор позволяет вам использовать яды и создавать их из различных веществ. Ваши познания в ядах также помогают вам излечивать от них.
Компоненты. Набор отравителя включает в себя стеклянные склянки, ступку и пестик, химические реагенты и стеклянную палочку для размешивания.
История. Ваша подготовка в использовании ядов может помочь вам при попытках вспомнить факты о печально известных отравлениях.
Внимание, Расследование. Ваши познания в ядах научили вас быть осторожным, имея дело с этими веществами, тем самым помогая вам при обследовании отравленного предмета или при получении зацепок о событиях, связанных с ядами.
Медицина. Когда вы лечите жертву яда, ваша осведомлённость может дать вам дополнительные знания о том, как правильнее ухаживать за отравленным.
Выживание, Природа. Работа с ядами позволила вам получить знания о том, какие растения и животные ядовиты.
Обращение с ядами. Ваше умение в обращении с этим набором позволяет вам аккуратно обращаться с ядами и использовать их без риска самому подвергнуться их действию.
| Возможное действие | СЛ |
|---|---|
| Опознать отравленный предмет | 10 |
| Определить эффект яда | 20 |
В качестве действия вы можете разбросать «чеснок» из мешочка, покрыв этими шипами квадратную область размером 5 на 5 футов. Существо, входящее в эту область, должно пройти испытание Ловкости со СЛ 15, при провале оно прекратит перемещение в этот ход и получит 1 колющий урон. Пока получившее урон существо не восстановит хоть 1 ПЗ, его скорость ходьбы будет снижена на 10 футов. Существу, перемещающемуся через область с половинной скоростью, испытание проходить не нужно.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0.1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "5", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 15, + "scaling": "flat" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Caltrops" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/svistok-_-signal-whistle.json b/test_tube_merchant/items/medium/thieves/svistok-_-signal-whistle.json new file mode 100755 index 0000000..bf8b655 --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/svistok-_-signal-whistle.json @@ -0,0 +1,45 @@ +{ + "name": "Свисток / Signal Whistle", + "type": "loot", + "img": "icons/tools/instruments/pipe-flute-brown.webp", + "system": { + "description": { + "value": "Может издавать специфический звук. Его можно услышать за полмили.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Signal Whistle" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/thieves/yad,-prostoj.json b/test_tube_merchant/items/medium/thieves/yad,-prostoj.json new file mode 100755 index 0000000..3f0f73c --- /dev/null +++ b/test_tube_merchant/items/medium/thieves/yad,-prostoj.json @@ -0,0 +1,180 @@ +{ + "folder": "EinwPOm9D8CS7QzU", + "name": "Яд, простой", + "type": "consumable", + "img": "icons/consumables/potions/potion-flask-corked-green.webp", + "system": { + "description": { + "value": "Простой яд, наносит 1к4 повреждений ядом при нанесении на оружие.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 100, + "denomination": "gp" + }, + "rarity": "common", + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "action", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true, + "autoDestroy": false + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "ench", + "attack": { + "bonus": "", + "flat": false + }, + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4", + "poison" + ] + ], + "versatile": "" + }, + "enchantment": { + "classIdentifier": "", + "restrictions": { + "allowMagical": true, + "type": "" + }, + "items": {} + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "summons": null, + "type": { + "value": "poison", + "subtype": "injury" + }, + "magicalBonus": null, + "properties": [] + }, + "effects": [ + { + "name": "Яд", + "flags": { + "dnd5e": { + "type": "enchantment", + "enchantment": { + "level": { + "min": null, + "max": null + }, + "riders": { + "effect": [], + "item": [] + } + } + }, + "dae": { + "stackable": "noneName", + "showIcon": false, + "durationExpression": "", + "specialDuration": [] + } + }, + "img": "icons/consumables/potions/potion-flask-corked-green.webp", + "_id": "BYlzlWtcQU5S3ebO", + "type": "base", + "system": {}, + "changes": [ + { + "key": "system.damage.parts", + "mode": 2, + "value": "[[\"1d4\",\"poison\"]]", + "priority": 20 + } + ], + "disabled": false, + "duration": { + "startTime": null, + "seconds": null, + "combat": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "coreVersion": "12.327", + "systemId": "dnd5e", + "systemVersion": "3.3.1", + "createdTime": 1724695326085, + "modifiedTime": 1724695771036, + "lastModifiedBy": "uygtCpIWAtXlcaXr" + } + } + ], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/derevo.json b/test_tube_merchant/items/medium/tools/derevo.json new file mode 100755 index 0000000..8831b6d --- /dev/null +++ b/test_tube_merchant/items/medium/tools/derevo.json @@ -0,0 +1,40 @@ +{ + "name": "Дерево", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/woods.png", + "system": { + "description": { + "value": "Деревянные планки размером 2 х 4 дюйма х 5 футов.
", + "chat": "" + }, + "source": { + "custom": "–" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "cp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 15 + 1d15" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/fonar�-obychnyj-_-hooded-lantern.json b/test_tube_merchant/items/medium/tools/fonar�-obychnyj-_-hooded-lantern.json new file mode 100755 index 0000000..5ca8472 --- /dev/null +++ b/test_tube_merchant/items/medium/tools/fonar�-obychnyj-_-hooded-lantern.json @@ -0,0 +1,109 @@ +{ + "name": "Фонарь обычный / Hooded Lantern", + "type": "consumable", + "img": "icons/sundries/lights/lantern-iron-yellow.webp", + "system": { + "description": { + "value": "Испускает свет во все стороны — яркий в радиусе 30 футов и тусклый ещё на 30 футов. Если его зажечь, он тратит за 6 часов склянку масла (1 пинту). В качестве действия можно опустить на фонарь колпак, чтобы приглушить свет до тусклого в радиусе 5 футов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hooded Lantern" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/fonar�-potajnoj-_-bullseye-lantern.json b/test_tube_merchant/items/medium/tools/fonar�-potajnoj-_-bullseye-lantern.json new file mode 100755 index 0000000..e41b8eb --- /dev/null +++ b/test_tube_merchant/items/medium/tools/fonar�-potajnoj-_-bullseye-lantern.json @@ -0,0 +1,109 @@ +{ + "name": "Фонарь потайной / Bullseye Lantern", + "type": "consumable", + "img": "icons/sundries/lights/lantern-bullseye-signal-copper.webp", + "system": { + "description": { + "value": "Испускает свет в виде направленного конуса — яркий на 60 футов и тусклый ещё на 60 футов. Если его зажечь, он тратит за 6 часов склянку масла (1 пинту).
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "120", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Bullseye Lantern" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/instrumenty-kamenshika-_-mason's-tools.json b/test_tube_merchant/items/medium/tools/instrumenty-kamenshika-_-mason's-tools.json new file mode 100755 index 0000000..208e8ea --- /dev/null +++ b/test_tube_merchant/items/medium/tools/instrumenty-kamenshika-_-mason's-tools.json @@ -0,0 +1,91 @@ +{ + "name": "Инструменты каменщика / Mason's Tools", + "type": "tool", + "img": "icons/tools/hand/hammer-and-nail.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Mason's Tools" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для работы с камнем. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nПозволяют вам возводить каменные строения, включая стены и здания из кирпича.
\nКомпоненты. Инструменты каменщика включают в себя мастерок, молоток, долото, щётки и угольник.
\nИстория. Ваш опыт помогает вам определять дату постройки и предназначение каменного здания, а также понять, кто мог его построить.
\nРасследование. Вы получаете дополнительные знания при обследовании помещений в каменном здании.
\nВнимание. Вы замечаете неровности на каменных стенах и полах, что облегчает поиск ловушек и тайных ходов.
\nСнос. Ваши познания в каменном зодчестве позволяют вам найти уязвимые места в кладке каменных стен. Вы наносите таким строениям двойной урон своими атаками.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Продолбить небольшое отверстие в каменной стене | \n10 | \n
| Найти слабое место в каменной стене | \n15 | \n
Эти специальные инструменты включают предметы, необходимые для занятия плотничеством. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nНавыки работы по дереву позволяют персонажу строить деревянные сооружения. Плотник может построить дом, хижину, деревянный шкаф или подобный предмет.
\nКомпоненты. Инструменты плотника включают в себя пилу, молоток, гвозди, топор, угольник, линейку, кородёр, рубанок и стамеску.
\nИстория. Умение в обращении с этими инструментами помогает вам определять происхождение и назначение деревянных строений и прочих больших деревянных объектов.
\nРасследование. Вы получаете дополнительные знания при обследовании области в деревянном здании, потому что знаете строительные хитрости, которые могут скрыть что-то от любопытных глаз.
\nВнимание. Вы можете заметить неровности на деревянных стенах и полу, что облегчает поиск ловушек и тайных ходов.
\nСкрытность. Вы можете быстро найти слабое место в деревянном полу, что облегчает вам определение мест, которые сломаются или заскрипят, если на них наступить.
\nУкрепление. За 1 минуту при наличии материалов вы можете укрепить дверь или окно. СЛ броска чтобы их выбить увеличивается на 5.
\nВременное укрытие. Частью долгого отдыха вы можете построить навес или подобное укрытие, чтобы укрыть свою группу от дождя или солнечного зноя на время отдыха. Поскольку оно было построено на скорую руку из первой попавшейся древесины, укрытие разваливается через [[/r 1d3]] дня после постройки.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Построить простое деревянное сооружение | \n10 | \n
| Спроектировать сложное деревянное строение | \n15 | \n
| Найти слабое место в деревянной стене | \n15 | \n
| Выломать дверь | \n20 | \n
Эти специальные инструменты включают предметы, необходимые для занятия готовкой. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nЖизнь искателя приключений тяжела. При наличии в компании повара ваша пища будет намного вкуснее, чем привычные галеты и сухофрукты.
\nКомпоненты. Инструменты повара включают в себя металлический котёл, ножи, вилки, ложку для размешивания и половник.
\nИстория. Ваши знания кулинарных методик позволяют вам оценивать структуру социального развития, основываясь на гастрономических обычаях этой культуры.
\nМедицина. Оказывая лечение, вы можете превратить горькое или кислое лекарство в приятную на вкус стряпню.
\nВыживание. Добывая еду, вы можете использовать собранные вами ингредиенты, которые другие не смогли бы приготовить.
\nПриготовление еды. Частью короткого отдыха, вы можете приготовить вкусное блюдо, которое поможет вашим компаньонам восстановить силы. Вы и до пяти существ на ваш выбор восстанавливаете по 1 дополнительному ПЗ за каждую потраченную во время короткого отдыха кость здоровья, при условии, что у вас есть доступ к вашим инструментам повара и достаточно еды.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Приготовить обычную пищу | \n10 | \n
| Повторить блюдо | \n10 | \n
| Обнаружить яд или примесь в еде | \n15 | \n
| Приготовить изысканное блюдо | \n15 | \n
Инструмент с большой плоской, часто металлической головкой, прикрепленной к длинной рукоятке.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Sledgehammer" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/rybolovnye-snasti.json b/test_tube_merchant/items/medium/tools/rybolovnye-snasti.json new file mode 100755 index 0000000..347a264 --- /dev/null +++ b/test_tube_merchant/items/medium/tools/rybolovnye-snasti.json @@ -0,0 +1,83 @@ +{ + "name": "Рыболовные снасти", + "type": "tool", + "img": "modules/test_tube_merchant/assets/icon/items/fishing.png", + "system": { + "description": { + "value": "Набор для рыбалки, включающий удочку и крючки.
", + "chat": "" + }, + "source": { + "custom": "КИ 150" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "baseItem": "" + }, + "attunement": "", + "attuned": false, + "equipped": false, + "activation": { + "type": "", + "cost": null, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "chatFlavor": "", + "proficient": null, + "bonus": "" + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/schyoty-_-abacus.json b/test_tube_merchant/items/medium/tools/schyoty-_-abacus.json new file mode 100755 index 0000000..1a070c4 --- /dev/null +++ b/test_tube_merchant/items/medium/tools/schyoty-_-abacus.json @@ -0,0 +1,45 @@ +{ + "name": "Счёты / Abacus", + "type": "loot", + "img": "icons/commodities/tech/metal-panel.webp", + "system": { + "description": { + "value": "Счёты, также называемый абаком, – это инструмент для произведения вычислений.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Abacus" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/tools/toporik-_-handaxe.json b/test_tube_merchant/items/medium/tools/toporik-_-handaxe.json new file mode 100755 index 0000000..6fb26c9 --- /dev/null +++ b/test_tube_merchant/items/medium/tools/toporik-_-handaxe.json @@ -0,0 +1,126 @@ +{ + "name": "Топорик / Handaxe", + "type": "weapon", + "img": "icons/weapons/axes/axe-broad-black.webp", + "system": { + "description": { + "value": "Этот одноручный топор легок и сбалансирован для метания, но при этом остается полезен в рукопашном бою.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "lgt", + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "simpleM", + "baseItem": "handaxe" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Handaxe" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/amulet-_-amulet.json b/test_tube_merchant/items/medium/trinkets/amulet-_-amulet.json new file mode 100755 index 0000000..6edbfbe --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/amulet-_-amulet.json @@ -0,0 +1,124 @@ +{ + "name": "Амулет / Amulet", + "type": "equipment", + "img": "icons/equipment/neck/pendant-bronze-gem-blue.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Amulet" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "system": { + "description": { + "value": "Амулет с изображением символа, представляющего божество, через которое истинно верующий может вызывать свою силу и тем самым распространять веру.
\nФокусирующий предмет. Жрецы и паладины могут использовать символ религии как фокусирующий предмет, как описано в главе 10. Для этого персонаж должен держать символ в руке, открыто носить его или взять щит, на котором символ изображён.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "special", + "cost": 0, + "condition": "Святой символ должен быть хорошо виден." + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": null, + "actionType": "", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": null, + "dex": null, + "magicalBonus": null + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "speed": { + "value": null, + "conditions": "" + }, + "strength": 0, + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "baseItem": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/cep�.json b/test_tube_merchant/items/medium/trinkets/cep�.json new file mode 100755 index 0000000..aa963b8 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/cep�.json @@ -0,0 +1,40 @@ +{ + "name": "Цепь", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/chain.png", + "system": { + "description": { + "value": "Цепь длиной 10 футов.", + "chat": "" + }, + "source": { + "custom": "КИ 150" + }, + "quantity": 1, + "weight": { + "value": 5, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d3 * 20 + 1d20" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/fonar�-obychnyj-_-hooded-lantern.json b/test_tube_merchant/items/medium/trinkets/fonar�-obychnyj-_-hooded-lantern.json new file mode 100755 index 0000000..5ca8472 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/fonar�-obychnyj-_-hooded-lantern.json @@ -0,0 +1,109 @@ +{ + "name": "Фонарь обычный / Hooded Lantern", + "type": "consumable", + "img": "icons/sundries/lights/lantern-iron-yellow.webp", + "system": { + "description": { + "value": "Испускает свет во все стороны — яркий в радиусе 30 футов и тусклый ещё на 30 футов. Если его зажечь, он тратит за 6 часов склянку масла (1 пинту). В качестве действия можно опустить на фонарь колпак, чтобы приглушить свет до тусклого в радиусе 5 футов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "60", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hooded Lantern" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/fonar�-potajnoj-_-bullseye-lantern.json b/test_tube_merchant/items/medium/trinkets/fonar�-potajnoj-_-bullseye-lantern.json new file mode 100755 index 0000000..e41b8eb --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/fonar�-potajnoj-_-bullseye-lantern.json @@ -0,0 +1,109 @@ +{ + "name": "Фонарь потайной / Bullseye Lantern", + "type": "consumable", + "img": "icons/sundries/lights/lantern-bullseye-signal-copper.webp", + "system": { + "description": { + "value": "Испускает свет в виде направленного конуса — яркий на 60 футов и тусклый ещё на 60 футов. Если его зажечь, он тратит за 6 часов склянку масла (1 пинту).
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "120", + "width": null, + "units": "ft", + "type": "cone", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Bullseye Lantern" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/koloda-tarokka.json b/test_tube_merchant/items/medium/trinkets/koloda-tarokka.json new file mode 100755 index 0000000..9f3f359 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/koloda-tarokka.json @@ -0,0 +1,40 @@ +{ + "name": "Колода Тарокка", + "type": "loot", + "img": "modules/test_tube_merchant/assets/icon/items/tarokko.png", + "system": { + "description": { + "value": "Колода карт Тарокка для гадания.", + "chat": "" + }, + "source": { + "custom": "CoS 243" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/lampa-_-lamp.json b/test_tube_merchant/items/medium/trinkets/lampa-_-lamp.json new file mode 100755 index 0000000..a4f04f2 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/lampa-_-lamp.json @@ -0,0 +1,109 @@ +{ + "name": "Лампа / Lamp", + "type": "consumable", + "img": "icons/sundries/lights/lantern-iron-lit-yellow.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Lamp" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "system": { + "description": { + "value": "Даёт &reference[brightlight]{яркий свет} в радиусе 15 футов и &reference[dimlight]{тусклый} ещё на 30 футов. Если её зажечь, она тратит за 6 часов склянку масла (1 пинту).
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 152" + }, + "quantity": 1, + "weight": { + "value": 0, + "units": "lb" + }, + "price": { + "value": 0.5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "6", + "units": "hour" + }, + "cover": null, + "crewed": false, + "target": { + "value": "45", + "width": null, + "units": "ft", + "type": "radius", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/nabor-verholaza-_-climber's-kit.json b/test_tube_merchant/items/medium/trinkets/nabor-verholaza-_-climber's-kit.json new file mode 100755 index 0000000..765e32f --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/nabor-verholaza-_-climber's-kit.json @@ -0,0 +1,109 @@ +{ + "name": "Набор верхолаза / Climber's Kit", + "type": "consumable", + "img": "icons/weapons/sickles/sickle-hooked-wood.webp", + "system": { + "description": { + "value": "В набор входят особые колышки, шипы для обуви, перчатки и крепления. Вы можете использовать набор верхолаза в качестве действия, чтобы закрепиться. После этого вы не можете упасть дальше чем на 25 футов от места, где закрепились, но и сами не можете забраться далее чем на 25 футов, не открепляясь.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 12, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "util", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "properties": [], + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Climber's Kit" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/pen�kovaya-veryovka-(50-futov)-_-hempen-rope-(50ft.).json b/test_tube_merchant/items/medium/trinkets/pen�kovaya-veryovka-(50-futov)-_-hempen-rope-(50ft.).json new file mode 100755 index 0000000..5db8688 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/pen�kovaya-veryovka-(50-futov)-_-hempen-rope-(50ft.).json @@ -0,0 +1,109 @@ +{ + "name": "Пеньковая верёвка (50 футов) / Hempen Rope (50ft.)", + "type": "consumable", + "img": "icons/sundries/survival/rope-wrapped-brown.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hempen Rope (50 ft.)" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + }, + "system": { + "description": { + "value": "Верёвка, сделанная из пеньки, имеет 2 ПЗ. Её можно порвать проверкой Силы со СЛ 17.
", + "chat": "" + }, + "source": { + "custom": "PHB pg. 153" + }, + "quantity": 1, + "weight": { + "value": 10, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": false, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "abil", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": 17, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/pesochnye-chasy-_-hourglass.json b/test_tube_merchant/items/medium/trinkets/pesochnye-chasy-_-hourglass.json new file mode 100755 index 0000000..dda3cd6 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/pesochnye-chasy-_-hourglass.json @@ -0,0 +1,45 @@ +{ + "name": "Песочные часы / Hourglass", + "type": "loot", + "img": "icons/tools/navigation/hourglass-grey.webp", + "system": { + "description": { + "value": "Это прибор, используемый для измерения хода времени. Он состоит из двух стеклянных колб, соединенных вертикально узким горлышком, которое позволяет регулировать поступление песка из верхней колбы в нижнюю.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hourglass" + }, + "test_tube_merchant": { + "quantity": "1d4" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/shariki-_-ball-bearings.json b/test_tube_merchant/items/medium/trinkets/shariki-_-ball-bearings.json new file mode 100755 index 0000000..a17f7e4 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/shariki-_-ball-bearings.json @@ -0,0 +1,109 @@ +{ + "name": "Шарики / Ball Bearings", + "type": "consumable", + "img": "icons/commodities/gems/pearl-rock.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Ball Bearings" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + }, + "system": { + "description": { + "value": "В качестве действия вы можете рассыпать 1000 маленьких металлических шариков из мешочка, чтобы покрыть ими ровную квадратную область размером 10 на 10 футов. Существо, перемещающееся через эту область, должно пройти испытание Ловкости со СЛ 10, при провале оно упадёт и &reference[prone]{распластается}. Существу, перемещающемуся через область с половинной скоростью, испытание проходить не нужно.
", + "chat": "" + }, + "source": { + "custom": "" + }, + "quantity": 1000, + "weight": { + "value": 0.002, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "common", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "10", + "width": null, + "units": "ft", + "type": "square", + "prompt": true + }, + "range": { + "value": null, + "long": null, + "units": "" + }, + "uses": { + "value": 1, + "max": "1", + "per": "charges", + "recovery": "", + "autoDestroy": true, + "prompt": true + }, + "consume": { + "type": "", + "target": "", + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "save", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "dex", + "dc": 10, + "scaling": "flat" + }, + "unidentified": { + "description": "" + }, + "type": { + "value": "trinket", + "subtype": "" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null, + "properties": [] + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/trinkets/vesy-torgovye-_-merchant's-scale.json b/test_tube_merchant/items/medium/trinkets/vesy-torgovye-_-merchant's-scale.json new file mode 100755 index 0000000..e297bb1 --- /dev/null +++ b/test_tube_merchant/items/medium/trinkets/vesy-torgovye-_-merchant's-scale.json @@ -0,0 +1,45 @@ +{ + "name": "Весы торговые / Merchant's Scale", + "type": "loot", + "img": "icons/tools/hand/scale-balances-merchant-brown.webp", + "system": { + "description": { + "value": "Состоят из небольшого коромысла, чашек и набора гирек весом до 2 фунтов. С их помощью можно узнать точный вес небольших предметов вроде самородков или товаров, чтобы определить их стоимость.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "rarity": "", + "identified": true, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "type": { + "value": "", + "subtype": "" + } + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Merchant's Scale" + }, + "test_tube_merchant": { + "quantity": "1d4 - 1" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/alebarda-_-halberd.json b/test_tube_merchant/items/medium/weapon/alebarda-_-halberd.json new file mode 100755 index 0000000..c94eac3 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/alebarda-_-halberd.json @@ -0,0 +1,127 @@ +{ + "name": "Алебарда / Halberd", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/halberd.webp", + "system": { + "description": { + "value": "Металлическое древко с копьевидным наконечником и серповидным лезвием, алебарда — надежное оборонительное оружие, позволяющее воину отбиваться от врагов, используя длинное древко для атак с безопасного расстояния.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 20, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "rch" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "halberd" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Halberd" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/boevoj-molot-_-warhammer.json b/test_tube_merchant/items/medium/weapon/boevoj-molot-_-warhammer.json new file mode 100755 index 0000000..e9f0025 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/boevoj-molot-_-warhammer.json @@ -0,0 +1,125 @@ +{ + "name": "Боевой молот / Warhammer", + "type": "weapon", + "img": "icons/weapons/hammers/hammer-drilling-spiked.webp", + "system": { + "description": { + "value": "Тяжелый металлический молот, который можно использовать одной рукой со щитом или двумя руками для нанесения сокрушительных дробящих ударов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "bludgeoning" + ] + ], + "versatile": "1d10 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "warhammer" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Warhammer" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/boevoj-topor-_battleaxe.json b/test_tube_merchant/items/medium/weapon/boevoj-topor-_battleaxe.json new file mode 100755 index 0000000..9b9af39 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/boevoj-topor-_battleaxe.json @@ -0,0 +1,125 @@ +{ + "name": "Боевой топор /Battleaxe", + "type": "weapon", + "img": "icons/weapons/polearms/halberd-crescent-engraved-steel.webp", + "system": { + "description": { + "value": "Крепкое серповидное лезвие закреплено на толстом древке, обернутое прочной рукоятью. Этот топор достаточно велик, чтобы им можно было орудовать двумя руками, и украшен шипами на тыльной стороне лезвия и верхней части древка.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "slashing" + ] + ], + "versatile": "1d10 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "battleaxe" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Battleaxe" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/cep-_-flail.json b/test_tube_merchant/items/medium/weapon/cep-_-flail.json new file mode 100755 index 0000000..2e11265 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/cep-_-flail.json @@ -0,0 +1,123 @@ +{ + "name": "Цеп / Flail", + "type": "weapon", + "img": "icons/weapons/maces/flail-studded-grey.webp", + "system": { + "description": { + "value": "Несколько шипастых шаров на цепи, прикрепленных к прочному деревянному древку. Цеп наносит сокрушительный урон, когда вращается по смертоносной дуге.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8+@mod", + "bludgeoning" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "flail" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Flail" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/dlinnyj-luk-_-longbow.json b/test_tube_merchant/items/medium/weapon/dlinnyj-luk-_-longbow.json new file mode 100755 index 0000000..5168d7e --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/dlinnyj-luk-_-longbow.json @@ -0,0 +1,127 @@ +{ + "name": "Длинный лук / Longbow", + "type": "weapon", + "img": "icons/weapons/bows/longbow-leather-green.webp", + "system": { + "description": { + "value": "Толстое древко из клеёного дерева с натянутой тетивой, способной выпускать смертоносные стрелы на большие расстояния.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.3c7JXOzsv55gqJS5]{Стрела}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 150, + "long": 600, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "hvy", + "two" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "longbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Longbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/dlinnyj-mech-_-longsword.json b/test_tube_merchant/items/medium/weapon/dlinnyj-mech-_-longsword.json new file mode 100755 index 0000000..e6ead03 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/dlinnyj-mech-_-longsword.json @@ -0,0 +1,125 @@ +{ + "name": "Длинный меч / Longsword", + "type": "weapon", + "img": "icons/weapons/swords/greatsword-crossguard-steel.webp", + "system": { + "description": { + "value": "Длинный прямой клинок, предназначенный для рассечения противников, длинный меч — очень универсальное оружие, которое можно держать двумя руками для нанесения более сокрушительных ударов.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "slashing" + ] + ], + "versatile": "1d10 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "longsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Longsword" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/duhovaya-trubka-_-blowgun.json b/test_tube_merchant/items/medium/weapon/duhovaya-trubka-_-blowgun.json new file mode 100755 index 0000000..187e649 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/duhovaya-trubka-_-blowgun.json @@ -0,0 +1,126 @@ +{ + "name": "Духовая трубка / Blowgun", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/blowgun.webp", + "system": { + "description": { + "value": "Примитивное, но смертоносное оружие, любимое дикими племенами и партизанами. Дротики, выпущенные из этого оружия, могут проколоть кожу и ввести смертельную дозу яда.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 25, + "long": 100, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lod" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "blowgun" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Blowgun" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/dvuruchnyj-mech-_-greatsword.json b/test_tube_merchant/items/medium/weapon/dvuruchnyj-mech-_-greatsword.json new file mode 100755 index 0000000..536acac --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/dvuruchnyj-mech-_-greatsword.json @@ -0,0 +1,126 @@ +{ + "name": "Двуручный меч / Greatsword", + "type": "weapon", + "img": "icons/weapons/swords/greatsword-guard-gem-blue.webp", + "system": { + "description": { + "value": "Мощный двуручный клинок длиной более четырех футов и шириной почти пять дюймов. Это оружие требует серьезной боевой подготовки, но те, кто владеет им, становятся грозными воинами.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "2d6 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greatsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greatsword" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/dvuruchnyj-topor-_-greataxe.json b/test_tube_merchant/items/medium/weapon/dvuruchnyj-topor-_-greataxe.json new file mode 100755 index 0000000..ad5940d --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/dvuruchnyj-topor-_-greataxe.json @@ -0,0 +1,126 @@ +{ + "name": "Двуручный топор / Greataxe", + "type": "weapon", + "img": "icons/weapons/axes/axe-double-engraved-black.webp", + "system": { + "description": { + "value": "Этот огромный топор имеет два спаренных серповидных лезвия, установленных по обе стороны высокого шипастого древка. Предназначен для того, чтобы орудовать им обеими руками и рассекать врагов надвое.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 7, + "units": "lb" + }, + "price": { + "value": 30, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "greataxe" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Greataxe" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/glefa-_-glaive.json b/test_tube_merchant/items/medium/weapon/glefa-_-glaive.json new file mode 100755 index 0000000..7c8f741 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/glefa-_-glaive.json @@ -0,0 +1,127 @@ +{ + "name": "Глефа / Glaive", + "type": "weapon", + "img": "icons/weapons/polearms/halberd-crescent-glowing.webp", + "system": { + "description": { + "value": "Лезвие в виде полумесяца закрепленное на конце высокого металлического древка. Это оружие позволяет атаковать со смертоносной эффективностью с большего расстояния, чем обычное оружие ближнего боя.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 20, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "two", + "rch" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "glaive" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Glaive" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/instrumenty-kuzneca-_-smith's-tools.json b/test_tube_merchant/items/medium/weapon/instrumenty-kuzneca-_-smith's-tools.json new file mode 100755 index 0000000..0b3476b --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/instrumenty-kuzneca-_-smith's-tools.json @@ -0,0 +1,91 @@ +{ + "name": "Инструменты кузнеца / Smith's Tools", + "type": "tool", + "img": "icons/tools/smithing/anvil.webp", + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Smith's Tools" + }, + "test_tube_merchant": { + "quantity": "1d4" + }, + "midi-qol": { + "onUseMacroName": "" + } + }, + "system": { + "description": { + "value": "Эти специальные инструменты включают предметы, необходимые для занятия кузнечным делом. Умение в обращении с этими инструментами позволяет вам добавить ваш бонус умения к любой проверке характеристики, связанной с их использованием.
\nИнструменты кузнеца позволяют вам работать с металлом, нагревая его для изменения формы, восстанавливая повреждения или создавая из слитков полезные предметы.
\nКомпоненты. Инструменты кузнеца включают в себя молоты, клещи, уголь, ветошь и точильный камень.
\nИстория, Магия. Ваш опыт даёт вам дополнительные знания при обследовании металлических предметов, таких как, например, оружие.
\nРасследование. Вы можете обнаруживать зацепки, которые другие могут не заметить, когда расследование касается брони, оружия или прочих изделий металлообработки.
\nПочинка. При наличии доступа к инструментам и открытому огню, жара которого достаточно, чтобы сделать металл пластичным, вы можете восстанавливать по 10 ПЗ повреждённого металлического предмета за каждый час работы.
\n| Возможное действие | \nСЛ | \n
|---|---|
| Заточить затупившийся клинок | \n10 | \n
| Починить комплект доспехов | \n15 | \n
| Разъединить немагический металлический предмет | \n20 | \n
Сверкающий стальной наконечник пробивает защиту самого стойкого врага, вбиваемый силой мчащегося скакуна. Хотя кавалерийская пика лучше всего подходит для ведения боя верхом, в умелых руках она может стать смертельно опасной и в пешем бою.
\nОсобое. У вас помеха, если вы атакуете кавалерийской пикой цель в пределах 5 футов от вас. Кроме того, для использования кавалерийской пики нужно две руки, если вы не верхом на скакуне.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 6, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d12 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "rch", + "spc" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "lance" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Lance" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/klevec-_-war-pick.json b/test_tube_merchant/items/medium/weapon/klevec-_-war-pick.json new file mode 100755 index 0000000..170f6b5 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/klevec-_-war-pick.json @@ -0,0 +1,123 @@ +{ + "name": "Клевец / War pick", + "type": "weapon", + "img": "icons/weapons/axes/pickaxe-iron-green.webp", + "system": { + "description": { + "value": "Грубый изогнутый шип, закрепленный на прочном древке. Предназначен для пробивания брони со смертоносной силой.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "warpick" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "War Pick" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/knut-_-whip.json b/test_tube_merchant/items/medium/weapon/knut-_-whip.json new file mode 100755 index 0000000..c37bb33 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/knut-_-whip.json @@ -0,0 +1,126 @@ +{ + "name": "Кнут / Whip", + "type": "weapon", + "img": "icons/weapons/misc/whip-red-yellow.webp", + "system": { + "description": { + "value": "Растягивающаяся плеть из кожи, шнура или цепи, которой можно поражать противников, нанося им рваные раны и изводя их на расстоянии.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 2, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d4 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "rch" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "whip" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Whip" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/kolchan-dlya-arbaletnyh-boltov-_-crossbow-bolt-case.json b/test_tube_merchant/items/medium/weapon/kolchan-dlya-arbaletnyh-boltov-_-crossbow-bolt-case.json new file mode 100755 index 0000000..9d0ae34 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/kolchan-dlya-arbaletnyh-boltov-_-crossbow-bolt-case.json @@ -0,0 +1,55 @@ +{ + "name": "Колчан для арбалетных болтов / Crossbow Bolt Case", + "type": "container", + "img": "icons/containers/ammunition/arrows-quiver-green-brown.webp", + "system": { + "description": { + "value": "Деревянный футляр, вмещающий до двадцати арбалетных @UUID[Compendium.laaru-dnd5-hw.items.SItCnYBqhzqBoaWG]{болтов}.
", + "chat": "" + }, + "source": { + "custom": "РНВ" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 1.5 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Crossbow Bolt Case" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/kolchan-dlya-strel-_-quiver.json b/test_tube_merchant/items/medium/weapon/kolchan-dlya-strel-_-quiver.json new file mode 100755 index 0000000..17f4774 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/kolchan-dlya-strel-_-quiver.json @@ -0,0 +1,55 @@ +{ + "name": "Колчан для стрел / Quiver", + "type": "container", + "img": "icons/containers/ammunition/arrows-quiver-brown-grey.webp", + "system": { + "description": { + "value": "Колчан вмещает до 20 @UUID[Compendium.laaru-dnd5-hw.items.3c7JXOzsv55gqJS5]{стрел}.
", + "chat": "" + }, + "source": { + "custom": "SRD 5.1" + }, + "quantity": 1, + "weight": { + "value": 1, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "capacity": { + "type": "weight", + "value": 1 + }, + "currency": { + "cp": 0, + "sp": 0, + "ep": 0, + "gp": 0, + "pp": 0 + }, + "unidentified": { + "description": "" + }, + "container": null, + "properties": [], + "attuned": false + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Quiver" + }, + "test_tube_merchant": { + "quantity": "1d3 * 2 + 1d2" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/korotkij-mech-_-shortsword.json b/test_tube_merchant/items/medium/weapon/korotkij-mech-_-shortsword.json new file mode 100755 index 0000000..f4693d6 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/korotkij-mech-_-shortsword.json @@ -0,0 +1,126 @@ +{ + "name": "Короткий меч / Shortsword", + "type": "weapon", + "img": "icons/weapons/swords/sword-guard-brown.webp", + "system": { + "description": { + "value": "Средних размеров клинок с прочной гардой и обтянутой кожей рукоятью. Универсальное оружие, которое компенсирует универсальностью то, что ему не хватает длины.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 10, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "shortsword" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Shortsword" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/morgenshtern-_-morningstar.json b/test_tube_merchant/items/medium/weapon/morgenshtern-_-morningstar.json new file mode 100755 index 0000000..bfb6371 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/morgenshtern-_-morningstar.json @@ -0,0 +1,123 @@ +{ + "name": "Моргенштерн / Morningstar", + "type": "weapon", + "img": "icons/weapons/maces/mace-round-spiked-black.webp", + "system": { + "description": { + "value": "Металлическая сфера с острыми шипами, закрепленная на конце прочного древка. Служит смертоносным оружием, способным как пробить броню, так и изувечить плоть.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 15, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8+@mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "morningstar" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Morningstar" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/pika-_-pike.json b/test_tube_merchant/items/medium/weapon/pika-_-pike.json new file mode 100755 index 0000000..dcd5ad4 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/pika-_-pike.json @@ -0,0 +1,127 @@ +{ + "name": "Пика / Pike", + "type": "weapon", + "img": "icons/weapons/polearms/spear-flared-blue.webp", + "system": { + "description": { + "value": "Крепкое лезвие, закрепленное на конце длинного металлического древка. Предназначена как оборонительное оружие со значительной зоной досягаемости, чтобы отбиваться от противников и устрашать их.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 18, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 10, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "hvy", + "rch", + "two" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "pike" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Pike" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/rapira-_-rapier.json b/test_tube_merchant/items/medium/weapon/rapira-_-rapier.json new file mode 100755 index 0000000..b8c66e3 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/rapira-_-rapier.json @@ -0,0 +1,125 @@ +{ + "name": "Рапира / Rapier", + "type": "weapon", + "img": "modules/laaru-dnd5-hw/assets/images/pic/rapier.webp", + "system": { + "description": { + "value": "Тонкий клинок из ковкого металла, легкий по весу, но достаточно длинный, предназначен для нанесения молниеносных уколов по слабым местам в обороне противника.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 2, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d8 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "rapier" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Rapier" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/ruchnoj-arbalet-_-hand-crossbow.json b/test_tube_merchant/items/medium/weapon/ruchnoj-arbalet-_-hand-crossbow.json new file mode 100755 index 0000000..4b40818 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/ruchnoj-arbalet-_-hand-crossbow.json @@ -0,0 +1,127 @@ +{ + "name": "Ручной арбалет / Hand Crossbow", + "type": "weapon", + "img": "icons/weapons/crossbows/handcrossbow-black.webp", + "system": { + "description": { + "value": "Лёгкий арбалет, предназначенный для использования в одной руке или пристегнутым к запястью для стрельбы лёгкими болтами.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.SItCnYBqhzqBoaWG]{Арбалетный болт}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 75, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 30, + "long": 120, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "lgt", + "lod" + ], + "proficient": 0, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "handcrossbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Hand Crossbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/set�-_-net.json b/test_tube_merchant/items/medium/weapon/set�-_-net.json new file mode 100755 index 0000000..7c875cf --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/set�-_-net.json @@ -0,0 +1,121 @@ +{ + "name": "Сеть / Net", + "type": "weapon", + "img": "icons/tools/fishing/net-gold.webp", + "system": { + "description": { + "value": "Эти плотно сплетенные нити усилены для использования в бою, чтобы поймать и опутать даже самых опасных противников, делая их уязвимыми для нападения другим оружием.
\nОсобое. Существо размером не более крупного, по которому попала атака сетью, остаётся обездвиженным, пока не освободится. Сеть не действует на бесформенных существ, а также на существ огромного размера и больше. Существо может использовать действие, чтобы пройти проверку Силы со СЛ 10, при успехе освобождая себя или другое существо в пределах своей зоны досягаемости. Если нанести сети (КБ 10) 5 режущего урона, существо тоже освободится, не получив урона, а сеть будет уничтожена. Используя действие, бонусное или ответное действие для атаки сетью, вы можете совершить только одну атаку, вне зависимости от количества атак, которые вы обычно совершаете.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 1, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": 15, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "str", + "dc": null, + "scaling": "flat" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "spc", + "thr" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "net" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Net" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/skimitar-_-scimitar.json b/test_tube_merchant/items/medium/weapon/skimitar-_-scimitar.json new file mode 100755 index 0000000..6159037 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/skimitar-_-scimitar.json @@ -0,0 +1,126 @@ +{ + "name": "Скимитар / Scimitar", + "type": "weapon", + "img": "icons/weapons/swords/scimitar-worn-blue.webp", + "system": { + "description": { + "value": "Этот изогнутый клинок широк у обтянутой рукояти, но дугообразно сужается к сверкающему острию.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 3, + "units": "lb" + }, + "price": { + "value": 25, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 5, + "long": null, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "slashing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "fin", + "lgt" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "scimitar" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Scimitar" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/trezubec-_-trident.json b/test_tube_merchant/items/medium/weapon/trezubec-_-trident.json new file mode 100755 index 0000000..e979ffa --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/trezubec-_-trident.json @@ -0,0 +1,126 @@ +{ + "name": "Трезубец / Trident", + "type": "weapon", + "img": "icons/weapons/polearms/trident-ornate-red.webp", + "system": { + "description": { + "value": "Многозубчатое копье, предназначенное для пронзания цели в нескольких местах, пригвождая её к поверхности. Часто используется в сочетании с сетью для опутывания и изведения противников.
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 4, + "units": "lb" + }, + "price": { + "value": 5, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 20, + "long": 60, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "mwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d6 + @mod", + "piercing" + ] + ], + "versatile": "1d8 + @mod" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "thr", + "ver" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialM", + "baseItem": "trident" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Trident" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/items/medium/weapon/tyazhyolyj-arbalet-_-heavy-crossbow.json b/test_tube_merchant/items/medium/weapon/tyazhyolyj-arbalet-_-heavy-crossbow.json new file mode 100755 index 0000000..cc1da55 --- /dev/null +++ b/test_tube_merchant/items/medium/weapon/tyazhyolyj-arbalet-_-heavy-crossbow.json @@ -0,0 +1,128 @@ +{ + "name": "Тяжёлый арбалет / Heavy Crossbow", + "type": "weapon", + "img": "icons/weapons/crossbows/crossbow-purple.webp", + "system": { + "description": { + "value": "Большой арбалет, установленный на прочном деревянном блоке, который заряжается с помощью рукоятки и стреляет толстыми стальными болтами со смертоносным ускорением, пробивающими броню и плоть.
Боеприпас — @UUID[Compendium.laaru-dnd5-hw.items.SItCnYBqhzqBoaWG]{Арбалетный болт}
", + "chat": "" + }, + "source": { + "custom": "PHB" + }, + "quantity": 1, + "weight": { + "value": 18, + "units": "lb" + }, + "price": { + "value": 50, + "denomination": "gp" + }, + "attunement": "", + "equipped": false, + "rarity": "", + "identified": true, + "activation": { + "type": "action", + "cost": 1, + "condition": "" + }, + "duration": { + "value": "", + "units": "" + }, + "cover": null, + "crewed": false, + "target": { + "value": "", + "width": null, + "units": "", + "type": "", + "prompt": true + }, + "range": { + "value": 100, + "long": 400, + "units": "ft" + }, + "uses": { + "value": null, + "max": "", + "per": null, + "recovery": "", + "prompt": true + }, + "consume": { + "type": "", + "target": null, + "amount": null, + "scale": false + }, + "ability": "", + "actionType": "rwak", + "chatFlavor": "", + "critical": { + "threshold": null, + "damage": "" + }, + "damage": { + "parts": [ + [ + "1d10 + @mod", + "piercing" + ] + ], + "versatile": "" + }, + "formula": "", + "save": { + "ability": "", + "dc": null, + "scaling": "spell" + }, + "armor": { + "value": 10 + }, + "hp": { + "value": 0, + "max": 0, + "dt": null, + "conditions": "" + }, + "properties": [ + "amm", + "hvy", + "two", + "lod" + ], + "proficient": null, + "unidentified": { + "description": "" + }, + "type": { + "value": "martialR", + "baseItem": "heavycrossbow" + }, + "attack": { + "bonus": "", + "flat": false + }, + "container": null, + "attuned": false, + "enchantment": null, + "summons": null, + "magicalBonus": null + }, + "effects": [], + "flags": { + "babele": { + "translated": true, + "hasTranslation": true, + "originalName": "Heavy Crossbow" + }, + "test_tube_merchant": { + "quantity": "1d3 * 10 + 1d10" + } + } +} \ No newline at end of file diff --git a/test_tube_merchant/lang/en.json b/test_tube_merchant/lang/en.json new file mode 100755 index 0000000..c704c96 --- /dev/null +++ b/test_tube_merchant/lang/en.json @@ -0,0 +1,7 @@ +{ + "TTM": { + "name": "Test Tube Merchant", + "footer": "You can ask questions and support the author of this module at ", + "boostSite":"https://patreon.com/Allecks" + } +} \ No newline at end of file diff --git a/test_tube_merchant/lang/ru.json b/test_tube_merchant/lang/ru.json new file mode 100755 index 0000000..95f9dc9 --- /dev/null +++ b/test_tube_merchant/lang/ru.json @@ -0,0 +1,8 @@ +{ + "TTM": { + "name": "Торговец из пробирки", + "footer": "Вы можете задать вопрос и поддержать автора на ", + "boostSite":"https://boosty.to/allecks" + } + +} \ No newline at end of file diff --git a/test_tube_merchant/less/merchant.less b/test_tube_merchant/less/merchant.less new file mode 100755 index 0000000..9d6bfcc --- /dev/null +++ b/test_tube_merchant/less/merchant.less @@ -0,0 +1,218 @@ +// out: "../merchant.css", compress: false + +#colors(){ + buttonColor: rgb(240, 240, 227); + dndBack: #3d3d3d; + dndGold: #9f9275; + dndShadow45: rgba(0, 0, 0, 0.45); + dndShadow15: rgba(0, 0, 0, 0.15); + dndColorCard: #f8f4f1; + dndSRDBorder: #ba2828; + dndSRDColorBackground: #efefef99; +} + + +.backGradient(){ + border: 0.15rem solid #colors[dndGold]; + @list: lighten(#9f9275, 15%), rgb(240, 240, 227) 30%, #3d3d3d; + background-image: svg-gradient(to bottom right, @list); + background-repeat: no-repeat; + background-size: cover; +} + +.Merchant{ + display: grid; + grid-template-rows: 1fr auto 0.1 0.2; + grid-row-gap: 1rem; + .footer{ + display: grid; + grid-template-columns: 1.7fr auto; + padding: 0; + margin: auto; + color: var(--color-text-primary); + font-size: 0.8rem; + text-shadow: 0.3rem 0.2rem 0.6rem #472d52; + + .footer_img{ + border: none; + width: 4rem; + height: 4rem; + } + } + + .info{ + display: none; + flex-direction: column; + justify-content: center; + padding: 0; + margin: 2rem; + background-color: #6a2815; + border-image: url('./black_border.png') 30 fill / 30px / 30px round; + color: #9f9275; + font-size: 0.8rem; + >div{ + color: #f8f4f1; + } + >*{ + padding: 0; + margin: 0; + width: 100%; + height: 100%; + } + >button{ + grid-column: 1; + grid-row: 1; + width: 100%; + height: 100%; + background-color: #colors[dndBack]; + border: 0.15rem solid #colors[dndGold]; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #3d3d3d; + } + } + + >div{ + display: flex; + flex-direction: column; + justify-content: center; + .divMerchantItemsTypes{ + display: flex; + flex-direction: row; + justify-content: center; + flex-wrap: nowrap; + width: 100%; + height: 100%; + >.divSelect{ + width: 60%; + height: 100%; + display: flex; + justify-content: center; + flex-direction: column; + >*{ + width: 100%; + height: 100%; + } + } + >.divButton{ + width: 40%; + height: 100%; + justify-content: center; + >*{ + width: 100%; + height: 100%; + } + } + gap: 10px; + button{ + width: 100%; + height: 100%; + background-color: #colors[dndBack]; + border: 0.15rem solid #colors[dndGold]; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #colors[dndColorCard]; + text-align: center; + padding: 10px; + &:hover{ + background-color: #colors[dndColorCard]; + color: #3d3d3d; + } + } + } + >div{ + padding: 0.2rem; + display: flex; + flex-direction: column; + justify-content: center; + >*{ + width: 100%; + height: 100%; + } + >button{ + grid-column: 1; + grid-row: 1; + width: 100%; + height: 100%; + background-color: #colors[dndSRDColorBackground]; + border: 0.15rem solid #colors[dndGold]; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #3d3d3d; + text-align: center; + padding: 10px; + &:hover{ + background-color: #colors[dndColorCard]; + color: #3d3d3d; + } + } + >.randomMerchant{ + grid-column: 1; + grid-row: 1; + width: 100%; + height: 100%; + background-color: #colors[dndBack]; + border: 0.15rem solid #colors[dndGold]; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #colors[dndColorCard]; + text-align: center; + padding: 10px; + &:hover{ + background-color: #colors[dndColorCard]; + color: #3d3d3d; + } + } + } + } + .headerMerchantBar{ + display: none; + } + slide-toggle { + --slide-toggle-height: 20px; + --slide-toggle-width: 36px; + --slide-toggle-padding: 3px; + --slide-toggle-track-color-unchecked: var(--color-fieldset-border); + --slide-toggle-track-color-checked: var(--webkit-link); + --slide-toggle-thumb-color: var(--color-form-label); + --slide-toggle-thumb-width: calc(var(--slide-toggle-height) - var(--slide-toggle-padding) * 2); + --slide-toggle-thumb-height: var(--slide-toggle-thumb-width); + --slide-toggle-transition-time: 250ms; + display: inline-block; + width: var(--slide-toggle-width); + height: var(--slide-toggle-height); + cursor: pointer; + /* Checked state */ + } + slide-toggle .slide-toggle-track { + width: 100%; + height: 100%; + background: var(--slide-toggle-track-color-unchecked); + border-radius: calc((var(--slide-toggle-height) * 2) / 3); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.45); + display: flex; + flex-direction: row; + justify-content: start; + padding: var(--slide-toggle-padding); + } + slide-toggle .slide-toggle-thumb { + width: var(--slide-toggle-thumb-width); + height: var(--slide-toggle-thumb-height); + border-radius: 100%; + background: var(--slide-toggle-thumb-color); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.45); + text-align: center; + transition: margin-left var(--slide-toggle-transition-time) ease; + } + slide-toggle[checked] .slide-toggle-track { + background: var(--slide-toggle-track-color-checked); + } + slide-toggle[checked] .slide-toggle-thumb { + margin-left: calc(100% - var(--slide-toggle-thumb-width)); + } +} + diff --git a/test_tube_merchant/macross/macro.js b/test_tube_merchant/macross/macro.js new file mode 100755 index 0000000..cd18d65 --- /dev/null +++ b/test_tube_merchant/macross/macro.js @@ -0,0 +1,65 @@ +// Макрос для обновления флагов во всех сущностях мира +const OLD_FLAG = 'Test Tube Merchant'; +const NEW_FLAG = 'test_tube_merchant'; + +async function updateFlags() { + let updates = []; + let processed = 0; + let updated = 0; + + // Обновляем всех акторов в мире + for (let actor of game.actors) { + let itemsToUpdate = actor.items.filter(i => i.flags?.[OLD_FLAG]); + for (let item of itemsToUpdate) { + let flags = duplicate(item.flags); + if (flags[OLD_FLAG]) { + flags[NEW_FLAG] = flags[OLD_FLAG]; + delete flags[OLD_FLAG]; + updates.push({ + _id: item.id, + flags: flags, + 'flags.-=Test Tube Merchant': null + }); + updated++; + console.log(item); + } + processed++; + } + if (updates.length) { + await actor.updateEmbeddedDocuments("Item", updates); + updates = []; + } + } + + // Обновляем все компендиумы + for (let pack of game.packs) { + if (pack.documentName === "Item") { + const items = await pack.getDocuments(); + updates = []; + for (let item of items) { + if (item.flags?.[OLD_FLAG]) { + let flags = duplicate(item.flags); + flags[NEW_FLAG] = flags[OLD_FLAG]; + delete flags[OLD_FLAG]; + updates.push({ + _id: item.id, + flags: flags, + 'flags.-=Test Tube Merchant': null + }); + updated++; + console.log(item); + } + processed++; + } + if (updates.length) { + await pack.updateDocuments(updates); + } + } + } + + // Выводим статистику + ui.notifications.info(`Обработано ${processed} предметов, обновлено ${updated} флагов.`); +} + +// Запускаем обновление +updateFlags(); \ No newline at end of file diff --git a/test_tube_merchant/merchant.css b/test_tube_merchant/merchant.css new file mode 100755 index 0000000..7d3274f --- /dev/null +++ b/test_tube_merchant/merchant.css @@ -0,0 +1,192 @@ +.Merchant { + display: grid; + grid-template-rows: 1fr auto 0.1 0.2; + grid-row-gap: 1rem; +} +.Merchant .footer { + display: grid; + grid-template-columns: 1.7fr auto; + padding: 0; + margin: auto; + color: var(--color-text-primary); + font-size: 0.8rem; + text-shadow: 0.3rem 0.2rem 0.6rem #472d52; +} +.Merchant .footer .footer_img { + border: none; + width: 4rem; + height: 4rem; +} +.Merchant .info { + display: none; + flex-direction: column; + justify-content: center; + padding: 0; + margin: 2rem; + background-color: #6a2815; + border-image: url('black_border.png') 30 fill / 30px / 30px round; + color: #9f9275; + font-size: 0.8rem; +} +.Merchant .info > div { + color: #f8f4f1; +} +.Merchant .info > * { + padding: 0; + margin: 0; + width: 100%; + height: 100%; +} +.Merchant .info > button { + grid-column: 1; + grid-row: 1; + width: 100%; + height: 100%; + background-color: #3d3d3d; + border: 0.15rem solid #9f9275; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #3d3d3d; +} +.Merchant > div { + display: flex; + flex-direction: column; + justify-content: center; +} +.Merchant > div .divMerchantItemsTypes { + display: flex; + flex-direction: row; + justify-content: center; + flex-wrap: nowrap; + width: 100%; + height: 100%; + gap: 10px; +} +.Merchant > div .divMerchantItemsTypes > .divSelect { + width: 60%; + height: 100%; + display: flex; + justify-content: center; + flex-direction: column; +} +.Merchant > div .divMerchantItemsTypes > .divSelect > * { + width: 100%; + height: 100%; +} +.Merchant > div .divMerchantItemsTypes > .divButton { + width: 40%; + height: 100%; + justify-content: center; +} +.Merchant > div .divMerchantItemsTypes > .divButton > * { + width: 100%; + height: 100%; +} +.Merchant > div .divMerchantItemsTypes button { + width: 100%; + height: 100%; + background-color: #3d3d3d; + border: 0.15rem solid #9f9275; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #f8f4f1; + text-align: center; + padding: 10px; +} +.Merchant > div .divMerchantItemsTypes button:hover { + background-color: #f8f4f1; + color: #3d3d3d; +} +.Merchant > div > div { + padding: 0.2rem; + display: flex; + flex-direction: column; + justify-content: center; +} +.Merchant > div > div > * { + width: 100%; + height: 100%; +} +.Merchant > div > div > button { + grid-column: 1; + grid-row: 1; + width: 100%; + height: 100%; + background-color: #efefef99; + border: 0.15rem solid #9f9275; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #3d3d3d; + text-align: center; + padding: 10px; +} +.Merchant > div > div > button:hover { + background-color: #f8f4f1; + color: #3d3d3d; +} +.Merchant > div > div > .randomMerchant { + grid-column: 1; + grid-row: 1; + width: 100%; + height: 100%; + background-color: #3d3d3d; + border: 0.15rem solid #9f9275; + border-radius: 5px; + font-size: 0.9rem; + font-weight: 600; + color: #f8f4f1; + text-align: center; + padding: 10px; +} +.Merchant > div > div > .randomMerchant:hover { + background-color: #f8f4f1; + color: #3d3d3d; +} +.Merchant .headerMerchantBar { + display: none; +} +.Merchant slide-toggle { + --slide-toggle-height: 20px; + --slide-toggle-width: 36px; + --slide-toggle-padding: 3px; + --slide-toggle-track-color-unchecked: var(--color-fieldset-border); + --slide-toggle-track-color-checked: var(--webkit-link); + --slide-toggle-thumb-color: var(--color-form-label); + --slide-toggle-thumb-width: calc(var(--slide-toggle-height) - var(--slide-toggle-padding) * 2); + --slide-toggle-thumb-height: var(--slide-toggle-thumb-width); + --slide-toggle-transition-time: 250ms; + display: inline-block; + width: var(--slide-toggle-width); + height: var(--slide-toggle-height); + cursor: pointer; + /* Checked state */ +} +.Merchant slide-toggle .slide-toggle-track { + width: 100%; + height: 100%; + background: var(--slide-toggle-track-color-unchecked); + border-radius: calc((var(--slide-toggle-height) * 2) / 3); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.45); + display: flex; + flex-direction: row; + justify-content: start; + padding: var(--slide-toggle-padding); +} +.Merchant slide-toggle .slide-toggle-thumb { + width: var(--slide-toggle-thumb-width); + height: var(--slide-toggle-thumb-height); + border-radius: 100%; + background: var(--slide-toggle-thumb-color); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.45); + text-align: center; + transition: margin-left var(--slide-toggle-transition-time) ease; +} +.Merchant slide-toggle[checked] .slide-toggle-track { + background: var(--slide-toggle-track-color-checked); +} +.Merchant slide-toggle[checked] .slide-toggle-thumb { + margin-left: calc(100% - var(--slide-toggle-thumb-width)); +} diff --git a/test_tube_merchant/module.json b/test_tube_merchant/module.json new file mode 100755 index 0000000..de89dbf --- /dev/null +++ b/test_tube_merchant/module.json @@ -0,0 +1,63 @@ +{ + "id": "test_tube_merchant", + "title": "Test Tube Merchant", + "authors": { + "name": "Allecks (VoidSmiths)", + "email": "contact@voidsmiths.dev", + "url": "https://boosty.to/allecks" + }, + "version": "1.2.9.2", + "compatibility": { + "minimum": "11", + "verified": "13", + "maximum": "13" + }, + "license": "https://git.voidsmiths.dev/foundry/test_tube_merchant/raw/branch/master/LICENSE", + "scripts": [], + "esmodules": [ + "./testTubeMerchant.mjs" + ], + "languages": [ + { + "lang": "en", + "name": "English", + "path": "lang/en.json" + }, + { + "lang": "ru", + "name": "Russian", + "path": "lang/ru.json" + } + ], + "relationships": { + "systems": [ + { + "id": "dnd5e", + "type": "system", + "compatibility": { + "minimum": "3.0.1", + "maximum": "5.3.99" + } + } + ], + "requires": [ + { + "id": "item-piles", + "type": "module" + } + ] + }, + + "styles": [ + "./merchant.css" + ], + "media": [ + { + "type": "setup", + "thumbnail": "./modules/test_tube_merchant/assets/ui/logo.png" + } + ], + "description": "Генератор торговцев", + "manifest": "https://git.voidsmiths.dev/foundry/test_tube_merchant/releases/download/latest/module.json", + "download": "https://git.voidsmiths.dev/foundry/test_tube_merchant/releases/download/latest/test_tube_merchant.zip" +} diff --git a/test_tube_merchant/module/data.mjs b/test_tube_merchant/module/data.mjs new file mode 100755 index 0000000..81be73f --- /dev/null +++ b/test_tube_merchant/module/data.mjs @@ -0,0 +1,2578 @@ +export class ViewData{ + + itemsTypes = { + "bars": "Алкоголь и напитки", + // "animals": "Животные (ездовые и домашние)", + "books": "Книги и карты", + "flowers": "Цветы и семена", + "food": "Еда и части животных", + // "furniture": "Мебель и предметы интерьера", + "fashion": "Высокая мода", + "jewelry": "Ювелирные изделия", + "trinkets": "Безделушки", + "skin": "Изделия из кожи", + "mechanical": "Механические приспособления", + "armor": "Средние и тяжелые доспехи (щиты)", + "potions": "Зелья, яды и травы", + "religious": "Религиозные товары", + // "songs": "Песни и инструменты", + "scrolls": "Книги заклинаний и свитки", + "thieves": "Воровские приспособления", + "tools": "Инструменты", + // "transport": "Транспортные средства и перевозки", + "weapon": "Оружие" + // "curse": "Проклятые товары" + } + + + categories = { + "horrible": "Ужасный", + "bad": "Плохой", + "medium": "Средний", + "good": "Хороший", + "beautiful": "Прекрасный" + } + + +} + +export class MerchantData { + + names = [ + { + "name": "human", + "title": "Люди", + "list": [ + { + "name": "damaran", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Айвор, Бор, Глэр, Григор, Иган, Козеф, Миваль, Орел, Павел, Сергор, Фодель" + }, + { + "name": "female", + "l": "Алетра, Зора, Кара, Катернин, Мара, Натали, Ольма, Тана" + }, + { + "name": "surname", + "l": "Берск, Дотск, Куленов, Марск, Немецк, Стараг, Чернин, Шемов" + } + ] + + }, + { + "name": "illuskan", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Валек, Ленхерроу, Криз, Мирли, Джор, Донлин, Алеб, Мирул, Брен, Эльтид, Витглен, Бессир, Грефдон, Брентор, Мартеган, Дрантен, Пронлак, Мэнни, Урик, Делин, Блас, Бран, Гет, Ландер, Лют, Малсер, Стор, Таман, Урт, Фрат, Эндер" + }, + { + "name": "female", + "l": "Алиана, Кисани, Шая, Петриви, Эльтез, Джува, Нана, Мири, Сасс, Мико, Элисия, Стаси, Гвин, Шилли, Пенересил, Мирн, Малонни, Элли, Дрея, Фарила, Амафрея, Бетха, Вестра, Кетра, Мара, Ольга, Силифрей, Цефрея" + }, + { + "name": "surname", + "l": "Хетингтон, Нубингнор, Ортегана, Рунтроп, Белдок, Алгой, Граш, Нарарис, Велниб, Гридж, Хилден, Греткин, МакРафрик, Тебрил, Калмин, Ренфолд, Кенисвиль, МакАндрик, райтвуд, Виндривер, Лакмэн, Хелдер, Хорнрейвен, Штормвинд" + } + ] + }, + { + "name": "tethyrian", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Асеир, Бардеид, Зашеир, Кхемед, Мехмен, Судейман, Хасеид" + }, + { + "name": "female", + "l": "Атала, Джасмаль, Зашеида, Мейлиль, Сейдиль, Сейпора, Хама, Яшеира" + }, + { + "name": "surname", + "l": "Баша, Джассан, Думеин, Кхалид, Мостана, Пашар, Рейн" + } + ] + }, + { + "name": "mulan", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Аот, Барерис, Кетот, Мумед, Рамас, Со-Кехур, Тхазар-Де, Урхур, Эхпут-Ки" + }, + { + "name": "female", + "l": "Аризима, Золис, Мурити, Нефис, Нулара, Сефрис, Тола, Умара, Чатхи" + }, + { + "name": "surname", + "l": "Анкхалаб, Анскульд, Натандем, Серпет, Уутракт, Фезим, Хахпет" + } + ] + }, + { + "name": "rushemi", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Боривик, Владислак, Джандар, Канитар, Мадислак, Ральмевик, Фаургар, Шаумар" + }, + { + "name": "female", + "l": "Имзель, Иммит, Наварра, Таммит, Файварра, Хульмарра, Шеварра, Юльдра" + }, + { + "name": "surname", + "l": "Дайрнина, Илтазяра, Мурнитара, Стаянога, Улмокина, Чергоба" + } + ] + }, + { + "name": "terami", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Антон, Диеро, Маркон, Пьерон, Римардо, Ромеро, Салазар, Умберо" + }, + { + "name": "female", + "l": "Балама, Вонда, Джалана, Дона, Куара, Луиза, Марта, Селизе, Фаила" + }, + { + "name": "surname", + "l": "Агосто, Асторио, Домине, Калабра, Маривальди, Писакар, Рамондо, Фалоне" + } + ] + }, + { + "name": "chondathan", + "title": "Человек", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Горстаг, Грим, Дарвин, Дорн, Маларк, Морн, Рэндал, Стедд, Хельм, Эвендур" + }, + { + "name": "female", + "l": "Арвин, Джессаиль, Керри, Лурин, Мири, Рован, Тесселе, Шандри, Эсвель" + }, + { + "name": "surname", + "l": "Бакмэн, Грэйкасл, Дандрэгон, Толстаг, Эвенвуд, Эмблкроун" + } + ] + } + ] + }, + { + "name": "elf", + "title": "Эльфы", + "list": [ + { + "name": "wood", + "title": "Эльф лесной", + "schemes": [ + "mchild surname", + "male surname", + "female surname", + "mchild surname2", + "male surname2", + "female surname2" + ], + "src": [ + { + "name": "male", + "l": "Рэйвен, Дельтор, Нунель, Маррдрин, Нелор, Олорион, Венолен, Нерепар, Леневелон, Васарен, Нетерин, Релеан, Талон, Тинарис, Хиранель, Варрик, Буренус, Кинсалор, Гутрин, Хильсадар, Адран, Арамиль, Араннис, Ауст, Аэлар, Бейро, Берриан, Варис, Галинндан, Ивеллиос, Иммераль, Каррик, Куарион, Лаусиан, Миндартис, Паэлиас, Перен, Риардон, Ролен, Совелисс, Тамиорн, Таривол, Терен, Хадарай, Химо, Хэйян, Эниалис, Эрдан, Эреван, Адран, Аэлар, Аэрдэт, Аваин, Арамил, Аранис, Ост, Ауст, Азаки, Бэйро, Берриан, Каэлдрим, Каррик, Дайэрэт, Дреали, Эфферил, Эиравель, Эниалис, Эрдан, Эверан, Фивин, Галинндан, Геннал, Хадараи, Халимат, Хэиан, Химо, Иммерал, Ивеллмос, Корфел, Ламлис, Лоциан, Миндартис, Наал, Нутаэ, Паэлиас, Перен, Куарион, Риардон, Ролен, Совелисс, Сухнаэ, Тамиор, Таривол, Тэрен, Тэриатис, Тэрван, Утемар, Вануат, Варис" + }, + { + "name": "female", + "l": "Трелорин, Лафар, Хиарус, Айла, Аннун, Леайри, Лотус, Тиа, Калатиана, Пасарин, Джулна, Раник, Вашара, Эридиун, Осери, Лоринея, Розен, Фералия, Фокси, Юлия, Адрие, Альтеа, Анастрианна, Андрасте, Антинуа, Бетринна, Бирель, Вадания, Валанте, Джеленетт, Друсилиа, Йелениа, Каэлинн, Квеленна, Квиласи, Кейлет, Ксанафия, Лешанна, Лиа, Миали, Мэриэль, Найвара, Сариэль, Силакви, Теирастра, Тиа, Фелосиаль, Шава, Шанайра, Энна, Адриэ, Ахина, Алтэя, Анастриана, Андрастэ, Антинуа, Арара, Баэлитаэ, Бетринна, Бирель, Каэлинн, Каэди, Клаира, Дара, Друсилиа, Элама, Энна, Фараль, Фелосиэль, Хатаэ, Иэления, Иланис, Иранн, Иарсали, Иеленет, Кейлет, Лешана, Лиа, Маиата, Малкуиш, Мериэль, Миали, Миатетил, Наивара, Куэленна, Куэлаттэ, Ридаро, Сариэль, Шанаирла, Шава, Силакуи, Самнес, Тэирастра, Тиала, Тиааткуэ, Траулам, Вадания, Валантэ, Вална, Занафия" + }, + { + "name": "mchild", + "l": "Ара, Брин, Валь, Дель, Иннил, Лаэль, Мелла, Наиль, Наэрис, Раэль, Ринн, Сай, Силлин, Тиа, Фанн, Фаэн, Эрин, Аэл, Анг, Ара, Ари, Арн, Аим, Броэ, Брин, Каэл, Кай, Даэ, Дел, Эли, Эрин, Фаэн, Фера, Гаэл, Гар, Иннил, Йар, Кан, Коэт, Лаэл, Луэ, Маи, Мара, Мелла, Миа, Наэрис, Наилл, Ним, Фанн, Пай, Раэл, Раэр, Рэн, Ринн, Руа, Sael, Саи, Суми, Сайлин, Силин, Тэй, Тиа, Траки, Валл, Вон, Вил, Зэй" + }, + { + "name": "surname", + "type": "array", + "l": "Тёмная Тень, Речной Туман, Буревая Птица, Закатный Шёпот, Быстрая Стрела, Сверкающая Луна, Рождённый Облаком, Зовущий Волка, Песнь Ястреба, Ветер Духов, Начало Утра, Золотое Дерево, Мерцающее Солнце, Упавшая Звезда, Говорящий Ручей, Лунный Блеск, Красные Листья, Далёкий Выстрел, Мерцающая Заря, Поющая Ива, Амакиир (Сверкающий Цветок), Амастасия (Звёздный Цветок), Галанодель (Лунный Шёпот), Ильфелкиир (Сверкающий Бутон), Ксилосент (Золотой Лепесток), Лиадон (Серебряный Лист), Найло (Ночной Бриз), Сианодель (Лунный Ручей), Холимион (Алмазная Роса)" + }, + { + "name": "surname2", + "l": "Алоро, Амакиир, Амастасиа, Ариессус, Арнуанна, Береван, Каэрдонэл, Кафаксат, Кассилтенирра, Китрет, Далантан, Италена, Эренаэт, Этанасат, Фашараш, Фирахель, Флошем, Галанодэль, Голтора, Эналаи, Холимион, Хоринет, Латрана, Илфекриир, Иранафа, Коэлана, Латалас, Лиадон, Мэлиамнэ, Мэллерелель, Мистралат, Наило, Нэтиоив, Офандрус, Осторот, Отронус, Куалантри, Раэтран, Ротенель, Селеваран, Сианодел, Суитразас, Сильварант, Тэинитра, Тилататна, Васанти, Витретин, Зилосьен, Зистсрит, Яэлдрин" + } + ] + }, + { + "name": "high_moon", + "title": "Эльф морской", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Чиаркот, Вишроут, Шубм, Шлорх, Фурлу, Пефраук, Чекуан, Цефлай, Плуан, Рарррш" + }, + { + "name": "female", + "l": " Силусс, Цалиш, Тикаэла, Линзеюн, Зеннина, Джлкин, Улл, Диньзее, Алуа, Виарти" + }, + { + "name": "surname", + "l": " Литоари, Халио, Итуоа, Вулу, Зиалео, Фаолал, Бнеу, Уалошот" + } + ] + }, + { + "name": "drow", + "title": "Эльф тёмный (дроу)", + "schemes": [ + "female prefix postfix", + "female surname", + "male prefix postfix", + "male surname" + ], + "src": [ + { + "name": "male", + "l": "Аркилун, Кеддикай, Иеруша, Корза, Галик,Окари, Ахнир, Урхний, Кордук" + }, + { + "name": "female", + "l": "Аркилун, Кеддикай, Иеруша, Корза, Галик,Окари, Ахнир, Урхний, Кордук" + }, + { + "name": "prefix", + "type": "array", + "postfix": "'", + "l": "Ко, Хен, Цек,Лар, Грен, Хун, Кель," + }, + { + "name": "postfix", + "type": "array", + "l": "рарати, дадик, тат, карум, ула, урнин, халик" + }, + { + "name": "surname", + "l": "Зольэксил, Ксогоголь, Талаф" + } + ] + }, + + ] + }, + { + "name": "gnome", + "title": "Гномы", + "list": [ + { + "name": "Forest", + "title": "Гном лесной", + "schemes": [ + "male surname nic", + "female surname nic", + "male male surname nic", + "female female surname nic" + ], + "src": [ + { + "name": "male", + "l": "Алвин, Алстон, Боддинок, Брок, Бюргел, Варрин, Вренн, Гербо, Гимбл, Глим, Джебеддо, Димбл, Зук, Келлен, Намфудл, Оррин, Рундар, Сибо, Синдри, Фонкин, Фрюг, Элдон, Эрки, Алстон, Алвин, Анверт, Арумаванн, Билброн, Боддинок, Брокк, Бургелл, коккаби, Кранпернап, Даддлодоб, Делебин, Димбл, Эбердеб, Элдон, Эрки, Фаблен, Фибблстиб, Фонкин, Фраус, Фруг, Фраг, Гербо, Гимбл, Глим, Bulty, Джаббл, Джебеддо, Келлен, Киппер, Намфудл, Опплбай, Оррин, Пагген, Паллабар, Пог, Куален, Рибблс, Рундар, Сапплай, Сибо, Сентек, Синдри, Ампен, Варрин, Виггенс, Вобблс, Вренн, Заффраб, Зук" + }, + { + "name": "female", + "l": "Бимпноттин, Брина, Вейуокет, Донелла, Дувамил, Занна, Карамип, Карлин, Лилли, Лорилла, Лупмоттин, Маднаб, Никс, Нисса, Ода, Орла, Ройвин, Тана, Шамил, Эливик, Элиджобелл, Элла, Абалаба, Бимпноттин, Бреена, Бувви, Каллибон, Карамип, Карлин, Кампен, Далаба, Донелла, Дувамил, Элла, Эллиджойбелл, Элливик, Энидда, Лилли, Лупмоттин, Лорилла, Лутра, Марднаб, Мина, мэнни, Мампена, Ниссса, Нумба, Никс, Ода, Оппа, Орла, Панана, Пинтл, Куилла, Ранала, Реддлпоп, Ройвин, Саланоп, Шамил, Сиффресс, Симма, Тана, Тенена, Тервараунд, Типлто, Уила, Анвера, Велоптима, Вирра, Вайвоккет, Йебе, Занна" + }, + { + "name": "klan", + "l": "Берен, Гаррик, Даергел, Мёрниг, Накл, Нингел, Раулнор, Тимберс, Турен, Фолькор, Шеппен, Албаратай, Баффлстоун, Берен, Бундигглс, Коббллоб, Даэргел, Данбен, Фабблстаббл, Фапплстап, Фиддлфен, Фолкор, гаррик, Гимлен, Глиттергем, Гобблфирн, Гаммен, Хоркуспоркус, Хамплбампл, Айронхайд, леффери, Лингелхолл, Луфолу, Маеккелфекс, Мигглдай, Манген, Мунген, Мурнинг, Мусграбен, Наккл, Нингел, Нопенсталлен, Наклстамп, Оффунд, Умптроул, Пилвикен, Пинган, Куиллшарпенер, Ролнор, Риз, Роффертон, Шеппен, Шэдоуклоак, Силвертред, Симпони, Таркелбай, Тимберс, Турен, Амбодобен, Вагглтоп, Велбер, Вайлдвандер" + }, + { + "name": "nic", + "type": "array", + "random": "3", + "l": "Барсук, Босоног, Двазамок, Колотушка, Ку, Ним, Пеплосерд, Пивохлёб, Плащ, Пок, Самоцвет, Стамблдак, Фниппер" + } + ] + }, + + ] + }, + { + "name": "tiefling", + "title": "Тифлинги", + "list": [ + { + "name": "normal", + "title": "Тифлинг Фаэруна", + "schemes": [ + "male nic", + "female nic", + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Зул, Делатос, Камадос, Кверинакс, Менос, Хортос, Слутис, Эмокесс, Терат, Саракха, Динусин, Сиадисс, Москиз, Анмен, Талусс, Кутреш, Рулеф, Эделандросс, Малих, Ксанрос, Акменос, Амнон, Баракас, Дамакос, Йадос, Кайрон, Люцис, Мелех, Мордай, Мортос, Пелайос, Скамос, Терай, Экемон, Абад, Арим, Акмен, Амнон, Андрам, Астар, Балам, Баракас, Батин, Каим, Чем, Каймер, Крессел, Дамакос, Экемон, Еврон, Ерон, Фенриз, форкас, Хабор, Иадос, Каирон, Леуцис, Мамнен, Мантус, Марбас, Мелек, Мериим, Модин, Мордаи, Мормо, мортос, Никор, Ниргел, Ориакс, Пэймон, Пелаиос, Пурсон, Кемуэл, Раам, Риммон, Саммал, Скамос, Тетрен, Тамуз, Тераи, Валафар, Вассаго, Заппан, Зепар, Зефан" + }, + { + "name": "female", + "l": "Трейни, Дельзидиае, Зоа, Дересияй, Лиселис, Тизерия, Морианна, Теринна, Фобития, Тактра, Скрайя, Равертиа, Вашери, Пелуна, Думенсель, Валлистра, Ируведи, Гедонастрая, Ламита, Терсели, Акта, Анакис, Брисеис, Дамая, Каллиста, Криелла, Лерисса, Макария, Немея, Орианна, Риета, Фелая, Эа, Акта, Анакис, Армара, Астаро, Аим, Азза, Белет, Брисеис, Бун, Криелла, Дамая, Декарабия, Эа, Гадрил, Гомори, Гекат, Иштэ, Джезебет, Кали, Каллиста, Касдея, Лерисса, Лилит, макария, Мани, Манея, Маркосиан, Мастема, Наама, Немея, Ния, Ниджа, Орианна, Оса, Фелая, Просперина, Пура, Пира, Риета, Роноб, Ронвэ, Седдит, Сирэ, Сехмет, Семияза, Шава, Шакс, Сорат, Узза, Вапула, Вепар, Верин" + }, + { + "name": "nic", + "random": 2, + "type": "array", + "l": "Безрассудство, Вера, Идеал, Искусство, Музыка, Мука, Надежда, Напев, Нигде, Открытость, Отчаяние, Падаль, Поиск, Почтение, Поэзия, Превосходство, Скорбь, Слава, Случайность, Страх, Усталость, Амбиция, Искусство, Падаль, Песнопение, Вероучение, Смерть, Разврат, Отчаяние, Рок, Судьба, Сомнение, Паника, Экстаз, Скука, Энтропия, Превосходство, Страх, Слава, Прожорливость, Огорчение, Ненавидеть, Надежда, Ужас, Идеал, Бесчестье, Смех, Любовь, Похоть, Жестокость, Насмешка, убийство, Муза, Музыка, Тайна, Нигде, Открытость, Боль, Страсть, Поэзия, поиск, Случай, Благоговение, Отвращение, Печаль, Безрассудство, Мучение, Трагедия, Недостаток, Добродетель, Остроумие" + }, + { + "name": "surname", + "random": 2, + "l": "Лафиан, Хлещехвост, Мрачнохмл, Желчебой, Цезбулан, Джеферлох, Дозмордин, Курелех, Темнопламень, Рельздехун, Грашт, Пуледиз, Армансусс, Черногонь, Вревиликус, Керевон, Офензул, Тетенбри, Чеммидон, Проклярость" + } + ] + } + ] + }, + { + "name": "dwarf", + "title": "Дварфы", + "list": [ + { + "name": "mountain", + "title": "Дварф горный", + "schemes": [ + "male klan", + "female klan" + ], + "src": [ + { + "name": "male", + "l": "Терин, Конитир, Гунтраз, Фуганор, Хитдрен, Окино, Бадрик, Кордрек, Реберн, Грантрим, Торелин, Карракис, Донвел, Тромфир, Деребен, Вавек, Мабергор, Скирилат, Дуттрок, Зорлгрум, Адрик, Альберих, Баренд, Баэрн, Броттор, Бруенор, Вондал, Вэйт, Гардаин, Даин, Даррак, Делг, Килдрак, Моргран, Орсик, Оскар, Рангрим, Рюрик, Таклинн, Торадин, Тордек, Торин, Травок, Траубон, Ульфгар, Фаргрим, Флинт, Харбек, Эберк, Эйнкиль, Адрик, Алберик, Баэрн, Барендд, Белорил, Броттор, Даин, Далгал, Даррак, Делг, Дуэргат, Дворик, Эберк, Эинкил, Элаим, Эриас, Фаллонд, Фаргрим, Гардаим, Гилтур, Гимген, Гимурт, Харбек, Килдрак, Килвар, Моргран, Моркрал, Налрал, Нордак, Нуравал, Олорик, Олунт, Орсик, Оскар, Рангрим, Рейрак, Рурик, Таклинн, Торадин, Торин, Традал, Тордек, Траубон, Травок, Ульфгар, Ураим, Вейт, Вонбин, Вондал, Вурбин" + }, + { + "name": "female", + "l": "Ортиния, Уиннтри, Диесина, Гортрисс, Листра, Ладрейн, Тристрид, Трейка, Пинзла, Делдит, Нориан, Яртрея, Артена, Торера, Хелини, Селтенн, Рунефисс, Геселен, Доа, Нилн, Артин, Бардрин, Вистра, Гуннлода, Гурдис, Дагнал, Диеза, Илде, Катра, Кристид, Лифтраса, Мардред, Одхильд, Рисвин, Саннл, Торбера, Торгга, Фалкрунн, Финеллен, Хельджа, Хлин, Эльдет, Эмбер, Андреа, Артин, Одхилд, Балифра, Барбена, Бардрин, Болхилд, Гагнал, Дарифф, Делре, Диеса, Элдет, Эридред, Фалкрунн, Фаллтра, Финеллен, Гиллидд, Гуннлода, Гурдис, Хелдрет, Хелджа, Хлин, Илде, Йарана, Катра, Килиа, Кристрид, Лифтраса, Марастир, Мардред, Морана, Налаед, Нора, Нуркара, Нюркара, Орифф, Овина, Рисвинн, Саннл, Терлин, Тодрис, торбера, Тордрид, Торгга, Уршар, Валида, Вистра, Вонана, Веридд, Вурдред, Юргунн" + }, + { + "name": "klan", + "type": "array", + "random": 3, + "prefix": "из клана ", + "l": "Жестокобород, Темнокамень, Пьянокровь, Рудобой, Камнеждун, Кузнедух, Камнежуй, Рудолорд, Среброшлем, Руднеглот, Рунощерб, Огнебров, Сталеглот, Кровобород, Камнещит, Пивоног, Песнь Молота, Ковосерд, Камнешлем, Холмодав, Балдерк, Боевой Молот, Горунн, Данкил, Железный Кулак, Крепкая Наковальня, Ледяная Борода, Лодерр, Лютгер, Огненная Кузня, Рамнахейм, Стракелн, Торунн, Унгарт, Холдерхек, Боевой молот, Кровавое братство, Стойкой наковальни, Кровавый кулак, Найденной щахты, Глубинного рудника, Вечной заточки, Огненной кузни, Пенной кружки, Морозной бороды, Грозы гоблинов, Золотоискателей, Серой бороды, Молотокамня, Железного кулака, Убийц орков, Рубиноглаза, Серебряного топора, Стального кулака, Сильного сердца, Истинной наковальни, Истинной крови, " + } + ] + } + ] + }, + { + "name": "halfling", + "title": "Полурослики", + "list": [ + { + "name": "Lightfoot", + "title": "Полурослик легконогий", + "schemes": [ + "male surname", + "female surname" + ], + "src": [ + { + "name": "male", + "l": "Альтон, Андер, Гаррет, Кейд, Коррин, Лайл, Линдал, Майло, Меррик, Осборн, Перрин, Рид, Роско, Уэллби, Финнан, Элдон, Эррих, Алтон, Андер, Берни, Боббин, Кэйд, Каллус, Коррин, Даннад, Данниэл, Дэнниэл, Эдди, Эгарт, Элдон, Эррик, Филдо, Файннан, Финнан, Франклин, Гаррет, Гарт, Гилберт, Гоб, Гарод, Гэрол, Айгор, Джаспер, Кэйт, Кевин, Лазам, Лэрри, Линдал, Лайл, Лаэл, Меррик, Микан, Майло, Моррин, Небин, Невил, Озборн, Освальд, Перрин, Поппи, Рид, Роско, Сэм, Шардон, Тай, Улмо, Веллби, Вендел, Веннер, Вес" + }, + { + "name": "female", + "l": "Бри, Вани, Верна, Джиллиан, Китри, Кора, Кэлли, Лавиния, Лидда, Мерла, Недда, Паэла, Портия, Серафина, Трим, Шаэна, Эндри, Юфемия, Алаин, Эндри, Андри, Аннэ, Бэлла, Блоссом, Бри, Колли, Чена, Кора, Ди, Делл, Эйда, Эран, Ефемия, Георгина, Джинни, Хариет, Джасмин, Джиллиан, Джо, Китри, Лавиниа, Лидда, Мегпн, Мэриголд, Мила, Мирия, Недда, Никки, Нора, Оливия, Паэла, Перл, Пенни, Филомена, Портиа, Робби, Роуз, Сара, Серафина, Шаэна, Стэйси, Тавна, Тея, Трим, Вани, Верна, Веллта, Виллоу" + }, + { + "name": "surname", + "l": "Эпплблосом, Бигхарт, Брайтмун, Брашгатер, Черричикс, Копперкеттл, Дипхолоу, Элдерберри, Фастфут, Фэтреббит, Голдфаунд, Гудбаррел, Гудерт, Гринботтл, Гринлиф, Хайхилл, Хиллтоппл, Хогколлар, Ханипот, Джемджар, Кеттлвисл, Лигэллоу, Литтлфут, Нимблфингерс, Порриджпот, Квикстеп, Ридфеллоу, Шэдуквик, Силверайс, Смусхэндс, Стоунбридж, Стаутбридж, Стаутмэн, Стронгбоунс, Санмедоу, Свифтвисл, Толлфеллоу, Тилиф, Тенпенни, Тистлтоп, Торнгэйдж, Тосскоббл, Андербот, Андерфут, Вормвотер, Виспермаус, Вайлбклоак, Вайлдхарт, Вайзакр" + }, + { + "name": "surname2", + "type": "array", + "l": "Вверхтормашкин, Высокохолм, Галькоброс, Добробочка, Зеленофляг, Кустосбор, Лугодуг, Подветкин, Репейник, Чайнолист, Яблонецвет, Ярколун, Вишнещек, Быстроног, Добробочка, Высокохолм, Горшкомёд, Холмоверх, Мелконог, Шустрпалец, Быстроход, Тенескор, Среброглаз, Мягкорук, Камнемост, пивномост, Сильнокост, Солнцедол, Быстросвист, Дылдорост, Чайнолист, Галькоброс, Подног, Тепловод, Шептомышь, Дикочас" + } + ] + } + ] + }, + { + "name": "aaracocra", + "title": "Ааракокры", + "list": [ + { + "name": "normal", + "title": "Ааракокра", + "schemes": [ + "uni" + ], + "src": [ + { + "name": "uni", + "l": "Айял, Аур, Аэра, Дикек, Зид, Икки, Ирк, Кваф, Квирк, Клик, Оор, Оус, Салик, Уррик, Хик" + } + ] + } + ] + } + + + ] + + goods2 = { + beverages: { + horrible:[ + { + name: "Чашка воды", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/waterCup.png", + system: { + quantity: getRandomInt(200) + 10, + price:{ + value: 1, + denomination: 'cp' + }, + weight: { + value: 0.22, + units: "kg" + }, + description: { + value: "Чистая и безупречная" + } + } + }, + { + name: "Кружка дешёвой бурды", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Запах перегара не пройдёт до следующего короткого отдыха" + } + } + }, + { + name: "«Эль Бездны»", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "В брагу набросали всё, что было под рукой. Пахнет серой." + } + } + }, + { + name: "Реповое вино", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: 'Более подходящее название, "забродивший реповый суп".' + } + } + }, + { + name: "«Почти эль»", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Вы можете легко перепутать его с настоящим. Если никогда не пили ничего, кроме воды." + } + } + }, + { + name: "Сальное пиво", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Настолько нефильтровано, что на дне остался подгнивший солод." + } + } + }, + { + name: "Разбавленная медовуха", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Если сосредоточится, можно ещё почувствовать запах." + } + } + }, + { + name: "Недодержанная брага", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Вонь уже есть, а градус еще не поднялся." + } + } + }, + { + name: "Орочья настойка", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Выдержана на немытых сапогах." + } + } + }, + { + name: "Эль «Плевок ангела»", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 2, + denomination: 'cp' + }, + weight: { + value: 0.25, + units: "kg" + }, + description: { + value: "Там плавает муха и ещё что-то, что заставляет вас сомневаться в существовании Бога." + } + } + }, + { + name: '"Тайный микс"', + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/secret_mix.png", + system: { + quantity: getRandomInt(150) + 15, + price:{ + value: 3, + denomination: 'cp' + }, + weight: { + value: 0.27, + units: "kg" + }, + description: { + value: "Перемешанные остатки недопитого пойла" + } + } + }, + { + name: "Эконом-грог", + type: "consumable", + img: "/modules/test_tube_merchant/assets/icon/goods/beverages/horrible/burda.png", + system: { + quantity: getRandomInt(50) + 5, + price:{ + value: 3, + denomination: 'cp' + }, + weight: { + value: 0.23, + units: "kg" + }, + description: { + value: "Сильно разбавленный ром на лимонной кожуре" + } + } + } + ] + + } + } + + description = { + + сharacter : [ + 'Я готов каждого заключить в теплые объятия.', + 'Я гораздо умнее чем большинство людей.', + 'Я часто готов обменять свой товар на что-то ценное вместо монет.', + 'Я категорически не доверяю авантюристам.', + 'Для ведения бизнеса не обязательно быть приветливым.', + 'Постоянные клиенты – мои лучшие друзья.', + 'Я могу торговаться весь день, пока у тебя уши не отвалятся.', + 'Я убежден, что мое природное обаяние привлекает клиентов.', + 'Я сноб, свысока смотрящий на тех, кто не может оценить изящное искусство.', + 'У меня много остроумных афоризмов и есть пословицы на любой случай.', + 'О своей профессии я могу говорить часами.', + 'Благодаря работе я прославился, и хочу, чтобы все это ценили. Меня всегда потрясает, когда другие говорят, что не слышали обо мне.', + 'Мне не нравятся споры о цене. Скажи сразу, за сколько ты готов купить.', + 'Я часто шучу, чтобы разрядить атмосферу.', + 'Я любую тему разговора перевожу в рекламу товара.', + 'Я всегда пытаюсь найти новое прибыльное дело. Я не вылезаю из книг и журналов учёта.', + 'Я люблю золото, но ещё больше я люблю людей.', + 'Я всегда оцениваю в уме встреченные предметы. И людей тоже.', + "Обмен идеями с умными людьми для меня важнее, чем простая торговля.", + "Я всегда стараюсь найти уникальные способы продвижения своих товаров и услуг.", + "Я ценю время, свое и других, и не терплю задержек или некомпетентности.", + ], + + ideal : [ + 'Торговля. Свободный обмен – величайший мировой балансир. (Закон)', + 'Монополия. Подмывание репутации соперников и взвинчивание цен – единственный способ вырваться вперед. (Зло)', + 'Продажи. Я могу продать абсолютно все. Моя лошадь, моя мать – все имеет цену. (Хаос)', + 'Благотворительность. Я стараюсь делать скидки и бесплатные образцы тем, кто действительно нуждается. (Добро)', + 'Завершённость. Возвраты не принимаются. Никогда. (Любое)', + 'Наслаждение. Покупка и продажа – интересная игра, в которую я обожаю играть. (Любое)', + 'Община. Я занимаюсь делом ради тех, кто живёт рядом. Я лишь хочу создать уютный дом для всех (Добро)', + 'Приключение. Поиски выгодных товаров — это лишь повод отправиться в очередное путешествие, каким бы опасным оно ни было (Хаос)', + 'Порядок. В продажах важно то, как ты себя подашь. Клиенты уважают стиль, качество и педантичность. (Закон)', + 'Традиция. Я делаю это, чтобы продолжить долгую традицию нашей семьи торговцев (Любое)', + 'Честность. Всегда соблюдаю слово и гарантирую, что клиенты получают то, за что платят. (Закон)', + 'Уважение к культуре. Стремлюсь поддерживать традиции и обычаи каждого народа, откуда поступают товары. (Закон)', + 'Справедливость. Я продаю по разумным ценам, невзирая на расовые и социальные предрассудки. (Добро)', + 'Новаторство. Я Ищу уникальные товары и дополнения, чтобы удивлять клиентов и развивать свой бизнес. (Любое)', + 'Сообщество. Помогаю местным жителям, поддерживаю малых производителей и развиваю экономику своего региона. (Добро)', + 'Авантаж. Все действия направлены на максимизацию личной выгоды, даже если это вредит другим. (Зло)', + 'Манипуляция. Использую обман и хитрость, чтобы заставить клиентов платить больше или брать ненужные товары. (Зло)', + 'Отношение к власти. Стремлюсь к власти и влиянию через торговлю, готов прибегнуть к запугиванию или шантажу. (Зло)', + ], /// + + flaw : [ + 'Большая часть моих денег тратится еженощно в таверне.', + 'Я не уверен, что у моего товара действительно Хорошее качество.', + 'Если кто-то сделает цену ниже моей, я перережу ему горло.', + 'Я подделываю деньги, смешивая их с реальными, и отдаю на сдачу клиентам.', + 'Я никогда не знаю когда нужно отступить, и я отказываюсь терять клиентов.', + 'Мне трудно уважать того, кто ничего не знает о том, что я продаю.', + 'Я всегда соглашаюсь на предложение, которое слишком выгодно, чтобы быть правдой. Я верю, что в любом случае окажусь в выйгрыше.', + 'Я терпеть не могу безкорыстную щедрость. Я презираю и тех, кто её проявляет, и тех, кто ею пользуется.', + 'Если что-то потеряет для меня ценность, я без сожалений тут же расстанусь с ним.', + ], + + store_features : [ + 'К каждой покупке прилагается бесплатная кружка эля! Пьяный покупатель — счастливый покупатель!', + 'МНЕ ТАК НРАВЯТСЯ МОИ ТОВАРЫ, ЧТО Я МОГУ ВЫРАЗИТЬ ЭНТУЗИАЗМ ТОЛЬКО КРИКОМ!', + 'Я говорю так быстро, что у вас не будет времени возвразить.', + 'Плакаты! Яркие цвета! Местный бард! В моём магазине есть всё.', + 'Я сам разработал и сшил костюм маскота для магазина, чтобы привлекать покупателей или отпугивать детей. Может быть и то, и другое.', + 'Я исполняю фокусы (неволшебные), чтобы привлечь внимание покупателей.', + 'Похоже, что моя лавка принадлежит совершенно другому биому или части мира.', + 'Я пытаюсь привлечь местных исполнителей, чтобы мой магазинчик был популярным и модным местом.', + 'Я пытаюсь сделать так, чтобы мой магазин и я казались очень таинственными, хотя это не так.', + 'У меня есть абсурдная фирменная фраза, которую я повторяю как можно чаще.', + ], + + Willingness_to_bargain : [ + '"Мои цены неизменны". Откажется торговаться.', + '"Только если ты мне очень понравишься". СЛ 25 Скидка: 10%', + '"Я могу снизить цены, если понадобится". СЛ 18 Скидка: 15%', + '"Я известен за свои выгодные предложения!" СЛ 15 Скидка: 20%', + '"Предложение такое хорошее, что даже подозрительно". СЛ 13 Скидка: 25%', + '"Просто забирайте и не спрашивайте!" СЛ 11 Скидка: 30%', + ], + + // ---------------- + + introduction : [ + 'Вы встретили', + 'Вы увидели', + 'Вы повстречали', + 'Вы приметили', + ], + + age_gender : { + 'male': { + 'kid': [ + 'мальчика', + 'мальчика-подростка', + ], + 'adult': [ + 'молодого парня', + 'взрослого мужчину', + ], + 'old': [ + 'пожилого мужчину', + 'престарелого мужчину' + ] + }, + 'female': { + 'kid': [ + 'девочку', + 'девочку-подростка', + ], + 'adult': [ + 'молодую девушку', + 'взрослую женщину', + ], + 'old': [ + 'пожилую женщину', + 'престарелую женщину' + ] + }, + 'complicated': { + 'kid': [ + 'ребёнка', + 'подростка', + ], + 'adult': [ + 'молодого путника', + 'взрослого путника', + ], + 'old': [ + 'пожилого путника', + 'престарелого путника' + ] + } + }, + + pronoun_gender : { + 'male': 'Он', + 'female': 'Она', + 'complicated': 'Он' + }, + + // ---------------- + + pronoun_gender_genitive : { + 'male': 'его', + 'female': 'её', + 'complicated': 'его' + }, + + habits : [ + 'Насвистывает что-то', + 'Что-то мычит', + 'Говорит рифмами', + 'Говорит белым стихом', + 'Избегает зрительного контакта', + 'говорит с акцентом', + 'Часто использует выдуманные слова', + 'Любит произносить громкие клятвы', + 'Обожает каламбуры и игру слов', + 'Часто предрекает неудачи', + 'Вспоминает богов через каждое слово', + 'Нервно дёргается и оглядывается', + 'Регулярно чихает', + 'Отстранённо глядит вдаль', + 'Постоянно что-то жуёт', + 'Ходит из угла в угол', + 'Раскачивается на месте', + 'Барабанит пальцами', + 'Покусывает ногти', + 'Накручивает на палец волосы', + 'Часто кашляет', + 'Использует слова-паразиты', + 'Жутко сквернословит', + 'Комментирует каждую фразу собеседника', + 'Игриво подмигивает', + 'Компульсивно моргает и жмурится', + 'Перебивает', + 'Делает пометки в книжке о каждом слове', + 'Говорит о себе от третьего лица', + 'Постоянно почесывается', + 'Осматривает и оправляет свою одежду', + 'Хрустит суставами', + 'Поглаживает руки', + 'Ковыряется в зубах', + 'Постоянно упоминает родственников', + 'Часто сплевывает', + 'имеет нервный тик', + 'Активно жестикулирует', + 'Покусывает губы', + 'Любит пошутить', + 'Причмокивает перед каждой фразой', + 'Повторяет каждую мысль по два раза', + 'Оценивает одежду и снаряжение собеседника', + 'Постоянно забывает конец предложения', + 'Минимум слов', + 'Любит поддакивать и соглашаться', + 'Любит заключать пари', + 'Любит поправлять и уточнять', + 'Часто повторяет имя собеседника', + 'Показательно вежлив ', + 'Постоянно извиняется и просит прощения', + 'Чрезвычайно расслаблен', + 'Игнорирует имена, использует прозвища', + 'Часто цитирует правила и обычаи', + 'Говорит заумными большими словами', + 'Легко отвлекается', + 'Любит упоминать статистику', + 'Нюхает почти всё, что находится в руках', + 'Пробует на вкус почти всё, что находится в руках', + 'Навязчиво вытирает и прочищает вещи', + 'Озвучивает свои эмоции', + 'Имеет фирменную фразу', + 'Бессознательно повторяет последнее слово, произнесённое собеседником', + 'Упоминает встреченных знаменитостей', + 'Объясняет очевидные вещи.', + 'Избегает любого физического контакта', + 'Настороженно следит за собеседниками', + 'Пользуется долгими предложениями', + 'Прикладывается к фляжке', + 'Отвечает на любой вопрос вопросом', + 'Ведёт себя надменно и презрительно', + 'Ведёт себя улыбчиво и добродушно', + 'Говорит восторженно', + 'Использует метафоры и сравнения', + '…Отвечает только после паузы', + 'Стучит зубами каждый раз, когда думает', + 'Держит голову на боку', + 'Зловеще улыбается', + 'Прикрывает рот', + 'использует в порядке непривычном слова', + 'Не проявляет эмоции', + 'Ухмыляется, но только половиной лица', + 'Слушает с закрытыми глазами', + 'Имеет подвижные и выразительные брови', + 'Приглаживает волосы', + 'Цокает языком', + 'Причмокивает', + 'Осматривает ногти', + 'Не отпускает оружие', + 'Постоянно осматривается', + 'Издает сухие смешки', + 'Крутит кольцо', + 'Крутит браслет', + 'Поправляет очки', + 'Шмыгает носом', + 'Шаркает ногой', + 'Не может стоять ровно', + 'Не знает язык. Общается жестами', + 'Не знает язык. Общается через помощника', + ], + + habits_fmale : [ + 'Немая. Общается жестами', + 'Немая. Общается через помощника', + ], + + habits_male : [ + 'Дёргает бороду', + 'Держит руку на промежности', + 'Немой. Общается жестами', + 'Немой. Общается через помощника', + ], + + type_features : [ + 'Украшение', + 'Пирсинг', + 'Одежда', + 'Осанка', + 'Кожа', + 'Нос', + 'Пальцы', + 'Руки', + 'Глаза', + 'Тату', + 'Зубы', + 'Ногти', + 'Причёска', + 'Макияж', + 'Брови', + 'Калека', + 'Уши', + 'Шрамы', + 'Рот', + 'Рост', + 'Потоотделение', + 'Внешность', + 'Запах', + ], + + type_features_male : [ + 'Борода', + ], + + features : { + "Украшение": [ + "Необычные серьги", + "Необычное ожерелье", + "Необычный кулон", + "Необычный браслет", + "Необычные браслеты", + "Необычное кольцо", + "Необычные {запонки|пуговицы}", + "Необычное ожерелье", + "Необычный венец", + "необычная заколка", + "необычная цепь", + ], + "Пирсинг": [ + "Пирсинг в ухе", + "Пирсинг в обоих ушах", + "Пирсинг в носу", + "Пирсинг в губе", + "Пирсинг в брови", + "Пирсинг в подбородке", + ], + "Одежда": [ + 'Идеально чистая ухоженная одежда', + 'Грязная порванная одежда', + 'Официальная одежда', + 'Официальная форма', + 'Одежда одного яркого цвета', + 'Одежда с сочетанием двух ярких цветов', + 'Одежда из мешанины множества цветов', + ], + "Осанка": [ + 'Дворянская осанка', + 'Военная выправка', + 'Неправильная осанка', + 'Ссутулившаяся фигура', + 'Горбатая фигура', + ], + 'Кожа': [ + 'Бородавки', + 'Прыщи', + 'Фурункулы', + 'Следы ужасной болезни на лице', + 'Шелушащаяся кожа', + 'Слезающая кожа', + 'Покрытая следами оспы кожа', + 'Необычный цвет кожи', + 'Приметная родинка', + 'Родимые пятна', + ], + "Нос": [ + 'Большой нос', + 'Курносый нос', + 'Неправильно сросшийся после перелома нос', + 'Горбатый орлиный нос', + 'Крючковатый нос', + 'Крохотный нос', + ], + "Пальцы": [ + 'Длинные тонкие пальцы', + 'Короткие пухлые пальцы', + 'Шестой палец на руке', + 'Парализованные пальцы', + 'Перепонки на руках', + 'Неправильно сросшиеся после перелома пальцы', + ], + "Руки": [ + 'Грязные руки', + 'Мозолистые руки', + 'Мягкие холеные руки', + 'Длинные руки', + 'Огромные ладони', + 'Влажные ладони', + 'Волосатые руки', + ], + "Глаза": [ + 'Повязка на глаз', + 'Стеклянный глаз', + 'Очки', + 'Монокль', + 'Нет одного лаза', + 'Косоглазие', + 'Глаза разного цвета', + 'Большие выразительные глаза', + 'Глаза необычного цвета', + 'Впалые глаза', + 'Выпученные глаза', + ], + "Тату": [ + 'Татуировка на видном месте', + 'Несколько татуировок', + 'Татуировки по всему телу', + 'Светящаяся татуировка', + 'Анимированная татуировка', + 'Татуировка-надпись', + ], + "Зубы" : [ + 'Идеально белые зубы', + 'Желтые зубы', + 'Гнилые зубы', + 'Отсутствие зубов', + 'Искусственные зубы', + 'Отсутствие переднего зуба', + 'Деревянные зубы', + 'Кривые зубы', + 'Лошадиные зубы', + 'Крохотные зубы', + 'Острые зубы', + ], + "Ногти": [ + 'Грязные ногти', + 'Начищенные ногти', + 'Длинные ногти', + 'Длинные когти', + 'Отсутствующие ногти', + 'Накрашенные ногти', + 'Болезненные ногти', + 'Накращенные ногти', + ], + "Причёска": [ + 'Чёлка, закрывающая половину лица,', + 'Очень длинные волосы', + 'Очевидно крашенные волосы', + 'Неестественный цвет волос', + 'Дреды', + 'Лысая голова', + 'Бритая голова', + 'Проплешина', + 'Вьющиеся волнистые волосы', + 'Забавные кудряшки', + 'У головы обриты бока', + 'Растрепанные волосы', + 'Волосы собраны в изысканную прическу ', + 'Короткие волосы под горшок', + 'Зализанные волосы', + 'Жидкие волосы', + 'Пышные волосы', + 'Крашенные волосы', + ], + "Борода": [ + 'Огромные бакенбарды', + 'Примечательная борода', + 'Крашенная борода', + 'Заплетённые в косы волосы', + 'Заметные усы', + 'Крашенные усы', + 'Неравномерная щетина', + 'Двойной подбородок', + 'Тройной подбородок', + ], + "Макияж": [ + 'Необычный макияж', + 'Разукрашенное лицо', + ], + "Брови": [ + 'Очень густые брови', + 'На удвиление тонкие брови', + 'Сросшиеся брови', + 'Отсутствие бровей', + 'Перья на месте бровей', + 'Тонкий шрам поперек брови', + ], + "Калека": [ + 'Отсутствующий палец', + 'Повреждённый палец', + 'Искусственный палец', + 'Отсутствующие пальцы', + 'Повреждённые пальцы', + 'Искусственные пальцы', + 'Отсутствующая кисть', + 'Повреждённая кисть', + 'Искусственная кисть', + 'Отсутствующая нога', + 'Повреждённая нога', + 'Искусственная нога', + 'Отсутствующая рука', + 'Повреждённая рука', + 'Искусственная рука', + 'Отсутствующие ноги', + 'Повреждённые ноги', + 'Искусственные ноги', + 'Серьезные телесные деформации', + 'Серьезные телесные мутации', + ], + "Уши": [ + 'Маленькие уши', + 'Большие уши', + 'Отсутствует одно ухо', + 'Длинные свисающие мочки ушей', + 'Оттопыренные уши', + 'Вялые уши', + ], + "Шрамы": [ + 'Большой шрам на лице', + 'Лицо в шрамах', + 'Шрам на шее', + 'Все тело в шрамах', + 'Шрам-метка на предплечье', + 'Руки в шрамах', + ], + "Рот": [ + 'Заячья губа', + 'Тонкие губы', + 'Широкий рот', + 'Пухлые губы', + 'Безгубый рот', + 'постоянно открытый рот', + 'Парализованная половина лица', + ], + 'Рост': [ + 'Очень высокий рост', + 'Очень низкий рост', + ], + "Потоотделение": [ + 'Обильное потоотделение', + 'Плохое дыхание', + ], + "Внешность": [ + 'Красота', + 'Уродство', + ], + "Запах": [ + 'Приятный аромат', + 'Чарующий аромат', + 'Странный аромат', + 'Жуткая вонь', + 'Слабая вонь', + 'Подозрительная вонь', + 'Странная вонь', + ] + + } + + } + + goods = { + horrible: { + bars: { + beers: [ + { + name: 'Эконом-грог', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Сильно разбавленный ром на лимонной кожуре' + }, + { + name: '"Тайный микс"', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Перемешанные остатки недопитого пойла.' + }, + { + name: 'Эль «Плевок ангела»', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Там плавает муха и ещё что-то, что заставляет вас сомневаться в существовании Бога.' + }, + { + name: 'Орочья настойка', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Выдержана на немытых сапогах.' + }, + { + name: 'Недодержанная брага', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Вонь уже есть, а градус еще не поднялся.' + }, + { + name: 'Разбавленная медовуха', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Если сосредоточится, можно ещё почувствовать запах.' + }, + { + name: 'Сальное пиво', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Настолько нефильтровано, что на дне остался подгнивший солод.' + }, + { + name: '«Почти эль»', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Вы можете легко перепутать его с настоящим. Если никогда не пили ничего, кроме воды.' + }, + { + name: 'Реповое вино', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Более подходящее название, "забродивший реповый суп".' + }, + { + name: '«Эль Бездны»', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'В брагу набросали всё, что было под рукой. Пахнет серой.' + }, + { + name: 'Кружка дешёвой бурды', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Запах перегара не пройдёт до следующего короткого отдыха.' + } + ] + }, + animals: { + + }, + books: { + + }, + flowers: { + + }, + food: { + + }, + furniture: { + + }, + fashion: { + + }, + jewelry: { + + }, + trinkets: { + + }, + skin: { + + }, + mechanical: { + + }, + armor: { + + }, + potions: { + + }, + religious: { + + }, + songs: { + + }, + scrolls: { + + }, + thieves: { + + }, + tools: { + + }, + transport: { + + }, + weapon: { + + } + }, + + bad: { + bars: { + tea: [ + { + name: 'Песочная ягода', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Сильный запах, горький и кислотный, но пить больше не хочется.' + }, + { + name: 'Талкут', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Металлический привкус и сероватый свет; на любителя.' + }, + { + name: 'Полыневый чай', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Очень горький зелёный чай, вызывает аппетит' + }, + { + name: 'Скидр', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Слабый угольный вкус, оставляет тёмный осадок на зубах, но полезен для живота.' + }, + { + name: 'Морской бриз', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Холодный солёный чай с долькой лимона.' + }, + { + name: 'Красный дух', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Ярко бордовый цвет, с остринкой. Подаётся очень горячим.' + }, + { + name: 'Лесной намёк', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Листья дикорастующих ягод, залитые кипятком.' + }, + { + name: 'Воуг', + price: 3, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Травянистый и немного солёный чай, обладающий слабым, но приятным вкусом' + } + ] + }, + animals: { + + }, + books: { + + }, + flowers: { + + }, + food: { + + }, + furniture: { + + }, + fashion: { + + }, + jewelry: { + + }, + trinkets: { + + }, + skin: { + + }, + mechanical: { + + }, + armor: { + + }, + potions: { + + }, + religious: { + + }, + songs: { + + }, + scrolls: { + + }, + thieves: { + + }, + tools: { + + }, + transport: { + + }, + weapon: { + + } + + }, + + medium: { + bars: { + beers: [ + { + name: 'Сидр, "Ноголом"', + price: 8, + denomination: 'cp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Крепкий яблочный сидр; немного мутный, с сильным кисло-сладким вкусом.' + } + ], + tea: [ + { + name: 'Авлат', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Травяной чай медного цвета с добавлением перца.' + }, + { + name: 'Черношип', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Травяной час с ярким земляным ароматом, который может успокоить разошедшийся желудок.' + }, + { + name: "Гаэт'ад", + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Густой и солоноватый, может быть отчасти психоактивным.' + }, + { + name: 'Желтолист', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Очень крепкий чай бледно жёлтого цвета, способный выводить пятна с одежды.' + }, + { + name: 'Чернокорень таль', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Горьковатый вкус корицы, подаётся с горячим мёдом.' + }, + { + name: 'Милиан таль', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Пурпурный час со вкусом лакрицы, подаётся холодным.' + }, + { + name: 'Дикий имбирь', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Пряный и сладкий; успокаивает желудок.' + } + ], + wine: [ + { + name: 'Кровавое вино', + price: getRandomInt(3) + 7, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Красное; яркий вкус с медным привкусом; излюбленный напиток некромантов.' + }, + { + name: 'Огненное вино', + price: getRandomInt(3) + 7, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Красное; очень крепкое и пряное, простолюдины его обожают.' + } + ] + }, + animals: { + + }, + books: { + + }, + flowers: { + + }, + food: { + + }, + furniture: { + + }, + fashion: { + + }, + jewelry: { + + }, + trinkets: { + + }, + skin: { + + }, + mechanical: { + + }, + armor: { + + }, + potions: { + + }, + religious: { + + }, + songs: { + + }, + scrolls: { + + }, + thieves: { + + }, + tools: { + + }, + transport: { + + }, + weapon: { + + } + }, + + good: { + bars: { + beers: [ + { + name: 'Медовуха', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Популярное пряное медовое вино.' + }, + { + name: 'Медовуха, тейская', + price: 3, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Привезённая издалека медовуха с пряностями джунглей.' + }, + { + name: 'Настойка, десмоду', + price: 1, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 100 + 1d100', + description: 'Излюбленный напиток Подземья.' + }, + { + name: 'Ром', + price: 8, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 2 + 1d2', + description: '' + } + ], + tea: [ + { + name: 'Чалторн', + price: getRandomInt(4) + 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Суховатый, с привкусом мела, позволяет не чувствовать острые блюда.' + }, + { + name: 'Земное око', + price: getRandomInt(4) + 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Чёрный чай; увеличивает скорость на 5 футов на 1 час.' + }, + { + name: "Жетур", + price: getRandomInt(4) + 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Пурпурный цвет, пикантный вкус; избавляет от опьянения на 2 часа.' + }, + { + name: 'Долгозвон', + price: getRandomInt(4) + 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Зелёный чай; даёт сопротивление к урону ядом на 1 час.' + }, + { + name: 'Мейрат', + price: getRandomInt(4) + 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Вкус цитрусовых и манго; популярен среди богачей.' + }, + { + name: 'Бледный нефрит', + price: getRandomInt(4) + 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 10 + 1d10', + description: 'Белый чай; лёгкий и воздушный.' + } + ], + wine: [ + { + name: 'Арабельское сухое', + price: getRandomInt(7) + 9, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Красное; очень сухое, с древесными и ягодными нотками.' + }, + { + name: 'Бердусканское тёмное', + price: getRandomInt(7) + 9, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Красное; почти чёрное, со сладким вкусом, душистое и очень крепкое.' + }, + { + name: 'Светопламя', + price: getRandomInt(7) + 9, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Чартеузское; слегка светится и пахнет летними грушами.' + }, + { + name: 'Саэрлунское особое', + price: getRandomInt(7) + 9, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Красное; сложная палитра, с ароматами малины и клубники.' + }, + { + name: 'Саэрлунский топаз', + price: getRandomInt(7) + 9, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Белое; сухое с неожиданными нотами ореха и фруктовыми тонами.' + }, + { + name: 'Зимнее вино', + price: getRandomInt(7) + 9, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: 'Красное дессертное вино сине-пурпурного цвета, сладкое и пряное.' + }, + ], + whiskey: [ + { + name: 'Бренди', + price: 5, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 4 + 1d4', + description: '' + }, + { + name: 'Виски', + price: 5, + denomination: 'sp', + weight: 0.23, + quantity: '1d3 * 4 + 1d4', + description: '' + }, + { + name: 'Водка', + price: 8, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 4 + 1d4', + description: '' + }, + + { + name: 'Самогон', + price: 3, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 4 + 1d4', + description: 'Помеха на спасбросок против интоксикации.' + } + ], + cofee: [ + { + name: 'Горячий шоколад', + price: 5, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: '' + }, + { + name: 'Кофе', + price: 2, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 5 + 1d5', + description: '' + }, + ] + }, + animals: { + + }, + books: { + + }, + flowers: { + + }, + food: { + + }, + furniture: { + + }, + fashion: { + + }, + jewelry: { + + }, + trinkets: { + + }, + skin: { + + }, + mechanical: { + + }, + armor: { + + }, + potions: { + + }, + religious: { + + }, + songs: { + + }, + scrolls: { + + }, + thieves: { + + }, + tools: { + + }, + transport: { + + }, + weapon: { + + } + }, + + beautiful: { + bars: { + whiskey: [ + { + name: "Текила", + price: 8, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 4 + 1d4', + description: '' + }, + ], + cofee: [ + { + name: 'Кофе, дварфский', + price: 15, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 2 + 1d2', + description: 'Выпитая чашка: иммунитет ко сну на 8 часов.' + } + + ], + tea:[ + { + name: 'Чай, пророческий', + price: 20, + denomination: 'gp', + weight: 0.23, + quantity: '1d3 * 2 + 1d2', + description: 'Листья на дне чашки предрекают будущее.' + } + ] + }, + animals: { + + }, + books: { + + }, + flowers: { + + }, + food: { + + }, + furniture: { + + }, + fashion: { + + }, + jewelry: { + + }, + trinkets: { + + }, + skin: { + + }, + mechanical: { + + }, + armor: { + + }, + potions: { + + }, + religious: { + + }, + songs: { + + }, + scrolls: { + + }, + thieves: { + + }, + tools: { + + }, + transport: { + + }, + weapon: { + + } + } + } + + async newMerchant(tokens, merchantItemsTypes, categoriesTypes){ + let compendiumsNames = []; + const compendiums = game.packs.map(pack => { + return { + name: pack.metadata.label, + collection: pack.collection, + entities: pack.index.size + }; + }); + for (const compendium of compendiums) { + const pack = game.packs.get(compendium.collection); + if (pack.metadata.type === "Item") { + compendiumsNames.push(compendium.collection) + } + } + + for ( let token of tokens ){ + await this.makeMerchantActor(token, compendiumsNames, [merchantItemsTypes, categoriesTypes]) + } + } + + async editMerchant(tokens, merchantItemsTypes, categoriesTypes){ + for ( let token of tokens ){ + if (token.actor.type != "npc") { + ui.notifications.error('Выберите персонажа мастера') + return + } + token.actor.deleteEmbeddedDocuments("Item", token.actor.items.map(item => item.id)); + + await this.makeItem(token.actor, categoriesTypes.value, merchantItemsTypes.value, 7); + ItemPiles.API.turnTokensIntoItemPiles(token, { pileSettings: { + "enabled": true, + "infiniteCurrencies": false, + "type": "merchant" + } + }); + } + } + + async randomMerchant(tokens, merchantItemsTypes, categoriesTypes, itemsTypes){ + let compendiumsNames = await this.setCompendiumNames(); + for ( let token of tokens ){ + let categories = this.randomLevel(); + let types = this.randomTypes(itemsTypes); + + categoriesTypes.value = categories; + merchantItemsTypes.value = types; + + await this.makeMerchantActor(token, compendiumsNames, [merchantItemsTypes, categoriesTypes]); + } + } + + diceCategories(dice){ + if (dice === 1){ + return "horrible"; + }else if (dice > 1 && dice < 5){ + return "bad"; + }else if (dice > 4 && dice < 8){ + return "medium"; + }else if (dice > 7 && dice < 11){ + return "good"; + }else{ + return "beautiful"; + } + } + + async randomLevelWithDice(){ + let categories = { + "horrible": "Ужасный", + "bad": "Плохой", + "medium": "Средний", + "good": "Хороший", + "beautiful": "Прекрасный" + } + + let roll = new Roll(`1d12`); + + let result = await roll.roll(); + + let dice = roll.total; + let category = this.diceCategories(dice); + await result.toMessage({ + speaker: game.users.find(user => user.isGM).id, + whisper: [game.users.find(user => user.isGM).id], + flavor: `Выпало ${dice}, а значит ваша категория ${categories[category]}` + }, {rollMode: "BLIND"}); + + return category; + } + + randomLevel(){ + let dice = getRandomInt(12) + 1; + let category = this.diceCategories(dice); + return category; + } + + async randomTypesWithDice(types){ + let roll = new Roll(`1d100`); + let result = await roll.roll(); + let dice = roll.total; + let typesKeys = Object.keys(types); + let tempDice = 100 / (typesKeys.length - 1); + let resultDice = Math.round(dice / tempDice); + let type = typesKeys[resultDice]; + + await result.toMessage({ + speaker: game.users.find(user => user.isGM).id, + whisper: [game.users.find(user => user.isGM).id], + flavor: `Выпало ${dice}, а значит ваш тип ${types[type]}` + }, {rollMode: "BLIND"}); + + return type; + } + + randomTypes(types){ + let dice = getRandomInt(100) + 1; + let typesKeys = Object.keys(types); + let tempDice = (typesKeys.length - 1); + let resultDice = Math.round(dice / tempDice); + let type = typesKeys[resultDice]; + return type; + } + + makeMerchant(token, name, imgToken, imgPortrait, description, details){ + + token.document.update({ + + name: name, + texture: { + src: imgToken + } + }); + let actor = game.actors.get(token.actor.id) + actor.update({ + prototypeToken:{ + name: name, + texture: { + src: imgToken + } + }, + name: name, + img: imgPortrait, + system: { + details: details, + attributes:{ + encumbrance:{ + max : 9000 + } + } + }, + flags: { + "item-piles":{ + data:{ + enabled: true, + infiniteCurrencies: false, + merchantImage: imgPortrait, + type: "merchant", + description: description + } + } + }, + }); + ItemPiles.API.turnTokensIntoItemPiles(token, { pileSettings: { + "enabled": true, + "infiniteCurrencies": false, + "merchantImage": imgPortrait, + "type": "merchant", + "description": description + } + }); + } + + async setCompendiumNames(){ + let compendiumsNames = []; + const compendiums = game.packs.map(pack => { + return { + name: pack.metadata.label, + collection: pack.collection, + entities: pack.index.size + }; + }); + for (const compendium of compendiums) { + const pack = game.packs.get(compendium.collection); + if (pack.metadata.type === "Item") { + compendiumsNames.push(compendium.collection) + } + } + return compendiumsNames; + } + + async makeMerchantActor(token, compendiumsNames, categoriesData){ + const [merchantItemsTypesData, categoriesTypesData] = categoriesData; + if (token.actor.type != "npc") { + ui.notifications.error('Выберите персонажа мастера') + return + } + token.document.actorLink = true; + await token.actor.deleteEmbeddedDocuments("Item", token.actor.items.map(item => item.id)); + let name = ''; + let raceNum = getRandomInt(this.names.length); + let subRaceNum = getRandomInt(this.names[raceNum].list.length); + let names = this.names[raceNum].list[subRaceNum]; + let raceName = this.names[raceNum].list[subRaceNum].title; + let age = ['kid', 'adult', 'old'][getRandomInt(3)] + let done = false; + for ( let raceCompendium of compendiumsNames){ + for (let race of game.packs.get(raceCompendium).index){ + if (race.type == "race" && race.name == raceName){ + race.flags = {'item-piles':{item: {hidden: true}}}; + await token.actor.createEmbeddedDocuments("Item", [race]); + done = true; + break; + } + } + if (done) break; + } + let merchantItemsTypes = merchantItemsTypesData.value; + let categoriesTypes = categoriesTypesData.value; + let merchantItemsText = merchantItemsTypesData.querySelector('option:checked').text; + let categoriesText = categoriesTypesData.querySelector('option:checked').text; + + await this.makeItem(token.actor, categoriesTypes, merchantItemsTypes, 7); + let scheme = this.names[raceNum].list[subRaceNum].schemes[getRandomInt(this.names[raceNum].list[subRaceNum].schemes.length)].split(' '); + for (let i of scheme){ + for (let j of names.src){ + if (i === j.name){ + let tempNames = j.l.split(', '); + name += tempNames[getRandomInt(tempNames.length)] + ' '; + } + } + } + token.document.actorLink = false; + name = name.trim() + let dirPath = `/modules/test_tube_merchant/assets/traider/token/${this.names[raceNum].name}/${this.names[raceNum].list[subRaceNum].name}/${age}/${scheme[0][0]}/`; + let tokensPics = await listAssets(dirPath); + let tokenPic = tokensPics[getRandomInt(tokensPics.length)]; + let portraitPic = tokenPic.replace('/token/', '/portrait/'); + let habits = this.makeHabits(scheme[0]); + let character = this.description.сharacter[getRandomInt(this.description.сharacter.length)]; + let ideal = this.description.ideal[getRandomInt(this.description.ideal.length)]; + let flaw = this.description.flaw[getRandomInt(this.description.flaw.length)]; + let store_features = this.description.store_features[getRandomInt(this.description.store_features.length)]; + let ready = this.description.Willingness_to_bargain[getRandomInt(this.description.Willingness_to_bargain.length)]; + let description =this.makeDiscription(scheme[0], raceName, age); + + // const files = fs.readdirSync(dirPath).map(fileName => `${dirPath}\\${fileName}`); + // console.log(files.join('\n')); + await this.makeMerchant( + token, + name, + tokenPic, + portraitPic, + ` +Тип: ${categoriesText} - ${merchantItemsText} |
+Привычка: ${habits}
+ +Характер: ${character}
+ +Идеал: ${ideal}
+ +Недостаток: ${flaw}
+ +Особенности магазина: ${store_features}
+ +Готовность торговаться: ${ready}
+${description}
+ `, + { + biography:{ + value: `${habits}
${store_features}
${ready}
`,
+ public: description
+ },
+ bond: character,
+ flaw: flaw,
+ ideal: ideal
+ }
+ )
+ }
+
+ makeDiscription(gender, raceName, age){
+ if (gender === 'male' || gender === 'female'){
+
+ } else {
+ gender ='complicated';
+ }
+ let result = `${this.description.introduction[getRandomInt(this.description.introduction.length)]} ${this.description.age_gender[gender][age][getRandomInt(this.description.age_gender[gender][age].length)]}. ${this.description.pronoun_gender[gender]} — ${raceName.toLowerCase()}. ${this.appearanceDescription(gender)}`;
+ return result;
+ }
+
+ makeHabits(gender){
+ let using = [];
+ let result = '';
+ if (gender === 'male'){
+ this.description.habits.concat(this.description.habits_male)
+ }else if (gender === 'female'){
+ this.description.habits.concat(this.description.habits_fmale)
+ }
+ let type;
+ for (let i = 0; i < getRandomInt(4) + 1; i++) {
+ type = this.description.habits[getRandomInt(this.description.habits.length)];
+ while (using.includes(type)) {
+ type = this.description.habits[getRandomInt(this.description.habits.length)];
+ }
+ using.push(type);
+ if (i === 0){
+ result = `${type}`
+ }
+ else if (i === 1){
+ result = result + ' и ' + `${type}`
+ }
+ else {
+ result = `${type}` + ', ' + result
+ }
+ }
+ return result
+ }
+
+ appearanceDescription(gender) {
+
+ //features type_features type_features_male
+ let using = [];
+ let transition_appearance = [
+ `Вы замечаете особенность ${this.description.pronoun_gender_genitive[gender]} внешности —`,
+ `Вас сразу привлекает необычная особенность ${this.description.pronoun_gender_genitive[gender]} внешности —`,
+ `Кое-что бросается в глаза — это ${this.description.pronoun_gender_genitive[gender]}`,
+ `Вас удивляет кое-что: ${this.description.pronoun_gender_genitive[gender]}`,
+ `Кое-что отличает ${this.description.pronoun_gender_genitive[gender]} от прочих, и это`,
+ `${this.description.pronoun_gender_genitive[gender]} внешность странная, в особенности ${this.description.pronoun_gender_genitive[gender]}`,
+ ]
+
+ let transition_appearance_next = [
+ `то что помогает вам ${this.description.pronoun_gender_genitive[gender]} запомнить, это:`,
+ `то что выделяет ${this.description.pronoun_gender_genitive[gender]} в толпе это:`,
+ ]
+
+ let result;
+ let temp_type_features;
+ if (gender === "male") {
+ temp_type_features = this.description.type_features.concat(this.description.type_features_male)
+ }else if (gender === "female"){
+ temp_type_features = this.description.type_features
+ }else{
+ temp_type_features = this.description.type_features.concat(this.description.type_features_male)
+ }
+ let type = '';
+ for (let i = 0; i < getRandomInt(5) + 1; i++) {
+ type = temp_type_features[getRandomInt(temp_type_features.length)];
+ while (using.includes(type) && temp_type_features.includes(type)) {
+ type = temp_type_features[getRandomInt(temp_type_features.length)];
+ }
+ using.push(type);
+ let discr = `${this.description.features[type][getRandomInt(this.description.features[type].length)]}`
+ if (i === 0){
+ result = discr
+ }else if (i === 1){
+ result = result + ' и ' + discr
+ }else if (i === 3){
+ result = result + `, ${transition_appearance_next[getRandomInt(transition_appearance_next.length)]} ` + discr
+ }else{
+ result = discr + ', ' + result
+ }
+ }
+
+ return `${transition_appearance[getRandomInt(transition_appearance.length)]} ` + result;
+ }
+
+ async makeItem(actor, category, itemsTypes, count){
+ let itemsListNames = [];
+
+ let money = {
+ "horrible": 20,
+ "bad": 50,
+ "medium": 100,
+ "good": 250,
+ "beautiful": 500
+ }
+
+ let categories = {
+ "horrible": 1,
+ "bad": 2,
+ "medium": 3,
+ "good": 4,
+ "beautiful": 5
+ }
+
+ let numCategories = {
+ 1: "horrible",
+ 2: "bad",
+ 3: "medium",
+ 4: "good",
+ 5: "beautiful"
+ }
+ for (let j = 1; j < categories[category] + 1; j++) {
+ let itemList = this.goods[numCategories[j]][itemsTypes]
+ let itemPath = `./modules/test_tube_merchant/items/${numCategories[j]}/${itemsTypes}/`;
+ let items = await loadItemsFromFolder(itemPath);
+ for (let i = 0; i < count; i++) {
+ for (let type in itemList) {
+ let dirPath = `/modules/test_tube_merchant/assets/icon/goods/${itemsTypes}/${type}/`;
+ let itemsPics = await this.listAssets(dirPath);
+ let itemPic = itemsPics[getRandomInt(itemsPics.length)];
+ for (let itemListData of itemList[type]){
+ let item_data = {
+ name: itemListData.name,
+ type: "consumable",
+ img: itemPic,
+ system: {
+ quantity: await parseQuantityFormula(itemListData.quantity),
+ price:{
+ value: itemListData.price,
+ denomination: itemListData.denomination
+ },
+ weight: {
+ value: itemListData.weight,
+ units: "kg"
+ },
+ description: {
+ value: itemListData.description
+ }
+ }
+ }
+ items.push(item_data);
+ }
+ }
+ let doIt = true;
+ let timeOut = 5;
+ while (doIt){
+ let item_cursor = getRandomInt(items.length);
+ let item_data = items[item_cursor];
+ if (!itemsListNames.includes(item_data.name)){
+ itemsListNames.push(item_data.name);
+ doIt = false;
+ try{
+ if (parseInt(game.system.version.split(".")[1])<2 && parseInt(game.system.version.split(".")[0])===3){
+ item_data.system.weight = item_data.system.weight?.value || 0;
+ if (item_data.system.attunement){
+ item_data.system.attunement = 1;
+ }else{
+ item_data.system.attunement = 0;
+ }
+ }
+ addItemsJsonToToken(actor, item_data);
+ }catch (e) {
+ console.error(`
+ Торговец из пробирки / Test Tube Merchant
+
+ Ошибка добаления предмета актёру ${item_data.name}
+ Ошибка: ${e}
+ Отправьте пожалуйста ошибку мне на дискорд:
+ https://discord.gg/CwxwDHZAGy
+ `);
+ }
+ }
+ timeOut --;
+ if (timeOut < 0){
+ console.log("Таймаут! Не удалось найти подходящее предмет для торговца.");
+ break;
+ }
+
+ }
+ }
+ }
+ actor.update({
+ "system.currency.gp": money[category] * (getRandomInt(11)+ 1 ) + (getRandomInt(money[category])),
+ "system.currency.sp": money[category] * (getRandomInt(3)+ 1 ) + (getRandomInt(money[category])),
+ "system.currency.cp": money[category] * (getRandomInt(5)+ 1 ) + (getRandomInt(money[category]))
+ });
+ await makeWagon(actor);
+ ui.notifications.info(`Предметы добавлены.`);
+ }
+ async listAssets(assetsPath) {
+ const files = await FilePicker.browse("data", assetsPath);
+ return files.files
+ }
+
+};
+
+async function addItemsJsonToToken(actor, itemData){
+ try {
+ await actor.createEmbeddedDocuments("Item", [itemData]);
+ } catch (e) {
+ console.error(`
+ Торговец из пробирки / Test Tube Merchant
+
+ Ошибка предмета ${itemData.name}
+ Ошибка: ${e}
+ Отправьте пожалуйста ошибку мне на дискорд:
+ https://discord.gg/CwxwDHZAGy
+ `);
+ }
+}
+
+
+async function loadItemsFromFolder(path) {
+ const items = [];
+ const fileList = await FilePicker.browse('data', path);
+
+ for (let file of fileList.files) {
+ const response = await fetch(file);
+ try {
+ const itemData = await response.json();
+ itemData.quantity = itemData.flags["test_tube_merchant"].quantity;
+ itemData.system.quantity = await parseQuantityFormula(itemData.quantity);
+ itemData.quantity = await parseQuantityFormula(itemData.quantity);
+ if (itemData.flags["test_tube_merchant"].price){
+ itemData.system.price.value = await parseQuantityFormula(itemData.flags["test_tube_merchant"].price);
+ }
+ items.push(itemData);
+ } catch (e) {
+ console.error(`
+ Торговец из пробирки / Test Tube Merchant
+
+ Ошибка загрузки файла ${file}
+ Ошибка: ${e}
+ Отправьте пожалуйста ошибку мне на дискорд:
+ https://discord.gg/CwxwDHZAGy
+ `);
+ }
+ }
+ return items;
+}
+
+export function getRandomInt(max) {
+ return Math.floor(Math.random() * max);
+}
+
+async function listAssets(assetsPath) {
+ const files = await FilePicker.browse("data", assetsPath);
+ return files.files
+}
+
+/** Огромное спасибо Elfrey !
+ * Функция для обработки формулы количества.
+ * @param {string} formula - Формула количества.
+ * @returns {number} - Вычисленное количество.
+ */
+async function parseQuantityFormula(formula) {
+ let evaluatedFormula;
+ const diceRegex = /(\d+)d(\d+)/g;
+ function rollDice(match, numDice, dieSides) {
+ let total = 0;
+ for (let i = 0; i < parseInt(numDice); i++) {
+ total += Math.floor(Math.random() * parseInt(dieSides)) + 1;
+ }
+ return total;
+ }
+ let typeFormula = typeof formula;
+ evaluatedFormula = formula;
+ if (typeFormula === 'string'){
+ evaluatedFormula = formula.replace(diceRegex, rollDice);
+ }
+ return eval(evaluatedFormula);
+}
+
+async function makeWagon(actor){
+ const effectName = "Торговая телега";
+ let existingEffect = actor.effects.find(effect => effect.label === effectName);
+
+ if (!existingEffect) {
+ await actor.createEmbeddedDocuments("ActiveEffect", [{
+ name: effectName,
+ img: "./modules/test_tube_merchant/assets/icon/effects/wagon.png",
+ changes: [
+ { key: "system.attributes.encumbrance.bonuses.maximum", value: `70000`, mode: CONST.ACTIVE_EFFECT_MODES.ADD},
+ ]
+ }]);
+ } else {
+ await existingEffect.update({
+ changes: [
+ { key: "system.attributes.encumbrance.bonuses.maximum", value: `70000`, mode: CONST.ACTIVE_EFFECT_MODES.ADD},
+ ]
+ });
+ }
+}
+
diff --git a/test_tube_merchant/module/data/MerchantData.mjs b/test_tube_merchant/module/data/MerchantData.mjs
new file mode 100755
index 0000000..e69de29
diff --git a/test_tube_merchant/module/data/ViewData.mjs b/test_tube_merchant/module/data/ViewData.mjs
new file mode 100755
index 0000000..753592f
--- /dev/null
+++ b/test_tube_merchant/module/data/ViewData.mjs
@@ -0,0 +1,43 @@
+/**
+ * Class ViewData
+ *
+ * This class contains data used to display information about goods and categories.
+ *
+ * @class ViewData
+ * @property {Object} itemsTypes - An object containing types of goods and their descriptions.
+ * @property {Object} categories - An object containing categories and their descriptions.
+ *
+ * @example
+ * const viewData = new ViewData();
+ * console.log(viewData.itemsTypes.bars); // "Алкоголь и напитки"
+ * console.log(viewData.categories.good); // "Хороший"
+ */
+
+export class ViewData {
+ itemsTypes = {
+ "bars": "Алкоголь и напитки",
+ "books": "Книги и карты",
+ "flowers": "Цветы и семена",
+ "food": "Еда и части животных",
+ "fashion": "Высокая мода",
+ "jewelry": "Ювелирные изделия",
+ "trinkets": "Безделушки",
+ "skin": "Изделия из кожи",
+ "mechanical": "Механические приспособления",
+ "armor": "Средние и тяжелые доспехи (щиты)",
+ "potions": "Зелья, яды и травы",
+ "religious": "Религиозные товары",
+ "scrolls": "Книги заклинаний и свитки",
+ "thieves": "Воровские приспособления",
+ "tools": "Инструменты",
+ "weapon": "Оружие"
+ }
+
+ categories = {
+ "horrible": "Ужасный",
+ "bad": "Плохой",
+ "medium": "Средний",
+ "good": "Хороший",
+ "beautiful": "Прекрасный"
+ }
+}
\ No newline at end of file
diff --git a/test_tube_merchant/module/data/utils.mjs b/test_tube_merchant/module/data/utils.mjs
new file mode 100755
index 0000000..bc2f20c
--- /dev/null
+++ b/test_tube_merchant/module/data/utils.mjs
@@ -0,0 +1,31 @@
+/**
+ * Returns a random integer between 0 (inclusive) and the specified maximum (exclusive).
+ *
+ * @param {number} max - The maximum value (exclusive).
+ * @returns {number} A random integer between 0 (inclusive) and the specified maximum (exclusive).
+ */
+export function getRandomInt(max) {
+ return Math.floor(Math.random() * max);
+}
+
+/**
+ * Loads items from a specified folder and returns them as an array of objects.
+ *
+ * @param {string} path - The path to the folder containing the items.
+ * @returns {Promise Мой модуль набирает популярность и ссылки на него стали размещать группы, которые занимаются обманом по продаже ключей к Foundry VTT. Предупреждаю, что ключ к Foundry VTT можно купить только на странице Foundry VTT (https://foundryvtt.com/). Вопросы можно задать в официальной русскоязычной группе Foundry VTT (https://discord.gg/Z2CXFy35WF). во ВКонтакте множество групп мошенников, продающих дубликаты ключей (один и тот же ключ множеству покупателей). Такие ключи рано или поздно блокируются сервером Foundry и вы выкинете деньги на ветер (ещё и обогатите мошенников). Будьте осторожны. Настоящий ключ будет только у вас в личном кабинете, где вы в случае необходимости можете его поменять. Всё остальное не ваш ключ!
";
+ } else {
+ result.push(node.outerHTML);
+ }
+
+ node = node.nextSibling;
+ }
+
+ s = result.length;
+
+ while (s--) {
+ result[s] === "&" && result.splice(s, 1, "&");
+ }
+
+ return result;
+ }
+ function emojiSafeSplit(text, delimiter, trim, preserveSpaces) {
+ text += "";
+ trim && (text = text.trim ? text.trim() : text.replace(_trimExp, ""));
+
+ if (delimiter && delimiter !== "") {
+ return text.replace(/>/g, ">").replace(/= 0xD800 && character.charCodeAt(0) <= 0xDBFF || text.charCodeAt(i + 1) >= 0xFE00 && text.charCodeAt(i + 1) <= 0xFE0F) {
+ j = ((text.substr(i, 12).split(emojiExp) || [])[1] || "").length || 2;
+ character = text.substr(i, j);
+ result.emoji = 1;
+ i += j - 1;
+ }
+
+ result.push(character === ">" ? ">" : character === "<" ? "<" : preserveSpaces && character === " " && (text.charAt(i - 1) === " " || text.charAt(i + 1) === " ") ? " " : character);
+ }
+
+ return result;
+ }
+
+ /*!
+ * TextPlugin 3.12.5
+ * https://gsap.com
+ *
+ * @license Copyright 2008-2024, GreenSock. All rights reserved.
+ * Subject to the terms at https://gsap.com/standard-license or for
+ * Club GSAP members, the agreement issued with that membership.
+ * @author: Jack Doyle, jack@greensock.com
+ */
+
+ var gsap,
+ _tempDiv,
+ _getGSAP = function _getGSAP() {
+ return gsap || typeof window !== "undefined" && (gsap = window.gsap) && gsap.registerPlugin && gsap;
+ };
+
+ var TextPlugin = {
+ version: "3.12.5",
+ name: "text",
+ init: function init(target, value, tween) {
+ typeof value !== "object" && (value = {
+ value: value
+ });
+
+ var i = target.nodeName.toUpperCase(),
+ data = this,
+ _value = value,
+ newClass = _value.newClass,
+ oldClass = _value.oldClass,
+ preserveSpaces = _value.preserveSpaces,
+ rtl = _value.rtl,
+ delimiter = data.delimiter = value.delimiter || "",
+ fillChar = data.fillChar = value.fillChar || (value.padSpace ? " " : ""),
+ _short,
+ text,
+ original,
+ j,
+ condensedText,
+ condensedOriginal,
+ aggregate,
+ s;
+
+ data.svg = target.getBBox && (i === "TEXT" || i === "TSPAN");
+
+ if (!("innerHTML" in target) && !data.svg) {
+ return false;
+ }
+
+ data.target = target;
+
+ if (!("value" in value)) {
+ data.text = data.original = [""];
+ return;
+ }
+
+ original = splitInnerHTML(target, delimiter, false, preserveSpaces);
+ _tempDiv || (_tempDiv = document.createElement("div"));
+ _tempDiv.innerHTML = value.value;
+ text = splitInnerHTML(_tempDiv, delimiter, false, preserveSpaces);
+ data.from = tween._from;
+
+ if ((data.from || rtl) && !(rtl && data.from)) {
+ i = original;
+ original = text;
+ text = i;
+ }
+
+ data.hasClass = !!(newClass || oldClass);
+ data.newClass = rtl ? oldClass : newClass;
+ data.oldClass = rtl ? newClass : oldClass;
+ i = original.length - text.length;
+ _short = i < 0 ? original : text;
+
+ if (i < 0) {
+ i = -i;
+ }
+
+ while (--i > -1) {
+ _short.push(fillChar);
+ }
+
+ if (value.type === "diff") {
+ j = 0;
+ condensedText = [];
+ condensedOriginal = [];
+ aggregate = "";
+
+ for (i = 0; i < text.length; i++) {
+ s = text[i];
+
+ if (s === original[i]) {
+ aggregate += s;
+ } else {
+ condensedText[j] = aggregate + s;
+ condensedOriginal[j++] = aggregate + original[i];
+ aggregate = "";
+ }
+ }
+
+ text = condensedText;
+ original = condensedOriginal;
+
+ if (aggregate) {
+ text.push(aggregate);
+ original.push(aggregate);
+ }
+ }
+
+ value.speed && tween.duration(Math.min(0.05 / value.speed * _short.length, value.maxDuration || 9999));
+ data.rtl = rtl;
+ data.original = original;
+ data.text = text;
+
+ data._props.push("text");
+ },
+ render: function render(ratio, data) {
+ if (ratio > 1) {
+ ratio = 1;
+ } else if (ratio < 0) {
+ ratio = 0;
+ }
+
+ if (data.from) {
+ ratio = 1 - ratio;
+ }
+
+ var text = data.text,
+ hasClass = data.hasClass,
+ newClass = data.newClass,
+ oldClass = data.oldClass,
+ delimiter = data.delimiter,
+ target = data.target,
+ fillChar = data.fillChar,
+ original = data.original,
+ rtl = data.rtl,
+ l = text.length,
+ i = (rtl ? 1 - ratio : ratio) * l + 0.5 | 0,
+ applyNew,
+ applyOld,
+ str;
+
+ if (hasClass && ratio) {
+ applyNew = newClass && i;
+ applyOld = oldClass && i !== l;
+ str = (applyNew ? "" : "") + text.slice(0, i).join(delimiter) + (applyNew ? "" : "") + (applyOld ? "" : "") + delimiter + original.slice(i).join(delimiter) + (applyOld ? "" : "");
+ } else {
+ str = text.slice(0, i).join(delimiter) + delimiter + original.slice(i).join(delimiter);
+ }
+
+ if (data.svg) {
+ target.textContent = str;
+ } else {
+ target.innerHTML = fillChar === " " && ~str.indexOf(" ") ? str.split(" ").join(" ") : str;
+ }
+ }
+ };
+ TextPlugin.splitInnerHTML = splitInnerHTML;
+ TextPlugin.emojiSafeSplit = emojiSafeSplit;
+ TextPlugin.getText = getText;
+ _getGSAP() && gsap.registerPlugin(TextPlugin);
+
+ exports.TextPlugin = TextPlugin;
+ exports.default = TextPlugin;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
diff --git a/test_tube_merchant/module/umd/all.js b/test_tube_merchant/module/umd/all.js
new file mode 100755
index 0000000..ad17d20
--- /dev/null
+++ b/test_tube_merchant/module/umd/all.js
@@ -0,0 +1,16669 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = global || self, factory(global.window = global.window || {}));
+}(this, (function (exports) { 'use strict';
+
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ subClass.__proto__ = superClass;
+ }
+
+ function _assertThisInitialized(self) {
+ if (self === void 0) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+
+ return self;
+ }
+
+ /*!
+ * GSAP 3.12.5
+ * https://gsap.com
+ *
+ * @license Copyright 2008-2024, GreenSock. All rights reserved.
+ * Subject to the terms at https://gsap.com/standard-license or for
+ * Club GSAP members, the agreement issued with that membership.
+ * @author: Jack Doyle, jack@greensock.com
+ */
+ var _config = {
+ autoSleep: 120,
+ force3D: "auto",
+ nullTargetWarn: 1,
+ units: {
+ lineHeight: ""
+ }
+ },
+ _defaults = {
+ duration: .5,
+ overwrite: false,
+ delay: 0
+ },
+ _suppressOverwrites,
+ _reverting,
+ _context,
+ _bigNum = 1e8,
+ _tinyNum = 1 / _bigNum,
+ _2PI = Math.PI * 2,
+ _HALF_PI = _2PI / 4,
+ _gsID = 0,
+ _sqrt = Math.sqrt,
+ _cos = Math.cos,
+ _sin = Math.sin,
+ _isString = function _isString(value) {
+ return typeof value === "string";
+ },
+ _isFunction = function _isFunction(value) {
+ return typeof value === "function";
+ },
+ _isNumber = function _isNumber(value) {
+ return typeof value === "number";
+ },
+ _isUndefined = function _isUndefined(value) {
+ return typeof value === "undefined";
+ },
+ _isObject = function _isObject(value) {
+ return typeof value === "object";
+ },
+ _isNotFalse = function _isNotFalse(value) {
+ return value !== false;
+ },
+ _windowExists = function _windowExists() {
+ return typeof window !== "undefined";
+ },
+ _isFuncOrString = function _isFuncOrString(value) {
+ return _isFunction(value) || _isString(value);
+ },
+ _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function () {},
+ _isArray = Array.isArray,
+ _strictNumExp = /(?:-?\.?\d|\.)+/gi,
+ _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,
+ _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g,
+ _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,
+ _relExp = /[+-]=-?[.\d]+/,
+ _delimitedValueExp = /[^,'"\[\]\s]+/gi,
+ _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,
+ _globalTimeline,
+ _win,
+ _coreInitted,
+ _doc,
+ _globals = {},
+ _installScope = {},
+ _coreReady,
+ _install = function _install(scope) {
+ return (_installScope = _merge(scope, _globals)) && gsap;
+ },
+ _missingPlugin = function _missingPlugin(property, value) {
+ return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()");
+ },
+ _warn = function _warn(message, suppress) {
+ return !suppress && console.warn(message);
+ },
+ _addGlobal = function _addGlobal(name, obj) {
+ return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;
+ },
+ _emptyFunc = function _emptyFunc() {
+ return 0;
+ },
+ _startAtRevertConfig = {
+ suppressEvents: true,
+ isStart: true,
+ kill: false
+ },
+ _revertConfigNoKill = {
+ suppressEvents: true,
+ kill: false
+ },
+ _revertConfig = {
+ suppressEvents: true
+ },
+ _reservedProps = {},
+ _lazyTweens = [],
+ _lazyLookup = {},
+ _lastRenderedFrame,
+ _plugins = {},
+ _effects = {},
+ _nextGCFrame = 30,
+ _harnessPlugins = [],
+ _callbackNames = "",
+ _harness = function _harness(targets) {
+ var target = targets[0],
+ harnessPlugin,
+ i;
+ _isObject(target) || _isFunction(target) || (targets = [targets]);
+
+ if (!(harnessPlugin = (target._gsap || {}).harness)) {
+ i = _harnessPlugins.length;
+
+ while (i-- && !_harnessPlugins[i].targetTest(target)) {}
+
+ harnessPlugin = _harnessPlugins[i];
+ }
+
+ i = targets.length;
+
+ while (i--) {
+ targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);
+ }
+
+ return targets;
+ },
+ _getCache = function _getCache(target) {
+ return target._gsap || _harness(toArray(target))[0]._gsap;
+ },
+ _getProperty = function _getProperty(target, property, v) {
+ return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;
+ },
+ _forEachName = function _forEachName(names, func) {
+ return (names = names.split(",")).forEach(func) || names;
+ },
+ _round = function _round(value) {
+ return Math.round(value * 100000) / 100000 || 0;
+ },
+ _roundPrecise = function _roundPrecise(value) {
+ return Math.round(value * 10000000) / 10000000 || 0;
+ },
+ _parseRelative = function _parseRelative(start, value) {
+ var operator = value.charAt(0),
+ end = parseFloat(value.substr(2));
+ start = parseFloat(start);
+ return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end;
+ },
+ _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {
+ var l = toFind.length,
+ i = 0;
+
+ for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}
+
+ return i < l;
+ },
+ _lazyRender = function _lazyRender() {
+ var l = _lazyTweens.length,
+ a = _lazyTweens.slice(0),
+ i,
+ tween;
+
+ _lazyLookup = {};
+ _lazyTweens.length = 0;
+
+ for (i = 0; i < l; i++) {
+ tween = a[i];
+ tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);
+ }
+ },
+ _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {
+ _lazyTweens.length && !_reverting && _lazyRender();
+ animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));
+ _lazyTweens.length && !_reverting && _lazyRender();
+ },
+ _numericIfPossible = function _numericIfPossible(value) {
+ var n = parseFloat(value);
+ return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;
+ },
+ _passThrough = function _passThrough(p) {
+ return p;
+ },
+ _setDefaults = function _setDefaults(obj, defaults) {
+ for (var p in defaults) {
+ p in obj || (obj[p] = defaults[p]);
+ }
+
+ return obj;
+ },
+ _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {
+ return function (obj, defaults) {
+ for (var p in defaults) {
+ p in obj || p === "duration" && excludeDuration || p === "ease" || (obj[p] = defaults[p]);
+ }
+ };
+ },
+ _merge = function _merge(base, toMerge) {
+ for (var p in toMerge) {
+ base[p] = toMerge[p];
+ }
+
+ return base;
+ },
+ _mergeDeep = function _mergeDeep(base, toMerge) {
+ for (var p in toMerge) {
+ p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);
+ }
+
+ return base;
+ },
+ _copyExcluding = function _copyExcluding(obj, excluding) {
+ var copy = {},
+ p;
+
+ for (p in obj) {
+ p in excluding || (copy[p] = obj[p]);
+ }
+
+ return copy;
+ },
+ _inheritDefaults = function _inheritDefaults(vars) {
+ var parent = vars.parent || _globalTimeline,
+ func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;
+
+ if (_isNotFalse(vars.inherit)) {
+ while (parent) {
+ func(vars, parent.vars.defaults);
+ parent = parent.parent || parent._dp;
+ }
+ }
+
+ return vars;
+ },
+ _arraysMatch = function _arraysMatch(a1, a2) {
+ var i = a1.length,
+ match = i === a2.length;
+
+ while (match && i-- && a1[i] === a2[i]) {}
+
+ return i < 0;
+ },
+ _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {
+ if (firstProp === void 0) {
+ firstProp = "_first";
+ }
+
+ if (lastProp === void 0) {
+ lastProp = "_last";
+ }
+
+ var prev = parent[lastProp],
+ t;
+
+ if (sortBy) {
+ t = child[sortBy];
+
+ while (prev && prev[sortBy] > t) {
+ prev = prev._prev;
+ }
+ }
+
+ if (prev) {
+ child._next = prev._next;
+ prev._next = child;
+ } else {
+ child._next = parent[firstProp];
+ parent[firstProp] = child;
+ }
+
+ if (child._next) {
+ child._next._prev = child;
+ } else {
+ parent[lastProp] = child;
+ }
+
+ child._prev = prev;
+ child.parent = child._dp = parent;
+ return child;
+ },
+ _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {
+ if (firstProp === void 0) {
+ firstProp = "_first";
+ }
+
+ if (lastProp === void 0) {
+ lastProp = "_last";
+ }
+
+ var prev = child._prev,
+ next = child._next;
+
+ if (prev) {
+ prev._next = next;
+ } else if (parent[firstProp] === child) {
+ parent[firstProp] = next;
+ }
+
+ if (next) {
+ next._prev = prev;
+ } else if (parent[lastProp] === child) {
+ parent[lastProp] = prev;
+ }
+
+ child._next = child._prev = child.parent = null;
+ },
+ _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {
+ child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);
+ child._act = 0;
+ },
+ _uncache = function _uncache(animation, child) {
+ if (animation && (!child || child._end > animation._dur || child._start < 0)) {
+ var a = animation;
+
+ while (a) {
+ a._dirty = 1;
+ a = a.parent;
+ }
+ }
+
+ return animation;
+ },
+ _recacheAncestors = function _recacheAncestors(animation) {
+ var parent = animation.parent;
+
+ while (parent && parent.parent) {
+ parent._dirty = 1;
+ parent.totalDuration();
+ parent = parent.parent;
+ }
+
+ return animation;
+ },
+ _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {
+ return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));
+ },
+ _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {
+ return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);
+ },
+ _elapsedCycleDuration = function _elapsedCycleDuration(animation) {
+ return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;
+ },
+ _animationCycle = function _animationCycle(tTime, cycleDuration) {
+ var whole = Math.floor(tTime /= cycleDuration);
+ return tTime && whole === tTime ? whole - 1 : whole;
+ },
+ _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {
+ return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);
+ },
+ _setEnd = function _setEnd(animation) {
+ return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));
+ },
+ _alignPlayhead = function _alignPlayhead(animation, totalTime) {
+ var parent = animation._dp;
+
+ if (parent && parent.smoothChildTiming && animation._ts) {
+ animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));
+
+ _setEnd(animation);
+
+ parent._dirty || _uncache(parent, animation);
+ }
+
+ return animation;
+ },
+ _postAddChecks = function _postAddChecks(timeline, child) {
+ var t;
+
+ if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {
+ t = _parentToChildTotalTime(timeline.rawTime(), child);
+
+ if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {
+ child.render(t, true);
+ }
+ }
+
+ if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {
+ if (timeline._dur < timeline.duration()) {
+ t = timeline;
+
+ while (t._dp) {
+ t.rawTime() >= 0 && t.totalTime(t._tTime);
+ t = t._dp;
+ }
+ }
+
+ timeline._zTime = -_tinyNum;
+ }
+ },
+ _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {
+ child.parent && _removeFromParent(child);
+ child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);
+ child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));
+
+ _addLinkedListItem(timeline, child, "_first", "_last", timeline._sort ? "_start" : 0);
+
+ _isFromOrFromStart(child) || (timeline._recent = child);
+ skipChecks || _postAddChecks(timeline, child);
+ timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime);
+ return timeline;
+ },
+ _scrollTrigger = function _scrollTrigger(animation, trigger) {
+ return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation);
+ },
+ _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {
+ _initTween(tween, time, tTime);
+
+ if (!tween._initted) {
+ return 1;
+ }
+
+ if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {
+ _lazyTweens.push(tween);
+
+ tween._lazy = [tTime, suppressEvents];
+ return 1;
+ }
+ },
+ _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {
+ var parent = _ref.parent;
+ return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));
+ },
+ _isFromOrFromStart = function _isFromOrFromStart(_ref2) {
+ var data = _ref2.data;
+ return data === "isFromStart" || data === "isStart";
+ },
+ _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {
+ var prevRatio = tween.ratio,
+ ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,
+ repeatDelay = tween._rDelay,
+ tTime = 0,
+ pt,
+ iteration,
+ prevIteration;
+
+ if (repeatDelay && tween._repeat) {
+ tTime = _clamp(0, tween._tDur, totalTime);
+ iteration = _animationCycle(tTime, repeatDelay);
+ tween._yoyo && iteration & 1 && (ratio = 1 - ratio);
+
+ if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {
+ prevRatio = 1 - ratio;
+ tween.vars.repeatRefresh && tween._initted && tween.invalidate();
+ }
+ }
+
+ if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {
+ if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {
+ return;
+ }
+
+ prevIteration = tween._zTime;
+ tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0);
+ suppressEvents || (suppressEvents = totalTime && !prevIteration);
+ tween.ratio = ratio;
+ tween._from && (ratio = 1 - ratio);
+ tween._time = 0;
+ tween._tTime = tTime;
+ pt = tween._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+
+ totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);
+ tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate");
+ tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat");
+
+ if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {
+ ratio && _removeFromParent(tween, 1);
+
+ if (!suppressEvents && !_reverting) {
+ _callback(tween, ratio ? "onComplete" : "onReverseComplete", true);
+
+ tween._prom && tween._prom();
+ }
+ }
+ } else if (!tween._zTime) {
+ tween._zTime = totalTime;
+ }
+ },
+ _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {
+ var child;
+
+ if (time > prevTime) {
+ child = animation._first;
+
+ while (child && child._start <= time) {
+ if (child.data === "isPause" && child._start > prevTime) {
+ return child;
+ }
+
+ child = child._next;
+ }
+ } else {
+ child = animation._last;
+
+ while (child && child._start >= time) {
+ if (child.data === "isPause" && child._start < prevTime) {
+ return child;
+ }
+
+ child = child._prev;
+ }
+ }
+ },
+ _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {
+ var repeat = animation._repeat,
+ dur = _roundPrecise(duration) || 0,
+ totalProgress = animation._tTime / animation._tDur;
+ totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);
+ animation._dur = dur;
+ animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);
+ totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);
+ animation.parent && _setEnd(animation);
+ skipUncache || _uncache(animation.parent, animation);
+ return animation;
+ },
+ _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {
+ return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);
+ },
+ _zeroPosition = {
+ _start: 0,
+ endTime: _emptyFunc,
+ totalDuration: _emptyFunc
+ },
+ _parsePosition = function _parsePosition(animation, position, percentAnimation) {
+ var labels = animation.labels,
+ recent = animation._recent || _zeroPosition,
+ clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,
+ i,
+ offset,
+ isPercent;
+
+ if (_isString(position) && (isNaN(position) || position in labels)) {
+ offset = position.charAt(0);
+ isPercent = position.substr(-1) === "%";
+ i = position.indexOf("=");
+
+ if (offset === "<" || offset === ">") {
+ i >= 0 && (position = position.replace(/=/, ""));
+ return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);
+ }
+
+ if (i < 0) {
+ position in labels || (labels[position] = clippedDuration);
+ return labels[position];
+ }
+
+ offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));
+
+ if (isPercent && percentAnimation) {
+ offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();
+ }
+
+ return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;
+ }
+
+ return position == null ? clippedDuration : +position;
+ },
+ _createTweenType = function _createTweenType(type, params, timeline) {
+ var isLegacy = _isNumber(params[1]),
+ varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),
+ vars = params[varsIndex],
+ irVars,
+ parent;
+
+ isLegacy && (vars.duration = params[1]);
+ vars.parent = timeline;
+
+ if (type) {
+ irVars = vars;
+ parent = timeline;
+
+ while (parent && !("immediateRender" in irVars)) {
+ irVars = parent.vars.defaults || {};
+ parent = _isNotFalse(parent.vars.inherit) && parent.parent;
+ }
+
+ vars.immediateRender = _isNotFalse(irVars.immediateRender);
+ type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1];
+ }
+
+ return new Tween(params[0], vars, params[varsIndex + 1]);
+ },
+ _conditionalReturn = function _conditionalReturn(value, func) {
+ return value || value === 0 ? func(value) : func;
+ },
+ _clamp = function _clamp(min, max, value) {
+ return value < min ? min : value > max ? max : value;
+ },
+ getUnit = function getUnit(value, v) {
+ return !_isString(value) || !(v = _unitExp.exec(value)) ? "" : v[1];
+ },
+ clamp = function clamp(min, max, value) {
+ return _conditionalReturn(value, function (v) {
+ return _clamp(min, max, v);
+ });
+ },
+ _slice = [].slice,
+ _isArrayLike = function _isArrayLike(value, nonEmpty) {
+ return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;
+ },
+ _flatten = function _flatten(ar, leaveStrings, accumulator) {
+ if (accumulator === void 0) {
+ accumulator = [];
+ }
+
+ return ar.forEach(function (value) {
+ var _accumulator;
+
+ return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);
+ }) || accumulator;
+ },
+ toArray = function toArray(value, scope, leaveStrings) {
+ return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];
+ },
+ selector = function selector(value) {
+ value = toArray(value)[0] || _warn("Invalid scope") || {};
+ return function (v) {
+ var el = value.current || value.nativeElement || value;
+ return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value);
+ };
+ },
+ shuffle = function shuffle(a) {
+ return a.sort(function () {
+ return .5 - Math.random();
+ });
+ },
+ distribute = function distribute(v) {
+ if (_isFunction(v)) {
+ return v;
+ }
+
+ var vars = _isObject(v) ? v : {
+ each: v
+ },
+ ease = _parseEase(vars.ease),
+ from = vars.from || 0,
+ base = parseFloat(vars.base) || 0,
+ cache = {},
+ isDecimal = from > 0 && from < 1,
+ ratios = isNaN(from) || isDecimal,
+ axis = vars.axis,
+ ratioX = from,
+ ratioY = from;
+
+ if (_isString(from)) {
+ ratioX = ratioY = {
+ center: .5,
+ edges: .5,
+ end: 1
+ }[from] || 0;
+ } else if (!isDecimal && ratios) {
+ ratioX = from[0];
+ ratioY = from[1];
+ }
+
+ return function (i, target, a) {
+ var l = (a || vars).length,
+ distances = cache[l],
+ originX,
+ originY,
+ x,
+ y,
+ d,
+ j,
+ max,
+ min,
+ wrapAt;
+
+ if (!distances) {
+ wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1];
+
+ if (!wrapAt) {
+ max = -_bigNum;
+
+ while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}
+
+ wrapAt < l && wrapAt--;
+ }
+
+ distances = cache[l] = [];
+ originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;
+ originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;
+ max = 0;
+ min = _bigNum;
+
+ for (j = 0; j < l; j++) {
+ x = j % wrapAt - originX;
+ y = originY - (j / wrapAt | 0);
+ distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x);
+ d > max && (max = d);
+ d < min && (min = d);
+ }
+
+ from === "random" && shuffle(distances);
+ distances.max = max - min;
+ distances.min = min;
+ distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1);
+ distances.b = l < 0 ? base - l : base;
+ distances.u = getUnit(vars.amount || vars.each) || 0;
+ ease = ease && l < 0 ? _invertEase(ease) : ease;
+ }
+
+ l = (distances[i] - distances.min) / distances.max || 0;
+ return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u;
+ };
+ },
+ _roundModifier = function _roundModifier(v) {
+ var p = Math.pow(10, ((v + "").split(".")[1] || "").length);
+ return function (raw) {
+ var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);
+
+ return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw));
+ };
+ },
+ snap = function snap(snapTo, value) {
+ var isArray = _isArray(snapTo),
+ radius,
+ is2D;
+
+ if (!isArray && _isObject(snapTo)) {
+ radius = isArray = snapTo.radius || _bigNum;
+
+ if (snapTo.values) {
+ snapTo = toArray(snapTo.values);
+
+ if (is2D = !_isNumber(snapTo[0])) {
+ radius *= radius;
+ }
+ } else {
+ snapTo = _roundModifier(snapTo.increment);
+ }
+ }
+
+ return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {
+ is2D = snapTo(raw);
+ return Math.abs(is2D - raw) <= radius ? is2D : raw;
+ } : function (raw) {
+ var x = parseFloat(is2D ? raw.x : raw),
+ y = parseFloat(is2D ? raw.y : 0),
+ min = _bigNum,
+ closest = 0,
+ i = snapTo.length,
+ dx,
+ dy;
+
+ while (i--) {
+ if (is2D) {
+ dx = snapTo[i].x - x;
+ dy = snapTo[i].y - y;
+ dx = dx * dx + dy * dy;
+ } else {
+ dx = Math.abs(snapTo[i] - x);
+ }
+
+ if (dx < min) {
+ min = dx;
+ closest = i;
+ }
+ }
+
+ closest = !radius || min <= radius ? snapTo[closest] : raw;
+ return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);
+ });
+ },
+ random = function random(min, max, roundingIncrement, returnFunction) {
+ return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {
+ return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;
+ });
+ },
+ pipe = function pipe() {
+ for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {
+ functions[_key] = arguments[_key];
+ }
+
+ return function (value) {
+ return functions.reduce(function (v, f) {
+ return f(v);
+ }, value);
+ };
+ },
+ unitize = function unitize(func, unit) {
+ return function (value) {
+ return func(parseFloat(value)) + (unit || getUnit(value));
+ };
+ },
+ normalize = function normalize(min, max, value) {
+ return mapRange(min, max, 0, 1, value);
+ },
+ _wrapArray = function _wrapArray(a, wrapper, value) {
+ return _conditionalReturn(value, function (index) {
+ return a[~~wrapper(index)];
+ });
+ },
+ wrap = function wrap(min, max, value) {
+ var range = max - min;
+ return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {
+ return (range + (value - min) % range) % range + min;
+ });
+ },
+ wrapYoyo = function wrapYoyo(min, max, value) {
+ var range = max - min,
+ total = range * 2;
+ return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {
+ value = (total + (value - min) % total) % total || 0;
+ return min + (value > range ? total - value : value);
+ });
+ },
+ _replaceRandom = function _replaceRandom(value) {
+ var prev = 0,
+ s = "",
+ i,
+ nums,
+ end,
+ isArray;
+
+ while (~(i = value.indexOf("random(", prev))) {
+ end = value.indexOf(")", i);
+ isArray = value.charAt(i + 7) === "[";
+ nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);
+ s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);
+ prev = end + 1;
+ }
+
+ return s + value.substr(prev, value.length - prev);
+ },
+ mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {
+ var inRange = inMax - inMin,
+ outRange = outMax - outMin;
+ return _conditionalReturn(value, function (value) {
+ return outMin + ((value - inMin) / inRange * outRange || 0);
+ });
+ },
+ interpolate = function interpolate(start, end, progress, mutate) {
+ var func = isNaN(start + end) ? 0 : function (p) {
+ return (1 - p) * start + p * end;
+ };
+
+ if (!func) {
+ var isString = _isString(start),
+ master = {},
+ p,
+ i,
+ interpolators,
+ l,
+ il;
+
+ progress === true && (mutate = 1) && (progress = null);
+
+ if (isString) {
+ start = {
+ p: start
+ };
+ end = {
+ p: end
+ };
+ } else if (_isArray(start) && !_isArray(end)) {
+ interpolators = [];
+ l = start.length;
+ il = l - 2;
+
+ for (i = 1; i < l; i++) {
+ interpolators.push(interpolate(start[i - 1], start[i]));
+ }
+
+ l--;
+
+ func = function func(p) {
+ p *= l;
+ var i = Math.min(il, ~~p);
+ return interpolators[i](p - i);
+ };
+
+ progress = end;
+ } else if (!mutate) {
+ start = _merge(_isArray(start) ? [] : {}, start);
+ }
+
+ if (!interpolators) {
+ for (p in end) {
+ _addPropTween.call(master, start, p, "get", end[p]);
+ }
+
+ func = function func(p) {
+ return _renderPropTweens(p, master) || (isString ? start.p : start);
+ };
+ }
+ }
+
+ return _conditionalReturn(progress, func);
+ },
+ _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {
+ var labels = timeline.labels,
+ min = _bigNum,
+ p,
+ distance,
+ label;
+
+ for (p in labels) {
+ distance = labels[p] - fromTime;
+
+ if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {
+ label = p;
+ min = distance;
+ }
+ }
+
+ return label;
+ },
+ _callback = function _callback(animation, type, executeLazyFirst) {
+ var v = animation.vars,
+ callback = v[type],
+ prevContext = _context,
+ context = animation._ctx,
+ params,
+ scope,
+ result;
+
+ if (!callback) {
+ return;
+ }
+
+ params = v[type + "Params"];
+ scope = v.callbackScope || animation;
+ executeLazyFirst && _lazyTweens.length && _lazyRender();
+ context && (_context = context);
+ result = params ? callback.apply(scope, params) : callback.call(scope);
+ _context = prevContext;
+ return result;
+ },
+ _interrupt = function _interrupt(animation) {
+ _removeFromParent(animation);
+
+ animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);
+ animation.progress() < 1 && _callback(animation, "onInterrupt");
+ return animation;
+ },
+ _quickTween,
+ _registerPluginQueue = [],
+ _createPlugin = function _createPlugin(config) {
+ if (!config) return;
+ config = !config.name && config["default"] || config;
+
+ if (_windowExists() || config.headless) {
+ var name = config.name,
+ isFunc = _isFunction(config),
+ Plugin = name && !isFunc && config.init ? function () {
+ this._props = [];
+ } : config,
+ instanceDefaults = {
+ init: _emptyFunc,
+ render: _renderPropTweens,
+ add: _addPropTween,
+ kill: _killPropTweensOf,
+ modifier: _addPluginModifier,
+ rawVars: 0
+ },
+ statics = {
+ targetTest: 0,
+ get: 0,
+ getSetter: _getSetter,
+ aliases: {},
+ register: 0
+ };
+
+ _wake();
+
+ if (config !== Plugin) {
+ if (_plugins[name]) {
+ return;
+ }
+
+ _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics));
+
+ _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics)));
+
+ _plugins[Plugin.prop = name] = Plugin;
+
+ if (config.targetTest) {
+ _harnessPlugins.push(Plugin);
+
+ _reservedProps[name] = 1;
+ }
+
+ name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin";
+ }
+
+ _addGlobal(name, Plugin);
+
+ config.register && config.register(gsap, Plugin, PropTween);
+ } else {
+ _registerPluginQueue.push(config);
+ }
+ },
+ _255 = 255,
+ _colorLookup = {
+ aqua: [0, _255, _255],
+ lime: [0, _255, 0],
+ silver: [192, 192, 192],
+ black: [0, 0, 0],
+ maroon: [128, 0, 0],
+ teal: [0, 128, 128],
+ blue: [0, 0, _255],
+ navy: [0, 0, 128],
+ white: [_255, _255, _255],
+ olive: [128, 128, 0],
+ yellow: [_255, _255, 0],
+ orange: [_255, 165, 0],
+ gray: [128, 128, 128],
+ purple: [128, 0, 128],
+ green: [0, 128, 0],
+ red: [_255, 0, 0],
+ pink: [_255, 192, 203],
+ cyan: [0, _255, _255],
+ transparent: [_255, _255, _255, 0]
+ },
+ _hue = function _hue(h, m1, m2) {
+ h += h < 0 ? 1 : h > 1 ? -1 : 0;
+ return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;
+ },
+ splitColor = function splitColor(v, toHSL, forceAlpha) {
+ var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,
+ r,
+ g,
+ b,
+ h,
+ s,
+ l,
+ max,
+ min,
+ d,
+ wasHSL;
+
+ if (!a) {
+ if (v.substr(-1) === ",") {
+ v = v.substr(0, v.length - 1);
+ }
+
+ if (_colorLookup[v]) {
+ a = _colorLookup[v];
+ } else if (v.charAt(0) === "#") {
+ if (v.length < 6) {
+ r = v.charAt(1);
+ g = v.charAt(2);
+ b = v.charAt(3);
+ v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : "");
+ }
+
+ if (v.length === 9) {
+ a = parseInt(v.substr(1, 6), 16);
+ return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];
+ }
+
+ v = parseInt(v.substr(1), 16);
+ a = [v >> 16, v >> 8 & _255, v & _255];
+ } else if (v.substr(0, 3) === "hsl") {
+ a = wasHSL = v.match(_strictNumExp);
+
+ if (!toHSL) {
+ h = +a[0] % 360 / 360;
+ s = +a[1] / 100;
+ l = +a[2] / 100;
+ g = l <= .5 ? l * (s + 1) : l + s - l * s;
+ r = l * 2 - g;
+ a.length > 3 && (a[3] *= 1);
+ a[0] = _hue(h + 1 / 3, r, g);
+ a[1] = _hue(h, r, g);
+ a[2] = _hue(h - 1 / 3, r, g);
+ } else if (~v.indexOf("=")) {
+ a = v.match(_numExp);
+ forceAlpha && a.length < 4 && (a[3] = 1);
+ return a;
+ }
+ } else {
+ a = v.match(_strictNumExp) || _colorLookup.transparent;
+ }
+
+ a = a.map(Number);
+ }
+
+ if (toHSL && !wasHSL) {
+ r = a[0] / _255;
+ g = a[1] / _255;
+ b = a[2] / _255;
+ max = Math.max(r, g, b);
+ min = Math.min(r, g, b);
+ l = (max + min) / 2;
+
+ if (max === min) {
+ h = s = 0;
+ } else {
+ d = max - min;
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
+ h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;
+ h *= 60;
+ }
+
+ a[0] = ~~(h + .5);
+ a[1] = ~~(s * 100 + .5);
+ a[2] = ~~(l * 100 + .5);
+ }
+
+ forceAlpha && a.length < 4 && (a[3] = 1);
+ return a;
+ },
+ _colorOrderData = function _colorOrderData(v) {
+ var values = [],
+ c = [],
+ i = -1;
+ v.split(_colorExp).forEach(function (v) {
+ var a = v.match(_numWithUnitExp) || [];
+ values.push.apply(values, a);
+ c.push(i += a.length + 1);
+ });
+ values.c = c;
+ return values;
+ },
+ _formatColors = function _formatColors(s, toHSL, orderMatchData) {
+ var result = "",
+ colors = (s + result).match(_colorExp),
+ type = toHSL ? "hsla(" : "rgba(",
+ i = 0,
+ c,
+ shell,
+ d,
+ l;
+
+ if (!colors) {
+ return s;
+ }
+
+ colors = colors.map(function (color) {
+ return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")";
+ });
+
+ if (orderMatchData) {
+ d = _colorOrderData(s);
+ c = orderMatchData.c;
+
+ if (c.join(result) !== d.c.join(result)) {
+ shell = s.replace(_colorExp, "1").split(_numWithUnitExp);
+ l = shell.length - 1;
+
+ for (; i < l; i++) {
+ result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift());
+ }
+ }
+ }
+
+ if (!shell) {
+ shell = s.split(_colorExp);
+ l = shell.length - 1;
+
+ for (; i < l; i++) {
+ result += shell[i] + colors[i];
+ }
+ }
+
+ return result + shell[l];
+ },
+ _colorExp = function () {
+ var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b",
+ p;
+
+ for (p in _colorLookup) {
+ s += "|" + p + "\\b";
+ }
+
+ return new RegExp(s + ")", "gi");
+ }(),
+ _hslExp = /hsl[a]?\(/,
+ _colorStringFilter = function _colorStringFilter(a) {
+ var combined = a.join(" "),
+ toHSL;
+ _colorExp.lastIndex = 0;
+
+ if (_colorExp.test(combined)) {
+ toHSL = _hslExp.test(combined);
+ a[1] = _formatColors(a[1], toHSL);
+ a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1]));
+ return true;
+ }
+ },
+ _tickerActive,
+ _ticker = function () {
+ var _getTime = Date.now,
+ _lagThreshold = 500,
+ _adjustedLag = 33,
+ _startTime = _getTime(),
+ _lastUpdate = _startTime,
+ _gap = 1000 / 240,
+ _nextTime = _gap,
+ _listeners = [],
+ _id,
+ _req,
+ _raf,
+ _self,
+ _delta,
+ _i,
+ _tick = function _tick(v) {
+ var elapsed = _getTime() - _lastUpdate,
+ manual = v === true,
+ overlap,
+ dispatch,
+ time,
+ frame;
+
+ (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);
+ _lastUpdate += elapsed;
+ time = _lastUpdate - _startTime;
+ overlap = time - _nextTime;
+
+ if (overlap > 0 || manual) {
+ frame = ++_self.frame;
+ _delta = time - _self.time * 1000;
+ _self.time = time = time / 1000;
+ _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);
+ dispatch = 1;
+ }
+
+ manual || (_id = _req(_tick));
+
+ if (dispatch) {
+ for (_i = 0; _i < _listeners.length; _i++) {
+ _listeners[_i](time, _delta, frame, v);
+ }
+ }
+ };
+
+ _self = {
+ time: 0,
+ frame: 0,
+ tick: function tick() {
+ _tick(true);
+ },
+ deltaRatio: function deltaRatio(fps) {
+ return _delta / (1000 / (fps || 60));
+ },
+ wake: function wake() {
+ if (_coreReady) {
+ if (!_coreInitted && _windowExists()) {
+ _win = _coreInitted = window;
+ _doc = _win.document || {};
+ _globals.gsap = gsap;
+ (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);
+
+ _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});
+
+ _registerPluginQueue.forEach(_createPlugin);
+ }
+
+ _raf = typeof requestAnimationFrame !== "undefined" && requestAnimationFrame;
+ _id && _self.sleep();
+
+ _req = _raf || function (f) {
+ return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);
+ };
+
+ _tickerActive = 1;
+
+ _tick(2);
+ }
+ },
+ sleep: function sleep() {
+ (_raf ? cancelAnimationFrame : clearTimeout)(_id);
+ _tickerActive = 0;
+ _req = _emptyFunc;
+ },
+ lagSmoothing: function lagSmoothing(threshold, adjustedLag) {
+ _lagThreshold = threshold || Infinity;
+ _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);
+ },
+ fps: function fps(_fps) {
+ _gap = 1000 / (_fps || 240);
+ _nextTime = _self.time * 1000 + _gap;
+ },
+ add: function add(callback, once, prioritize) {
+ var func = once ? function (t, d, f, v) {
+ callback(t, d, f, v);
+
+ _self.remove(func);
+ } : callback;
+
+ _self.remove(callback);
+
+ _listeners[prioritize ? "unshift" : "push"](func);
+
+ _wake();
+
+ return func;
+ },
+ remove: function remove(callback, i) {
+ ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;
+ },
+ _listeners: _listeners
+ };
+ return _self;
+ }(),
+ _wake = function _wake() {
+ return !_tickerActive && _ticker.wake();
+ },
+ _easeMap = {},
+ _customEaseExp = /^[\d.\-M][\d.\-,\s]/,
+ _quotesExp = /["']/g,
+ _parseObjectInString = function _parseObjectInString(value) {
+ var obj = {},
+ split = value.substr(1, value.length - 3).split(":"),
+ key = split[0],
+ i = 1,
+ l = split.length,
+ index,
+ val,
+ parsedVal;
+
+ for (; i < l; i++) {
+ val = split[i];
+ index = i !== l - 1 ? val.lastIndexOf(",") : val.length;
+ parsedVal = val.substr(0, index);
+ obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal;
+ key = val.substr(index + 1).trim();
+ }
+
+ return obj;
+ },
+ _valueInParentheses = function _valueInParentheses(value) {
+ var open = value.indexOf("(") + 1,
+ close = value.indexOf(")"),
+ nested = value.indexOf("(", open);
+ return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close);
+ },
+ _configEaseFromString = function _configEaseFromString(name) {
+ var split = (name + "").split("("),
+ ease = _easeMap[split[0]];
+ return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease;
+ },
+ _invertEase = function _invertEase(ease) {
+ return function (p) {
+ return 1 - ease(1 - p);
+ };
+ },
+ _propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {
+ var child = timeline._first,
+ ease;
+
+ while (child) {
+ if (child instanceof Timeline) {
+ _propagateYoyoEase(child, isYoyo);
+ } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {
+ if (child.timeline) {
+ _propagateYoyoEase(child.timeline, isYoyo);
+ } else {
+ ease = child._ease;
+ child._ease = child._yEase;
+ child._yEase = ease;
+ child._yoyo = isYoyo;
+ }
+ }
+
+ child = child._next;
+ }
+ },
+ _parseEase = function _parseEase(ease, defaultEase) {
+ return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;
+ },
+ _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {
+ if (easeOut === void 0) {
+ easeOut = function easeOut(p) {
+ return 1 - easeIn(1 - p);
+ };
+ }
+
+ if (easeInOut === void 0) {
+ easeInOut = function easeInOut(p) {
+ return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;
+ };
+ }
+
+ var ease = {
+ easeIn: easeIn,
+ easeOut: easeOut,
+ easeInOut: easeInOut
+ },
+ lowercaseName;
+
+ _forEachName(names, function (name) {
+ _easeMap[name] = _globals[name] = ease;
+ _easeMap[lowercaseName = name.toLowerCase()] = easeOut;
+
+ for (var p in ease) {
+ _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p];
+ }
+ });
+
+ return ease;
+ },
+ _easeInOutFromOut = function _easeInOutFromOut(easeOut) {
+ return function (p) {
+ return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;
+ };
+ },
+ _configElastic = function _configElastic(type, amplitude, period) {
+ var p1 = amplitude >= 1 ? amplitude : 1,
+ p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),
+ p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),
+ easeOut = function easeOut(p) {
+ return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;
+ },
+ ease = type === "out" ? easeOut : type === "in" ? function (p) {
+ return 1 - easeOut(1 - p);
+ } : _easeInOutFromOut(easeOut);
+
+ p2 = _2PI / p2;
+
+ ease.config = function (amplitude, period) {
+ return _configElastic(type, amplitude, period);
+ };
+
+ return ease;
+ },
+ _configBack = function _configBack(type, overshoot) {
+ if (overshoot === void 0) {
+ overshoot = 1.70158;
+ }
+
+ var easeOut = function easeOut(p) {
+ return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;
+ },
+ ease = type === "out" ? easeOut : type === "in" ? function (p) {
+ return 1 - easeOut(1 - p);
+ } : _easeInOutFromOut(easeOut);
+
+ ease.config = function (overshoot) {
+ return _configBack(type, overshoot);
+ };
+
+ return ease;
+ };
+
+ _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function (name, i) {
+ var power = i < 5 ? i + 1 : i;
+
+ _insertEase(name + ",Power" + (power - 1), i ? function (p) {
+ return Math.pow(p, power);
+ } : function (p) {
+ return p;
+ }, function (p) {
+ return 1 - Math.pow(1 - p, power);
+ }, function (p) {
+ return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;
+ });
+ });
+
+ _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;
+
+ _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic());
+
+ (function (n, c) {
+ var n1 = 1 / c,
+ n2 = 2 * n1,
+ n3 = 2.5 * n1,
+ easeOut = function easeOut(p) {
+ return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;
+ };
+
+ _insertEase("Bounce", function (p) {
+ return 1 - easeOut(1 - p);
+ }, easeOut);
+ })(7.5625, 2.75);
+
+ _insertEase("Expo", function (p) {
+ return p ? Math.pow(2, 10 * (p - 1)) : 0;
+ });
+
+ _insertEase("Circ", function (p) {
+ return -(_sqrt(1 - p * p) - 1);
+ });
+
+ _insertEase("Sine", function (p) {
+ return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;
+ });
+
+ _insertEase("Back", _configBack("in"), _configBack("out"), _configBack());
+
+ _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {
+ config: function config(steps, immediateStart) {
+ if (steps === void 0) {
+ steps = 1;
+ }
+
+ var p1 = 1 / steps,
+ p2 = steps + (immediateStart ? 0 : 1),
+ p3 = immediateStart ? 1 : 0,
+ max = 1 - _tinyNum;
+ return function (p) {
+ return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;
+ };
+ }
+ };
+ _defaults.ease = _easeMap["quad.out"];
+
+ _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function (name) {
+ return _callbackNames += name + "," + name + "Params,";
+ });
+
+ var GSCache = function GSCache(target, harness) {
+ this.id = _gsID++;
+ target._gsap = this;
+ this.target = target;
+ this.harness = harness;
+ this.get = harness ? harness.get : _getProperty;
+ this.set = harness ? harness.getSetter : _getSetter;
+ };
+ var Animation = function () {
+ function Animation(vars) {
+ this.vars = vars;
+ this._delay = +vars.delay || 0;
+
+ if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {
+ this._rDelay = vars.repeatDelay || 0;
+ this._yoyo = !!vars.yoyo || !!vars.yoyoEase;
+ }
+
+ this._ts = 1;
+
+ _setDuration(this, +vars.duration, 1, 1);
+
+ this.data = vars.data;
+
+ if (_context) {
+ this._ctx = _context;
+
+ _context.data.push(this);
+ }
+
+ _tickerActive || _ticker.wake();
+ }
+
+ var _proto = Animation.prototype;
+
+ _proto.delay = function delay(value) {
+ if (value || value === 0) {
+ this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);
+ this._delay = value;
+ return this;
+ }
+
+ return this._delay;
+ };
+
+ _proto.duration = function duration(value) {
+ return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;
+ };
+
+ _proto.totalDuration = function totalDuration(value) {
+ if (!arguments.length) {
+ return this._tDur;
+ }
+
+ this._dirty = 0;
+ return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));
+ };
+
+ _proto.totalTime = function totalTime(_totalTime, suppressEvents) {
+ _wake();
+
+ if (!arguments.length) {
+ return this._tTime;
+ }
+
+ var parent = this._dp;
+
+ if (parent && parent.smoothChildTiming && this._ts) {
+ _alignPlayhead(this, _totalTime);
+
+ !parent._dp || parent.parent || _postAddChecks(parent, this);
+
+ while (parent && parent.parent) {
+ if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {
+ parent.totalTime(parent._tTime, true);
+ }
+
+ parent = parent.parent;
+ }
+
+ if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {
+ _addToTimeline(this._dp, this, this._start - this._delay);
+ }
+ }
+
+ if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {
+ this._ts || (this._pTime = _totalTime);
+
+ _lazySafeRender(this, _totalTime, suppressEvents);
+ }
+
+ return this;
+ };
+
+ _proto.time = function time(value, suppressEvents) {
+ return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time;
+ };
+
+ _proto.totalProgress = function totalProgress(value, suppressEvents) {
+ return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() > 0 ? 1 : 0;
+ };
+
+ _proto.progress = function progress(value, suppressEvents) {
+ return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;
+ };
+
+ _proto.iteration = function iteration(value, suppressEvents) {
+ var cycleDuration = this.duration() + this._rDelay;
+
+ return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;
+ };
+
+ _proto.timeScale = function timeScale(value, suppressEvents) {
+ if (!arguments.length) {
+ return this._rts === -_tinyNum ? 0 : this._rts;
+ }
+
+ if (this._rts === value) {
+ return this;
+ }
+
+ var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime;
+ this._rts = +value || 0;
+ this._ts = this._ps || value === -_tinyNum ? 0 : this._rts;
+ this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false);
+
+ _setEnd(this);
+
+ return _recacheAncestors(this);
+ };
+
+ _proto.paused = function paused(value) {
+ if (!arguments.length) {
+ return this._ps;
+ }
+
+ if (this._ps !== value) {
+ this._ps = value;
+
+ if (value) {
+ this._pTime = this._tTime || Math.max(-this._delay, this.rawTime());
+ this._ts = this._act = 0;
+ } else {
+ _wake();
+
+ this._ts = this._rts;
+ this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum));
+ }
+ }
+
+ return this;
+ };
+
+ _proto.startTime = function startTime(value) {
+ if (arguments.length) {
+ this._start = value;
+ var parent = this.parent || this._dp;
+ parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);
+ return this;
+ }
+
+ return this._start;
+ };
+
+ _proto.endTime = function endTime(includeRepeats) {
+ return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);
+ };
+
+ _proto.rawTime = function rawTime(wrapRepeats) {
+ var parent = this.parent || this._dp;
+ return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);
+ };
+
+ _proto.revert = function revert(config) {
+ if (config === void 0) {
+ config = _revertConfig;
+ }
+
+ var prevIsReverting = _reverting;
+ _reverting = config;
+
+ if (this._initted || this._startAt) {
+ this.timeline && this.timeline.revert(config);
+ this.totalTime(-0.01, config.suppressEvents);
+ }
+
+ this.data !== "nested" && config.kill !== false && this.kill();
+ _reverting = prevIsReverting;
+ return this;
+ };
+
+ _proto.globalTime = function globalTime(rawTime) {
+ var animation = this,
+ time = arguments.length ? rawTime : animation.rawTime();
+
+ while (animation) {
+ time = animation._start + time / (Math.abs(animation._ts) || 1);
+ animation = animation._dp;
+ }
+
+ return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time;
+ };
+
+ _proto.repeat = function repeat(value) {
+ if (arguments.length) {
+ this._repeat = value === Infinity ? -2 : value;
+ return _onUpdateTotalDuration(this);
+ }
+
+ return this._repeat === -2 ? Infinity : this._repeat;
+ };
+
+ _proto.repeatDelay = function repeatDelay(value) {
+ if (arguments.length) {
+ var time = this._time;
+ this._rDelay = value;
+
+ _onUpdateTotalDuration(this);
+
+ return time ? this.time(time) : this;
+ }
+
+ return this._rDelay;
+ };
+
+ _proto.yoyo = function yoyo(value) {
+ if (arguments.length) {
+ this._yoyo = value;
+ return this;
+ }
+
+ return this._yoyo;
+ };
+
+ _proto.seek = function seek(position, suppressEvents) {
+ return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));
+ };
+
+ _proto.restart = function restart(includeDelay, suppressEvents) {
+ return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));
+ };
+
+ _proto.play = function play(from, suppressEvents) {
+ from != null && this.seek(from, suppressEvents);
+ return this.reversed(false).paused(false);
+ };
+
+ _proto.reverse = function reverse(from, suppressEvents) {
+ from != null && this.seek(from || this.totalDuration(), suppressEvents);
+ return this.reversed(true).paused(false);
+ };
+
+ _proto.pause = function pause(atTime, suppressEvents) {
+ atTime != null && this.seek(atTime, suppressEvents);
+ return this.paused(true);
+ };
+
+ _proto.resume = function resume() {
+ return this.paused(false);
+ };
+
+ _proto.reversed = function reversed(value) {
+ if (arguments.length) {
+ !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0));
+ return this;
+ }
+
+ return this._rts < 0;
+ };
+
+ _proto.invalidate = function invalidate() {
+ this._initted = this._act = 0;
+ this._zTime = -_tinyNum;
+ return this;
+ };
+
+ _proto.isActive = function isActive() {
+ var parent = this.parent || this._dp,
+ start = this._start,
+ rawTime;
+ return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);
+ };
+
+ _proto.eventCallback = function eventCallback(type, callback, params) {
+ var vars = this.vars;
+
+ if (arguments.length > 1) {
+ if (!callback) {
+ delete vars[type];
+ } else {
+ vars[type] = callback;
+ params && (vars[type + "Params"] = params);
+ type === "onUpdate" && (this._onUpdate = callback);
+ }
+
+ return this;
+ }
+
+ return vars[type];
+ };
+
+ _proto.then = function then(onFulfilled) {
+ var self = this;
+ return new Promise(function (resolve) {
+ var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,
+ _resolve = function _resolve() {
+ var _then = self.then;
+ self.then = null;
+ _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);
+ resolve(f);
+ self.then = _then;
+ };
+
+ if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {
+ _resolve();
+ } else {
+ self._prom = _resolve;
+ }
+ });
+ };
+
+ _proto.kill = function kill() {
+ _interrupt(this);
+ };
+
+ return Animation;
+ }();
+
+ _setDefaults(Animation.prototype, {
+ _time: 0,
+ _start: 0,
+ _end: 0,
+ _tTime: 0,
+ _tDur: 0,
+ _dirty: 0,
+ _repeat: 0,
+ _yoyo: false,
+ parent: null,
+ _initted: false,
+ _rDelay: 0,
+ _ts: 1,
+ _dp: 0,
+ ratio: 0,
+ _zTime: -_tinyNum,
+ _prom: 0,
+ _ps: false,
+ _rts: 1
+ });
+
+ var Timeline = function (_Animation) {
+ _inheritsLoose(Timeline, _Animation);
+
+ function Timeline(vars, position) {
+ var _this;
+
+ if (vars === void 0) {
+ vars = {};
+ }
+
+ _this = _Animation.call(this, vars) || this;
+ _this.labels = {};
+ _this.smoothChildTiming = !!vars.smoothChildTiming;
+ _this.autoRemoveChildren = !!vars.autoRemoveChildren;
+ _this._sort = _isNotFalse(vars.sortChildren);
+ _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);
+ vars.reversed && _this.reverse();
+ vars.paused && _this.paused(true);
+ vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);
+ return _this;
+ }
+
+ var _proto2 = Timeline.prototype;
+
+ _proto2.to = function to(targets, vars, position) {
+ _createTweenType(0, arguments, this);
+
+ return this;
+ };
+
+ _proto2.from = function from(targets, vars, position) {
+ _createTweenType(1, arguments, this);
+
+ return this;
+ };
+
+ _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {
+ _createTweenType(2, arguments, this);
+
+ return this;
+ };
+
+ _proto2.set = function set(targets, vars, position) {
+ vars.duration = 0;
+ vars.parent = this;
+ _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);
+ vars.immediateRender = !!vars.immediateRender;
+ new Tween(targets, vars, _parsePosition(this, position), 1);
+ return this;
+ };
+
+ _proto2.call = function call(callback, params, position) {
+ return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);
+ };
+
+ _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
+ vars.duration = duration;
+ vars.stagger = vars.stagger || stagger;
+ vars.onComplete = onCompleteAll;
+ vars.onCompleteParams = onCompleteAllParams;
+ vars.parent = this;
+ new Tween(targets, vars, _parsePosition(this, position));
+ return this;
+ };
+
+ _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
+ vars.runBackwards = 1;
+ _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);
+ return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);
+ };
+
+ _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {
+ toVars.startAt = fromVars;
+ _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);
+ return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);
+ };
+
+ _proto2.render = function render(totalTime, suppressEvents, force) {
+ var prevTime = this._time,
+ tDur = this._dirty ? this.totalDuration() : this._tDur,
+ dur = this._dur,
+ tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),
+ crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),
+ time,
+ child,
+ next,
+ iteration,
+ cycleDuration,
+ prevPaused,
+ pauseTween,
+ timeScale,
+ prevStart,
+ prevIteration,
+ yoyo,
+ isYoyo;
+ this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);
+
+ if (tTime !== this._tTime || force || crossingStart) {
+ if (prevTime !== this._time && dur) {
+ tTime += this._time - prevTime;
+ totalTime += this._time - prevTime;
+ }
+
+ time = tTime;
+ prevStart = this._start;
+ timeScale = this._ts;
+ prevPaused = !timeScale;
+
+ if (crossingStart) {
+ dur || (prevTime = this._zTime);
+ (totalTime || !suppressEvents) && (this._zTime = totalTime);
+ }
+
+ if (this._repeat) {
+ yoyo = this._yoyo;
+ cycleDuration = dur + this._rDelay;
+
+ if (this._repeat < -1 && totalTime < 0) {
+ return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
+ }
+
+ time = _roundPrecise(tTime % cycleDuration);
+
+ if (tTime === tDur) {
+ iteration = this._repeat;
+ time = dur;
+ } else {
+ iteration = ~~(tTime / cycleDuration);
+
+ if (iteration && iteration === tTime / cycleDuration) {
+ time = dur;
+ iteration--;
+ }
+
+ time > dur && (time = dur);
+ }
+
+ prevIteration = _animationCycle(this._tTime, cycleDuration);
+ !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration);
+
+ if (yoyo && iteration & 1) {
+ time = dur - time;
+ isYoyo = 1;
+ }
+
+ if (iteration !== prevIteration && !this._lock) {
+ var rewinding = yoyo && prevIteration & 1,
+ doesWrap = rewinding === (yoyo && iteration & 1);
+ iteration < prevIteration && (rewinding = !rewinding);
+ prevTime = rewinding ? 0 : tTime % dur ? dur : tTime;
+ this._lock = 1;
+ this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;
+ this._tTime = tTime;
+ !suppressEvents && this.parent && _callback(this, "onRepeat");
+ this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);
+
+ if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {
+ return this;
+ }
+
+ dur = this._dur;
+ tDur = this._tDur;
+
+ if (doesWrap) {
+ this._lock = 2;
+ prevTime = rewinding ? dur : -0.0001;
+ this.render(prevTime, true);
+ this.vars.repeatRefresh && !isYoyo && this.invalidate();
+ }
+
+ this._lock = 0;
+
+ if (!this._ts && !prevPaused) {
+ return this;
+ }
+
+ _propagateYoyoEase(this, isYoyo);
+ }
+ }
+
+ if (this._hasPause && !this._forcing && this._lock < 2) {
+ pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));
+
+ if (pauseTween) {
+ tTime -= time - (time = pauseTween._start);
+ }
+ }
+
+ this._tTime = tTime;
+ this._time = time;
+ this._act = !timeScale;
+
+ if (!this._initted) {
+ this._onUpdate = this.vars.onUpdate;
+ this._initted = 1;
+ this._zTime = totalTime;
+ prevTime = 0;
+ }
+
+ if (!prevTime && time && !suppressEvents && !iteration) {
+ _callback(this, "onStart");
+
+ if (this._tTime !== tTime) {
+ return this;
+ }
+ }
+
+ if (time >= prevTime && totalTime >= 0) {
+ child = this._first;
+
+ while (child) {
+ next = child._next;
+
+ if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {
+ if (child.parent !== this) {
+ return this.render(totalTime, suppressEvents, force);
+ }
+
+ child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);
+
+ if (time !== this._time || !this._ts && !prevPaused) {
+ pauseTween = 0;
+ next && (tTime += this._zTime = -_tinyNum);
+ break;
+ }
+ }
+
+ child = next;
+ }
+ } else {
+ child = this._last;
+ var adjustedTime = totalTime < 0 ? totalTime : time;
+
+ while (child) {
+ next = child._prev;
+
+ if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {
+ if (child.parent !== this) {
+ return this.render(totalTime, suppressEvents, force);
+ }
+
+ child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt));
+
+ if (time !== this._time || !this._ts && !prevPaused) {
+ pauseTween = 0;
+ next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum);
+ break;
+ }
+ }
+
+ child = next;
+ }
+ }
+
+ if (pauseTween && !suppressEvents) {
+ this.pause();
+ pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;
+
+ if (this._ts) {
+ this._start = prevStart;
+
+ _setEnd(this);
+
+ return this.render(totalTime, suppressEvents, force);
+ }
+ }
+
+ this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true);
+ if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {
+ (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
+
+ if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {
+ _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true);
+
+ this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
+ }
+ }
+ }
+
+ return this;
+ };
+
+ _proto2.add = function add(child, position) {
+ var _this2 = this;
+
+ _isNumber(position) || (position = _parsePosition(this, position, child));
+
+ if (!(child instanceof Animation)) {
+ if (_isArray(child)) {
+ child.forEach(function (obj) {
+ return _this2.add(obj, position);
+ });
+ return this;
+ }
+
+ if (_isString(child)) {
+ return this.addLabel(child, position);
+ }
+
+ if (_isFunction(child)) {
+ child = Tween.delayedCall(0, child);
+ } else {
+ return this;
+ }
+ }
+
+ return this !== child ? _addToTimeline(this, child, position) : this;
+ };
+
+ _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {
+ if (nested === void 0) {
+ nested = true;
+ }
+
+ if (tweens === void 0) {
+ tweens = true;
+ }
+
+ if (timelines === void 0) {
+ timelines = true;
+ }
+
+ if (ignoreBeforeTime === void 0) {
+ ignoreBeforeTime = -_bigNum;
+ }
+
+ var a = [],
+ child = this._first;
+
+ while (child) {
+ if (child._start >= ignoreBeforeTime) {
+ if (child instanceof Tween) {
+ tweens && a.push(child);
+ } else {
+ timelines && a.push(child);
+ nested && a.push.apply(a, child.getChildren(true, tweens, timelines));
+ }
+ }
+
+ child = child._next;
+ }
+
+ return a;
+ };
+
+ _proto2.getById = function getById(id) {
+ var animations = this.getChildren(1, 1, 1),
+ i = animations.length;
+
+ while (i--) {
+ if (animations[i].vars.id === id) {
+ return animations[i];
+ }
+ }
+ };
+
+ _proto2.remove = function remove(child) {
+ if (_isString(child)) {
+ return this.removeLabel(child);
+ }
+
+ if (_isFunction(child)) {
+ return this.killTweensOf(child);
+ }
+
+ _removeLinkedListItem(this, child);
+
+ if (child === this._recent) {
+ this._recent = this._last;
+ }
+
+ return _uncache(this);
+ };
+
+ _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {
+ if (!arguments.length) {
+ return this._tTime;
+ }
+
+ this._forcing = 1;
+
+ if (!this._dp && this._ts) {
+ this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));
+ }
+
+ _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);
+
+ this._forcing = 0;
+ return this;
+ };
+
+ _proto2.addLabel = function addLabel(label, position) {
+ this.labels[label] = _parsePosition(this, position);
+ return this;
+ };
+
+ _proto2.removeLabel = function removeLabel(label) {
+ delete this.labels[label];
+ return this;
+ };
+
+ _proto2.addPause = function addPause(position, callback, params) {
+ var t = Tween.delayedCall(0, callback || _emptyFunc, params);
+ t.data = "isPause";
+ this._hasPause = 1;
+ return _addToTimeline(this, t, _parsePosition(this, position));
+ };
+
+ _proto2.removePause = function removePause(position) {
+ var child = this._first;
+ position = _parsePosition(this, position);
+
+ while (child) {
+ if (child._start === position && child.data === "isPause") {
+ _removeFromParent(child);
+ }
+
+ child = child._next;
+ }
+ };
+
+ _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {
+ var tweens = this.getTweensOf(targets, onlyActive),
+ i = tweens.length;
+
+ while (i--) {
+ _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);
+ }
+
+ return this;
+ };
+
+ _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {
+ var a = [],
+ parsedTargets = toArray(targets),
+ child = this._first,
+ isGlobalTime = _isNumber(onlyActive),
+ children;
+
+ while (child) {
+ if (child instanceof Tween) {
+ if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {
+ a.push(child);
+ }
+ } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {
+ a.push.apply(a, children);
+ }
+
+ child = child._next;
+ }
+
+ return a;
+ };
+
+ _proto2.tweenTo = function tweenTo(position, vars) {
+ vars = vars || {};
+
+ var tl = this,
+ endTime = _parsePosition(tl, position),
+ _vars = vars,
+ startAt = _vars.startAt,
+ _onStart = _vars.onStart,
+ onStartParams = _vars.onStartParams,
+ immediateRender = _vars.immediateRender,
+ initted,
+ tween = Tween.to(tl, _setDefaults({
+ ease: vars.ease || "none",
+ lazy: false,
+ immediateRender: false,
+ time: endTime,
+ overwrite: "auto",
+ duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,
+ onStart: function onStart() {
+ tl.pause();
+
+ if (!initted) {
+ var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale());
+ tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);
+ initted = 1;
+ }
+
+ _onStart && _onStart.apply(tween, onStartParams || []);
+ }
+ }, vars));
+
+ return immediateRender ? tween.render(0) : tween;
+ };
+
+ _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {
+ return this.tweenTo(toPosition, _setDefaults({
+ startAt: {
+ time: _parsePosition(this, fromPosition)
+ }
+ }, vars));
+ };
+
+ _proto2.recent = function recent() {
+ return this._recent;
+ };
+
+ _proto2.nextLabel = function nextLabel(afterTime) {
+ if (afterTime === void 0) {
+ afterTime = this._time;
+ }
+
+ return _getLabelInDirection(this, _parsePosition(this, afterTime));
+ };
+
+ _proto2.previousLabel = function previousLabel(beforeTime) {
+ if (beforeTime === void 0) {
+ beforeTime = this._time;
+ }
+
+ return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);
+ };
+
+ _proto2.currentLabel = function currentLabel(value) {
+ return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);
+ };
+
+ _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {
+ if (ignoreBeforeTime === void 0) {
+ ignoreBeforeTime = 0;
+ }
+
+ var child = this._first,
+ labels = this.labels,
+ p;
+
+ while (child) {
+ if (child._start >= ignoreBeforeTime) {
+ child._start += amount;
+ child._end += amount;
+ }
+
+ child = child._next;
+ }
+
+ if (adjustLabels) {
+ for (p in labels) {
+ if (labels[p] >= ignoreBeforeTime) {
+ labels[p] += amount;
+ }
+ }
+ }
+
+ return _uncache(this);
+ };
+
+ _proto2.invalidate = function invalidate(soft) {
+ var child = this._first;
+ this._lock = 0;
+
+ while (child) {
+ child.invalidate(soft);
+ child = child._next;
+ }
+
+ return _Animation.prototype.invalidate.call(this, soft);
+ };
+
+ _proto2.clear = function clear(includeLabels) {
+ if (includeLabels === void 0) {
+ includeLabels = true;
+ }
+
+ var child = this._first,
+ next;
+
+ while (child) {
+ next = child._next;
+ this.remove(child);
+ child = next;
+ }
+
+ this._dp && (this._time = this._tTime = this._pTime = 0);
+ includeLabels && (this.labels = {});
+ return _uncache(this);
+ };
+
+ _proto2.totalDuration = function totalDuration(value) {
+ var max = 0,
+ self = this,
+ child = self._last,
+ prevStart = _bigNum,
+ prev,
+ start,
+ parent;
+
+ if (arguments.length) {
+ return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));
+ }
+
+ if (self._dirty) {
+ parent = self.parent;
+
+ while (child) {
+ prev = child._prev;
+ child._dirty && child.totalDuration();
+ start = child._start;
+
+ if (start > prevStart && self._sort && child._ts && !self._lock) {
+ self._lock = 1;
+ _addToTimeline(self, child, start - child._delay, 1)._lock = 0;
+ } else {
+ prevStart = start;
+ }
+
+ if (start < 0 && child._ts) {
+ max -= start;
+
+ if (!parent && !self._dp || parent && parent.smoothChildTiming) {
+ self._start += start / self._ts;
+ self._time -= start;
+ self._tTime -= start;
+ }
+
+ self.shiftChildren(-start, false, -1e999);
+ prevStart = 0;
+ }
+
+ child._end > max && child._ts && (max = child._end);
+ child = prev;
+ }
+
+ _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);
+
+ self._dirty = 0;
+ }
+
+ return self._tDur;
+ };
+
+ Timeline.updateRoot = function updateRoot(time) {
+ if (_globalTimeline._ts) {
+ _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));
+
+ _lastRenderedFrame = _ticker.frame;
+ }
+
+ if (_ticker.frame >= _nextGCFrame) {
+ _nextGCFrame += _config.autoSleep || 120;
+ var child = _globalTimeline._first;
+ if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {
+ while (child && !child._ts) {
+ child = child._next;
+ }
+
+ child || _ticker.sleep();
+ }
+ }
+ };
+
+ return Timeline;
+ }(Animation);
+
+ _setDefaults(Timeline.prototype, {
+ _lock: 0,
+ _hasPause: 0,
+ _forcing: 0
+ });
+
+ var _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {
+ var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),
+ index = 0,
+ matchIndex = 0,
+ result,
+ startNums,
+ color,
+ endNum,
+ chunk,
+ startNum,
+ hasRandom,
+ a;
+ pt.b = start;
+ pt.e = end;
+ start += "";
+ end += "";
+
+ if (hasRandom = ~end.indexOf("random(")) {
+ end = _replaceRandom(end);
+ }
+
+ if (stringFilter) {
+ a = [start, end];
+ stringFilter(a, target, prop);
+ start = a[0];
+ end = a[1];
+ }
+
+ startNums = start.match(_complexStringNumExp) || [];
+
+ while (result = _complexStringNumExp.exec(end)) {
+ endNum = result[0];
+ chunk = end.substring(index, result.index);
+
+ if (color) {
+ color = (color + 1) % 5;
+ } else if (chunk.substr(-5) === "rgba(") {
+ color = 1;
+ }
+
+ if (endNum !== startNums[matchIndex++]) {
+ startNum = parseFloat(startNums[matchIndex - 1]) || 0;
+ pt._pt = {
+ _next: pt._pt,
+ p: chunk || matchIndex === 1 ? chunk : ",",
+ s: startNum,
+ c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,
+ m: color && color < 4 ? Math.round : 0
+ };
+ index = _complexStringNumExp.lastIndex;
+ }
+ }
+
+ pt.c = index < end.length ? end.substring(index, end.length) : "";
+ pt.fp = funcParam;
+
+ if (_relExp.test(end) || hasRandom) {
+ pt.e = 0;
+ }
+
+ this._pt = pt;
+ return pt;
+ },
+ _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {
+ _isFunction(end) && (end = end(index || 0, target, targets));
+ var currentValue = target[prop],
+ parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](),
+ setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,
+ pt;
+
+ if (_isString(end)) {
+ if (~end.indexOf("random(")) {
+ end = _replaceRandom(end);
+ }
+
+ if (end.charAt(1) === "=") {
+ pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);
+
+ if (pt || pt === 0) {
+ end = pt;
+ }
+ }
+ }
+
+ if (!optional || parsedStart !== end || _forceAllPropTweens) {
+ if (!isNaN(parsedStart * end) && end !== "") {
+ pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter);
+ funcParam && (pt.fp = funcParam);
+ modifier && pt.modifier(modifier, this, target);
+ return this._pt = pt;
+ }
+
+ !currentValue && !(prop in target) && _missingPlugin(prop, end);
+ return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);
+ }
+ },
+ _processVars = function _processVars(vars, index, target, targets, tween) {
+ _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));
+
+ if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {
+ return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;
+ }
+
+ var copy = {},
+ p;
+
+ for (p in vars) {
+ copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);
+ }
+
+ return copy;
+ },
+ _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {
+ var plugin, pt, ptLookup, i;
+
+ if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {
+ tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);
+
+ if (tween !== _quickTween) {
+ ptLookup = tween._ptLookup[tween._targets.indexOf(target)];
+ i = plugin._props.length;
+
+ while (i--) {
+ ptLookup[plugin._props[i]] = pt;
+ }
+ }
+ }
+
+ return plugin;
+ },
+ _overwritingTween,
+ _forceAllPropTweens,
+ _initTween = function _initTween(tween, time, tTime) {
+ var vars = tween.vars,
+ ease = vars.ease,
+ startAt = vars.startAt,
+ immediateRender = vars.immediateRender,
+ lazy = vars.lazy,
+ onUpdate = vars.onUpdate,
+ runBackwards = vars.runBackwards,
+ yoyoEase = vars.yoyoEase,
+ keyframes = vars.keyframes,
+ autoRevert = vars.autoRevert,
+ dur = tween._dur,
+ prevStartAt = tween._startAt,
+ targets = tween._targets,
+ parent = tween.parent,
+ fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets,
+ autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites,
+ tl = tween.timeline,
+ cleanVars,
+ i,
+ p,
+ pt,
+ target,
+ hasPriority,
+ gsData,
+ harness,
+ plugin,
+ ptLookup,
+ index,
+ harnessVars,
+ overwritten;
+ tl && (!keyframes || !ease) && (ease = "none");
+ tween._ease = _parseEase(ease, _defaults.ease);
+ tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;
+
+ if (yoyoEase && tween._yoyo && !tween._repeat) {
+ yoyoEase = tween._yEase;
+ tween._yEase = tween._ease;
+ tween._ease = yoyoEase;
+ }
+
+ tween._from = !tl && !!vars.runBackwards;
+
+ if (!tl || keyframes && !vars.stagger) {
+ harness = targets[0] ? _getCache(targets[0]).harness : 0;
+ harnessVars = harness && vars[harness.prop];
+ cleanVars = _copyExcluding(vars, _reservedProps);
+
+ if (prevStartAt) {
+ prevStartAt._zTime < 0 && prevStartAt.progress(1);
+ time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig);
+ prevStartAt._lazy = 0;
+ }
+
+ if (startAt) {
+ _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({
+ data: "isStart",
+ overwrite: false,
+ parent: parent,
+ immediateRender: true,
+ lazy: !prevStartAt && _isNotFalse(lazy),
+ startAt: null,
+ delay: 0,
+ onUpdate: onUpdate && function () {
+ return _callback(tween, "onUpdate");
+ },
+ stagger: 0
+ }, startAt)));
+
+ tween._startAt._dp = 0;
+ tween._startAt._sat = tween;
+ time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill);
+
+ if (immediateRender) {
+ if (dur && time <= 0 && tTime <= 0) {
+ time && (tween._zTime = time);
+ return;
+ }
+ }
+ } else if (runBackwards && dur) {
+ if (!prevStartAt) {
+ time && (immediateRender = false);
+ p = _setDefaults({
+ overwrite: false,
+ data: "isFromStart",
+ lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),
+ immediateRender: immediateRender,
+ stagger: 0,
+ parent: parent
+ }, cleanVars);
+ harnessVars && (p[harness.prop] = harnessVars);
+
+ _removeFromParent(tween._startAt = Tween.set(targets, p));
+
+ tween._startAt._dp = 0;
+ tween._startAt._sat = tween;
+ time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));
+ tween._zTime = time;
+
+ if (!immediateRender) {
+ _initTween(tween._startAt, _tinyNum, _tinyNum);
+ } else if (!time) {
+ return;
+ }
+ }
+ }
+
+ tween._pt = tween._ptCache = 0;
+ lazy = dur && _isNotFalse(lazy) || lazy && !dur;
+
+ for (i = 0; i < targets.length; i++) {
+ target = targets[i];
+ gsData = target._gsap || _harness(targets)[i]._gsap;
+ tween._ptLookup[i] = ptLookup = {};
+ _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender();
+ index = fullTargets === targets ? i : fullTargets.indexOf(target);
+
+ if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {
+ tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);
+
+ plugin._props.forEach(function (name) {
+ ptLookup[name] = pt;
+ });
+
+ plugin.priority && (hasPriority = 1);
+ }
+
+ if (!harness || harnessVars) {
+ for (p in cleanVars) {
+ if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {
+ plugin.priority && (hasPriority = 1);
+ } else {
+ ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter);
+ }
+ }
+ }
+
+ tween._op && tween._op[i] && tween.kill(target, tween._op[i]);
+
+ if (autoOverwrite && tween._pt) {
+ _overwritingTween = tween;
+
+ _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time));
+
+ overwritten = !tween.parent;
+ _overwritingTween = 0;
+ }
+
+ tween._pt && lazy && (_lazyLookup[gsData.id] = 1);
+ }
+
+ hasPriority && _sortPropTweensByPriority(tween);
+ tween._onInit && tween._onInit(tween);
+ }
+
+ tween._onUpdate = onUpdate;
+ tween._initted = (!tween._op || tween._pt) && !overwritten;
+ keyframes && time <= 0 && tl.render(_bigNum, true, true);
+ },
+ _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {
+ var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],
+ pt,
+ rootPT,
+ lookup,
+ i;
+
+ if (!ptCache) {
+ ptCache = tween._ptCache[property] = [];
+ lookup = tween._ptLookup;
+ i = tween._targets.length;
+
+ while (i--) {
+ pt = lookup[i][property];
+
+ if (pt && pt.d && pt.d._pt) {
+ pt = pt.d._pt;
+
+ while (pt && pt.p !== property && pt.fp !== property) {
+ pt = pt._next;
+ }
+ }
+
+ if (!pt) {
+ _forceAllPropTweens = 1;
+ tween.vars[property] = "+=0";
+
+ _initTween(tween, time);
+
+ _forceAllPropTweens = 0;
+ return skipRecursion ? _warn(property + " not eligible for reset") : 1;
+ }
+
+ ptCache.push(pt);
+ }
+ }
+
+ i = ptCache.length;
+
+ while (i--) {
+ rootPT = ptCache[i];
+ pt = rootPT._pt || rootPT;
+ pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;
+ pt.c = value - pt.s;
+ rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e));
+ rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b));
+ }
+ },
+ _addAliasesToVars = function _addAliasesToVars(targets, vars) {
+ var harness = targets[0] ? _getCache(targets[0]).harness : 0,
+ propertyAliases = harness && harness.aliases,
+ copy,
+ p,
+ i,
+ aliases;
+
+ if (!propertyAliases) {
+ return vars;
+ }
+
+ copy = _merge({}, vars);
+
+ for (p in propertyAliases) {
+ if (p in copy) {
+ aliases = propertyAliases[p].split(",");
+ i = aliases.length;
+
+ while (i--) {
+ copy[aliases[i]] = copy[p];
+ }
+ }
+ }
+
+ return copy;
+ },
+ _parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {
+ var ease = obj.ease || easeEach || "power1.inOut",
+ p,
+ a;
+
+ if (_isArray(obj)) {
+ a = allProps[prop] || (allProps[prop] = []);
+ obj.forEach(function (value, i) {
+ return a.push({
+ t: i / (obj.length - 1) * 100,
+ v: value,
+ e: ease
+ });
+ });
+ } else {
+ for (p in obj) {
+ a = allProps[p] || (allProps[p] = []);
+ p === "ease" || a.push({
+ t: parseFloat(prop),
+ v: obj[p],
+ e: ease
+ });
+ }
+ }
+ },
+ _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {
+ return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value;
+ },
+ _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert",
+ _staggerPropsToSkip = {};
+
+ _forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function (name) {
+ return _staggerPropsToSkip[name] = 1;
+ });
+
+ var Tween = function (_Animation2) {
+ _inheritsLoose(Tween, _Animation2);
+
+ function Tween(targets, vars, position, skipInherit) {
+ var _this3;
+
+ if (typeof vars === "number") {
+ position.duration = vars;
+ vars = position;
+ position = null;
+ }
+
+ _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;
+ var _this3$vars = _this3.vars,
+ duration = _this3$vars.duration,
+ delay = _this3$vars.delay,
+ immediateRender = _this3$vars.immediateRender,
+ stagger = _this3$vars.stagger,
+ overwrite = _this3$vars.overwrite,
+ keyframes = _this3$vars.keyframes,
+ defaults = _this3$vars.defaults,
+ scrollTrigger = _this3$vars.scrollTrigger,
+ yoyoEase = _this3$vars.yoyoEase,
+ parent = vars.parent || _globalTimeline,
+ parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets),
+ tl,
+ i,
+ copy,
+ l,
+ p,
+ curTarget,
+ staggerFunc,
+ staggerVarsToMerge;
+ _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://gsap.com", !_config.nullTargetWarn) || [];
+ _this3._ptLookup = [];
+ _this3._overwrite = overwrite;
+
+ if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
+ vars = _this3.vars;
+ tl = _this3.timeline = new Timeline({
+ data: "nested",
+ defaults: defaults || {},
+ targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets
+ });
+ tl.kill();
+ tl.parent = tl._dp = _assertThisInitialized(_this3);
+ tl._start = 0;
+
+ if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
+ l = parsedTargets.length;
+ staggerFunc = stagger && distribute(stagger);
+
+ if (_isObject(stagger)) {
+ for (p in stagger) {
+ if (~_staggerTweenProps.indexOf(p)) {
+ staggerVarsToMerge || (staggerVarsToMerge = {});
+ staggerVarsToMerge[p] = stagger[p];
+ }
+ }
+ }
+
+ for (i = 0; i < l; i++) {
+ copy = _copyExcluding(vars, _staggerPropsToSkip);
+ copy.stagger = 0;
+ yoyoEase && (copy.yoyoEase = yoyoEase);
+ staggerVarsToMerge && _merge(copy, staggerVarsToMerge);
+ curTarget = parsedTargets[i];
+ copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);
+ copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;
+
+ if (!stagger && l === 1 && copy.delay) {
+ _this3._delay = delay = copy.delay;
+ _this3._start += delay;
+ copy.delay = 0;
+ }
+
+ tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);
+ tl._ease = _easeMap.none;
+ }
+
+ tl.duration() ? duration = delay = 0 : _this3.timeline = 0;
+ } else if (keyframes) {
+ _inheritDefaults(_setDefaults(tl.vars.defaults, {
+ ease: "none"
+ }));
+
+ tl._ease = _parseEase(keyframes.ease || vars.ease || "none");
+ var time = 0,
+ a,
+ kf,
+ v;
+
+ if (_isArray(keyframes)) {
+ keyframes.forEach(function (frame) {
+ return tl.to(parsedTargets, frame, ">");
+ });
+ tl.duration();
+ } else {
+ copy = {};
+
+ for (p in keyframes) {
+ p === "ease" || p === "easeEach" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);
+ }
+
+ for (p in copy) {
+ a = copy[p].sort(function (a, b) {
+ return a.t - b.t;
+ });
+ time = 0;
+
+ for (i = 0; i < a.length; i++) {
+ kf = a[i];
+ v = {
+ ease: kf.e,
+ duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration
+ };
+ v[p] = kf.v;
+ tl.to(parsedTargets, v, time);
+ time += v.duration;
+ }
+ }
+
+ tl.duration() < duration && tl.to({}, {
+ duration: duration - tl.duration()
+ });
+ }
+ }
+
+ duration || _this3.duration(duration = tl.duration());
+ } else {
+ _this3.timeline = 0;
+ }
+
+ if (overwrite === true && !_suppressOverwrites) {
+ _overwritingTween = _assertThisInitialized(_this3);
+
+ _globalTimeline.killTweensOf(parsedTargets);
+
+ _overwritingTween = 0;
+ }
+
+ _addToTimeline(parent, _assertThisInitialized(_this3), position);
+
+ vars.reversed && _this3.reverse();
+ vars.paused && _this3.paused(true);
+
+ if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") {
+ _this3._tTime = -_tinyNum;
+
+ _this3.render(Math.max(0, -delay) || 0);
+ }
+
+ scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);
+ return _this3;
+ }
+
+ var _proto3 = Tween.prototype;
+
+ _proto3.render = function render(totalTime, suppressEvents, force) {
+ var prevTime = this._time,
+ tDur = this._tDur,
+ dur = this._dur,
+ isNegative = totalTime < 0,
+ tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,
+ time,
+ pt,
+ iteration,
+ cycleDuration,
+ prevIteration,
+ isYoyo,
+ ratio,
+ timeline,
+ yoyoEase;
+
+ if (!dur) {
+ _renderZeroDurationTween(this, totalTime, suppressEvents, force);
+ } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {
+ time = tTime;
+ timeline = this.timeline;
+
+ if (this._repeat) {
+ cycleDuration = dur + this._rDelay;
+
+ if (this._repeat < -1 && isNegative) {
+ return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
+ }
+
+ time = _roundPrecise(tTime % cycleDuration);
+
+ if (tTime === tDur) {
+ iteration = this._repeat;
+ time = dur;
+ } else {
+ iteration = ~~(tTime / cycleDuration);
+
+ if (iteration && iteration === _roundPrecise(tTime / cycleDuration)) {
+ time = dur;
+ iteration--;
+ }
+
+ time > dur && (time = dur);
+ }
+
+ isYoyo = this._yoyo && iteration & 1;
+
+ if (isYoyo) {
+ yoyoEase = this._yEase;
+ time = dur - time;
+ }
+
+ prevIteration = _animationCycle(this._tTime, cycleDuration);
+
+ if (time === prevTime && !force && this._initted && iteration === prevIteration) {
+ this._tTime = tTime;
+ return this;
+ }
+
+ if (iteration !== prevIteration) {
+ timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo);
+
+ if (this.vars.repeatRefresh && !isYoyo && !this._lock && this._time !== cycleDuration && this._initted) {
+ this._lock = force = 1;
+ this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;
+ }
+ }
+ }
+
+ if (!this._initted) {
+ if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {
+ this._tTime = 0;
+ return this;
+ }
+
+ if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {
+ return this;
+ }
+
+ if (dur !== this._dur) {
+ return this.render(totalTime, suppressEvents, force);
+ }
+ }
+
+ this._tTime = tTime;
+ this._time = time;
+
+ if (!this._act && this._ts) {
+ this._act = 1;
+ this._lazy = 0;
+ }
+
+ this.ratio = ratio = (yoyoEase || this._ease)(time / dur);
+
+ if (this._from) {
+ this.ratio = ratio = 1 - ratio;
+ }
+
+ if (time && !prevTime && !suppressEvents && !iteration) {
+ _callback(this, "onStart");
+
+ if (this._tTime !== tTime) {
+ return this;
+ }
+ }
+
+ pt = this._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+
+ timeline && timeline.render(totalTime < 0 ? totalTime : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);
+
+ if (this._onUpdate && !suppressEvents) {
+ isNegative && _rewindStartAt(this, totalTime, suppressEvents, force);
+
+ _callback(this, "onUpdate");
+ }
+
+ this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat");
+
+ if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {
+ isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);
+ (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
+
+ if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {
+ _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true);
+
+ this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
+ }
+ }
+ }
+
+ return this;
+ };
+
+ _proto3.targets = function targets() {
+ return this._targets;
+ };
+
+ _proto3.invalidate = function invalidate(soft) {
+ (!soft || !this.vars.runBackwards) && (this._startAt = 0);
+ this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;
+ this._ptLookup = [];
+ this.timeline && this.timeline.invalidate(soft);
+ return _Animation2.prototype.invalidate.call(this, soft);
+ };
+
+ _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {
+ _tickerActive || _ticker.wake();
+ this._ts || this.play();
+ var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),
+ ratio;
+ this._initted || _initTween(this, time);
+ ratio = this._ease(time / this._dur);
+
+ if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {
+ return this.resetTo(property, value, start, startIsRelative, 1);
+ }
+
+ _alignPlayhead(this, 0);
+
+ this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0);
+ return this.render(0);
+ };
+
+ _proto3.kill = function kill(targets, vars) {
+ if (vars === void 0) {
+ vars = "all";
+ }
+
+ if (!targets && (!vars || vars === "all")) {
+ this._lazy = this._pt = 0;
+ return this.parent ? _interrupt(this) : this;
+ }
+
+ if (this.timeline) {
+ var tDur = this.timeline.totalDuration();
+ this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this);
+ this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1);
+ return this;
+ }
+
+ var parsedTargets = this._targets,
+ killingTargets = targets ? toArray(targets) : parsedTargets,
+ propTweenLookup = this._ptLookup,
+ firstPT = this._pt,
+ overwrittenProps,
+ curLookup,
+ curOverwriteProps,
+ props,
+ p,
+ pt,
+ i;
+
+ if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) {
+ vars === "all" && (this._pt = 0);
+ return _interrupt(this);
+ }
+
+ overwrittenProps = this._op = this._op || [];
+
+ if (vars !== "all") {
+ if (_isString(vars)) {
+ p = {};
+
+ _forEachName(vars, function (name) {
+ return p[name] = 1;
+ });
+
+ vars = p;
+ }
+
+ vars = _addAliasesToVars(parsedTargets, vars);
+ }
+
+ i = parsedTargets.length;
+
+ while (i--) {
+ if (~killingTargets.indexOf(parsedTargets[i])) {
+ curLookup = propTweenLookup[i];
+
+ if (vars === "all") {
+ overwrittenProps[i] = vars;
+ props = curLookup;
+ curOverwriteProps = {};
+ } else {
+ curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};
+ props = vars;
+ }
+
+ for (p in props) {
+ pt = curLookup && curLookup[p];
+
+ if (pt) {
+ if (!("kill" in pt.d) || pt.d.kill(p) === true) {
+ _removeLinkedListItem(this, pt, "_pt");
+ }
+
+ delete curLookup[p];
+ }
+
+ if (curOverwriteProps !== "all") {
+ curOverwriteProps[p] = 1;
+ }
+ }
+ }
+ }
+
+ this._initted && !this._pt && firstPT && _interrupt(this);
+ return this;
+ };
+
+ Tween.to = function to(targets, vars) {
+ return new Tween(targets, vars, arguments[2]);
+ };
+
+ Tween.from = function from(targets, vars) {
+ return _createTweenType(1, arguments);
+ };
+
+ Tween.delayedCall = function delayedCall(delay, callback, params, scope) {
+ return new Tween(callback, 0, {
+ immediateRender: false,
+ lazy: false,
+ overwrite: false,
+ delay: delay,
+ onComplete: callback,
+ onReverseComplete: callback,
+ onCompleteParams: params,
+ onReverseCompleteParams: params,
+ callbackScope: scope
+ });
+ };
+
+ Tween.fromTo = function fromTo(targets, fromVars, toVars) {
+ return _createTweenType(2, arguments);
+ };
+
+ Tween.set = function set(targets, vars) {
+ vars.duration = 0;
+ vars.repeatDelay || (vars.repeat = 0);
+ return new Tween(targets, vars);
+ };
+
+ Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {
+ return _globalTimeline.killTweensOf(targets, props, onlyActive);
+ };
+
+ return Tween;
+ }(Animation);
+
+ _setDefaults(Tween.prototype, {
+ _targets: [],
+ _lazy: 0,
+ _startAt: 0,
+ _op: 0,
+ _onInit: 0
+ });
+
+ _forEachName("staggerTo,staggerFrom,staggerFromTo", function (name) {
+ Tween[name] = function () {
+ var tl = new Timeline(),
+ params = _slice.call(arguments, 0);
+
+ params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0);
+ return tl[name].apply(tl, params);
+ };
+ });
+
+ var _setterPlain = function _setterPlain(target, property, value) {
+ return target[property] = value;
+ },
+ _setterFunc = function _setterFunc(target, property, value) {
+ return target[property](value);
+ },
+ _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {
+ return target[property](data.fp, value);
+ },
+ _setterAttribute = function _setterAttribute(target, property, value) {
+ return target.setAttribute(property, value);
+ },
+ _getSetter = function _getSetter(target, property) {
+ return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;
+ },
+ _renderPlain = function _renderPlain(ratio, data) {
+ return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);
+ },
+ _renderBoolean = function _renderBoolean(ratio, data) {
+ return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);
+ },
+ _renderComplexString = function _renderComplexString(ratio, data) {
+ var pt = data._pt,
+ s = "";
+
+ if (!ratio && data.b) {
+ s = data.b;
+ } else if (ratio === 1 && data.e) {
+ s = data.e;
+ } else {
+ while (pt) {
+ s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s;
+ pt = pt._next;
+ }
+
+ s += data.c;
+ }
+
+ data.set(data.t, data.p, s, data);
+ },
+ _renderPropTweens = function _renderPropTweens(ratio, data) {
+ var pt = data._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+ },
+ _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {
+ var pt = this._pt,
+ next;
+
+ while (pt) {
+ next = pt._next;
+ pt.p === property && pt.modifier(modifier, tween, target);
+ pt = next;
+ }
+ },
+ _killPropTweensOf = function _killPropTweensOf(property) {
+ var pt = this._pt,
+ hasNonDependentRemaining,
+ next;
+
+ while (pt) {
+ next = pt._next;
+
+ if (pt.p === property && !pt.op || pt.op === property) {
+ _removeLinkedListItem(this, pt, "_pt");
+ } else if (!pt.dep) {
+ hasNonDependentRemaining = 1;
+ }
+
+ pt = next;
+ }
+
+ return !hasNonDependentRemaining;
+ },
+ _setterWithModifier = function _setterWithModifier(target, property, value, data) {
+ data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);
+ },
+ _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {
+ var pt = parent._pt,
+ next,
+ pt2,
+ first,
+ last;
+
+ while (pt) {
+ next = pt._next;
+ pt2 = first;
+
+ while (pt2 && pt2.pr > pt.pr) {
+ pt2 = pt2._next;
+ }
+
+ if (pt._prev = pt2 ? pt2._prev : last) {
+ pt._prev._next = pt;
+ } else {
+ first = pt;
+ }
+
+ if (pt._next = pt2) {
+ pt2._prev = pt;
+ } else {
+ last = pt;
+ }
+
+ pt = next;
+ }
+
+ parent._pt = first;
+ };
+
+ var PropTween = function () {
+ function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {
+ this.t = target;
+ this.s = start;
+ this.c = change;
+ this.p = prop;
+ this.r = renderer || _renderPlain;
+ this.d = data || this;
+ this.set = setter || _setterPlain;
+ this.pr = priority || 0;
+ this._next = next;
+
+ if (next) {
+ next._prev = this;
+ }
+ }
+
+ var _proto4 = PropTween.prototype;
+
+ _proto4.modifier = function modifier(func, tween, target) {
+ this.mSet = this.mSet || this.set;
+ this.set = _setterWithModifier;
+ this.m = func;
+ this.mt = target;
+ this.tween = tween;
+ };
+
+ return PropTween;
+ }();
+
+ _forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function (name) {
+ return _reservedProps[name] = 1;
+ });
+
+ _globals.TweenMax = _globals.TweenLite = Tween;
+ _globals.TimelineLite = _globals.TimelineMax = Timeline;
+ _globalTimeline = new Timeline({
+ sortChildren: false,
+ defaults: _defaults,
+ autoRemoveChildren: true,
+ id: "root",
+ smoothChildTiming: true
+ });
+ _config.stringFilter = _colorStringFilter;
+
+ var _media = [],
+ _listeners = {},
+ _emptyArray = [],
+ _lastMediaTime = 0,
+ _contextID = 0,
+ _dispatch = function _dispatch(type) {
+ return (_listeners[type] || _emptyArray).map(function (f) {
+ return f();
+ });
+ },
+ _onMediaChange = function _onMediaChange() {
+ var time = Date.now(),
+ matches = [];
+
+ if (time - _lastMediaTime > 2) {
+ _dispatch("matchMediaInit");
+
+ _media.forEach(function (c) {
+ var queries = c.queries,
+ conditions = c.conditions,
+ match,
+ p,
+ anyMatch,
+ toggled;
+
+ for (p in queries) {
+ match = _win.matchMedia(queries[p]).matches;
+ match && (anyMatch = 1);
+
+ if (match !== conditions[p]) {
+ conditions[p] = match;
+ toggled = 1;
+ }
+ }
+
+ if (toggled) {
+ c.revert();
+ anyMatch && matches.push(c);
+ }
+ });
+
+ _dispatch("matchMediaRevert");
+
+ matches.forEach(function (c) {
+ return c.onMatch(c, function (func) {
+ return c.add(null, func);
+ });
+ });
+ _lastMediaTime = time;
+
+ _dispatch("matchMedia");
+ }
+ };
+
+ var Context = function () {
+ function Context(func, scope) {
+ this.selector = scope && selector(scope);
+ this.data = [];
+ this._r = [];
+ this.isReverted = false;
+ this.id = _contextID++;
+ func && this.add(func);
+ }
+
+ var _proto5 = Context.prototype;
+
+ _proto5.add = function add(name, func, scope) {
+ if (_isFunction(name)) {
+ scope = func;
+ func = name;
+ name = _isFunction;
+ }
+
+ var self = this,
+ f = function f() {
+ var prev = _context,
+ prevSelector = self.selector,
+ result;
+ prev && prev !== self && prev.data.push(self);
+ scope && (self.selector = selector(scope));
+ _context = self;
+ result = func.apply(self, arguments);
+ _isFunction(result) && self._r.push(result);
+ _context = prev;
+ self.selector = prevSelector;
+ self.isReverted = false;
+ return result;
+ };
+
+ self.last = f;
+ return name === _isFunction ? f(self, function (func) {
+ return self.add(null, func);
+ }) : name ? self[name] = f : f;
+ };
+
+ _proto5.ignore = function ignore(func) {
+ var prev = _context;
+ _context = null;
+ func(this);
+ _context = prev;
+ };
+
+ _proto5.getTweens = function getTweens() {
+ var a = [];
+ this.data.forEach(function (e) {
+ return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === "nested") && a.push(e);
+ });
+ return a;
+ };
+
+ _proto5.clear = function clear() {
+ this._r.length = this.data.length = 0;
+ };
+
+ _proto5.kill = function kill(revert, matchMedia) {
+ var _this4 = this;
+
+ if (revert) {
+ (function () {
+ var tweens = _this4.getTweens(),
+ i = _this4.data.length,
+ t;
+
+ while (i--) {
+ t = _this4.data[i];
+
+ if (t.data === "isFlip") {
+ t.revert();
+ t.getChildren(true, true, false).forEach(function (tween) {
+ return tweens.splice(tweens.indexOf(tween), 1);
+ });
+ }
+ }
+
+ tweens.map(function (t) {
+ return {
+ g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity,
+ t: t
+ };
+ }).sort(function (a, b) {
+ return b.g - a.g || -Infinity;
+ }).forEach(function (o) {
+ return o.t.revert(revert);
+ });
+ i = _this4.data.length;
+
+ while (i--) {
+ t = _this4.data[i];
+
+ if (t instanceof Timeline) {
+ if (t.data !== "nested") {
+ t.scrollTrigger && t.scrollTrigger.revert();
+ t.kill();
+ }
+ } else {
+ !(t instanceof Tween) && t.revert && t.revert(revert);
+ }
+ }
+
+ _this4._r.forEach(function (f) {
+ return f(revert, _this4);
+ });
+
+ _this4.isReverted = true;
+ })();
+ } else {
+ this.data.forEach(function (e) {
+ return e.kill && e.kill();
+ });
+ }
+
+ this.clear();
+
+ if (matchMedia) {
+ var i = _media.length;
+
+ while (i--) {
+ _media[i].id === this.id && _media.splice(i, 1);
+ }
+ }
+ };
+
+ _proto5.revert = function revert(config) {
+ this.kill(config || {});
+ };
+
+ return Context;
+ }();
+
+ var MatchMedia = function () {
+ function MatchMedia(scope) {
+ this.contexts = [];
+ this.scope = scope;
+ _context && _context.data.push(this);
+ }
+
+ var _proto6 = MatchMedia.prototype;
+
+ _proto6.add = function add(conditions, func, scope) {
+ _isObject(conditions) || (conditions = {
+ matches: conditions
+ });
+ var context = new Context(0, scope || this.scope),
+ cond = context.conditions = {},
+ mq,
+ p,
+ active;
+ _context && !context.selector && (context.selector = _context.selector);
+ this.contexts.push(context);
+ func = context.add("onMatch", func);
+ context.queries = conditions;
+
+ for (p in conditions) {
+ if (p === "all") {
+ active = 1;
+ } else {
+ mq = _win.matchMedia(conditions[p]);
+
+ if (mq) {
+ _media.indexOf(context) < 0 && _media.push(context);
+ (cond[p] = mq.matches) && (active = 1);
+ mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange);
+ }
+ }
+ }
+
+ active && func(context, function (f) {
+ return context.add(null, f);
+ });
+ return this;
+ };
+
+ _proto6.revert = function revert(config) {
+ this.kill(config || {});
+ };
+
+ _proto6.kill = function kill(revert) {
+ this.contexts.forEach(function (c) {
+ return c.kill(revert, true);
+ });
+ };
+
+ return MatchMedia;
+ }();
+
+ var _gsap = {
+ registerPlugin: function registerPlugin() {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ args.forEach(function (config) {
+ return _createPlugin(config);
+ });
+ },
+ timeline: function timeline(vars) {
+ return new Timeline(vars);
+ },
+ getTweensOf: function getTweensOf(targets, onlyActive) {
+ return _globalTimeline.getTweensOf(targets, onlyActive);
+ },
+ getProperty: function getProperty(target, property, unit, uncache) {
+ _isString(target) && (target = toArray(target)[0]);
+
+ var getter = _getCache(target || {}).get,
+ format = unit ? _passThrough : _numericIfPossible;
+
+ unit === "native" && (unit = "");
+ return !target ? target : !property ? function (property, unit, uncache) {
+ return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));
+ } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));
+ },
+ quickSetter: function quickSetter(target, property, unit) {
+ target = toArray(target);
+
+ if (target.length > 1) {
+ var setters = target.map(function (t) {
+ return gsap.quickSetter(t, property, unit);
+ }),
+ l = setters.length;
+ return function (value) {
+ var i = l;
+
+ while (i--) {
+ setters[i](value);
+ }
+ };
+ }
+
+ target = target[0] || {};
+
+ var Plugin = _plugins[property],
+ cache = _getCache(target),
+ p = cache.harness && (cache.harness.aliases || {})[property] || property,
+ setter = Plugin ? function (value) {
+ var p = new Plugin();
+ _quickTween._pt = 0;
+ p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);
+ p.render(1, p);
+ _quickTween._pt && _renderPropTweens(1, _quickTween);
+ } : cache.set(target, p);
+
+ return Plugin ? setter : function (value) {
+ return setter(target, p, unit ? value + unit : value, cache, 1);
+ };
+ },
+ quickTo: function quickTo(target, property, vars) {
+ var _merge2;
+
+ var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = "+=0.1", _merge2.paused = true, _merge2), vars || {})),
+ func = function func(value, start, startIsRelative) {
+ return tween.resetTo(property, value, start, startIsRelative);
+ };
+
+ func.tween = tween;
+ return func;
+ },
+ isTweening: function isTweening(targets) {
+ return _globalTimeline.getTweensOf(targets, true).length > 0;
+ },
+ defaults: function defaults(value) {
+ value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));
+ return _mergeDeep(_defaults, value || {});
+ },
+ config: function config(value) {
+ return _mergeDeep(_config, value || {});
+ },
+ registerEffect: function registerEffect(_ref3) {
+ var name = _ref3.name,
+ effect = _ref3.effect,
+ plugins = _ref3.plugins,
+ defaults = _ref3.defaults,
+ extendTimeline = _ref3.extendTimeline;
+ (plugins || "").split(",").forEach(function (pluginName) {
+ return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin.");
+ });
+
+ _effects[name] = function (targets, vars, tl) {
+ return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);
+ };
+
+ if (extendTimeline) {
+ Timeline.prototype[name] = function (targets, vars, position) {
+ return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);
+ };
+ }
+ },
+ registerEase: function registerEase(name, ease) {
+ _easeMap[name] = _parseEase(ease);
+ },
+ parseEase: function parseEase(ease, defaultEase) {
+ return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;
+ },
+ getById: function getById(id) {
+ return _globalTimeline.getById(id);
+ },
+ exportRoot: function exportRoot(vars, includeDelayedCalls) {
+ if (vars === void 0) {
+ vars = {};
+ }
+
+ var tl = new Timeline(vars),
+ child,
+ next;
+ tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);
+
+ _globalTimeline.remove(tl);
+
+ tl._dp = 0;
+ tl._time = tl._tTime = _globalTimeline._time;
+ child = _globalTimeline._first;
+
+ while (child) {
+ next = child._next;
+
+ if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {
+ _addToTimeline(tl, child, child._start - child._delay);
+ }
+
+ child = next;
+ }
+
+ _addToTimeline(_globalTimeline, tl, 0);
+
+ return tl;
+ },
+ context: function context(func, scope) {
+ return func ? new Context(func, scope) : _context;
+ },
+ matchMedia: function matchMedia(scope) {
+ return new MatchMedia(scope);
+ },
+ matchMediaRefresh: function matchMediaRefresh() {
+ return _media.forEach(function (c) {
+ var cond = c.conditions,
+ found,
+ p;
+
+ for (p in cond) {
+ if (cond[p]) {
+ cond[p] = false;
+ found = 1;
+ }
+ }
+
+ found && c.revert();
+ }) || _onMediaChange();
+ },
+ addEventListener: function addEventListener(type, callback) {
+ var a = _listeners[type] || (_listeners[type] = []);
+ ~a.indexOf(callback) || a.push(callback);
+ },
+ removeEventListener: function removeEventListener(type, callback) {
+ var a = _listeners[type],
+ i = a && a.indexOf(callback);
+ i >= 0 && a.splice(i, 1);
+ },
+ utils: {
+ wrap: wrap,
+ wrapYoyo: wrapYoyo,
+ distribute: distribute,
+ random: random,
+ snap: snap,
+ normalize: normalize,
+ getUnit: getUnit,
+ clamp: clamp,
+ splitColor: splitColor,
+ toArray: toArray,
+ selector: selector,
+ mapRange: mapRange,
+ pipe: pipe,
+ unitize: unitize,
+ interpolate: interpolate,
+ shuffle: shuffle
+ },
+ install: _install,
+ effects: _effects,
+ ticker: _ticker,
+ updateRoot: Timeline.updateRoot,
+ plugins: _plugins,
+ globalTimeline: _globalTimeline,
+ core: {
+ PropTween: PropTween,
+ globals: _addGlobal,
+ Tween: Tween,
+ Timeline: Timeline,
+ Animation: Animation,
+ getCache: _getCache,
+ _removeLinkedListItem: _removeLinkedListItem,
+ reverting: function reverting() {
+ return _reverting;
+ },
+ context: function context(toAdd) {
+ if (toAdd && _context) {
+ _context.data.push(toAdd);
+
+ toAdd._ctx = _context;
+ }
+
+ return _context;
+ },
+ suppressOverwrites: function suppressOverwrites(value) {
+ return _suppressOverwrites = value;
+ }
+ }
+ };
+
+ _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function (name) {
+ return _gsap[name] = Tween[name];
+ });
+
+ _ticker.add(Timeline.updateRoot);
+
+ _quickTween = _gsap.to({}, {
+ duration: 0
+ });
+
+ var _getPluginPropTween = function _getPluginPropTween(plugin, prop) {
+ var pt = plugin._pt;
+
+ while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {
+ pt = pt._next;
+ }
+
+ return pt;
+ },
+ _addModifiers = function _addModifiers(tween, modifiers) {
+ var targets = tween._targets,
+ p,
+ i,
+ pt;
+
+ for (p in modifiers) {
+ i = targets.length;
+
+ while (i--) {
+ pt = tween._ptLookup[i][p];
+
+ if (pt && (pt = pt.d)) {
+ if (pt._pt) {
+ pt = _getPluginPropTween(pt, p);
+ }
+
+ pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);
+ }
+ }
+ }
+ },
+ _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {
+ return {
+ name: name,
+ rawVars: 1,
+ init: function init(target, vars, tween) {
+ tween._onInit = function (tween) {
+ var temp, p;
+
+ if (_isString(vars)) {
+ temp = {};
+
+ _forEachName(vars, function (name) {
+ return temp[name] = 1;
+ });
+
+ vars = temp;
+ }
+
+ if (modifier) {
+ temp = {};
+
+ for (p in vars) {
+ temp[p] = modifier(vars[p]);
+ }
+
+ vars = temp;
+ }
+
+ _addModifiers(tween, vars);
+ };
+ }
+ };
+ };
+
+ var gsap = _gsap.registerPlugin({
+ name: "attr",
+ init: function init(target, vars, tween, index, targets) {
+ var p, pt, v;
+ this.tween = tween;
+
+ for (p in vars) {
+ v = target.getAttribute(p) || "";
+ pt = this.add(target, "setAttribute", (v || 0) + "", vars[p], index, targets, 0, 0, p);
+ pt.op = p;
+ pt.b = v;
+
+ this._props.push(p);
+ }
+ },
+ render: function render(ratio, data) {
+ var pt = data._pt;
+
+ while (pt) {
+ _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+ }
+ }, {
+ name: "endArray",
+ init: function init(target, value) {
+ var i = value.length;
+
+ while (i--) {
+ this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);
+ }
+ }
+ }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap;
+ Tween.version = Timeline.version = gsap.version = "3.12.5";
+ _coreReady = 1;
+ _windowExists() && _wake();
+ var Power0 = _easeMap.Power0,
+ Power1 = _easeMap.Power1,
+ Power2 = _easeMap.Power2,
+ Power3 = _easeMap.Power3,
+ Power4 = _easeMap.Power4,
+ Linear = _easeMap.Linear,
+ Quad = _easeMap.Quad,
+ Cubic = _easeMap.Cubic,
+ Quart = _easeMap.Quart,
+ Quint = _easeMap.Quint,
+ Strong = _easeMap.Strong,
+ Elastic = _easeMap.Elastic,
+ Back = _easeMap.Back,
+ SteppedEase = _easeMap.SteppedEase,
+ Bounce = _easeMap.Bounce,
+ Sine = _easeMap.Sine,
+ Expo = _easeMap.Expo,
+ Circ = _easeMap.Circ;
+
+ var _win$1,
+ _doc$1,
+ _docElement,
+ _pluginInitted,
+ _tempDiv,
+ _tempDivStyler,
+ _recentSetterPlugin,
+ _reverting$1,
+ _windowExists$1 = function _windowExists() {
+ return typeof window !== "undefined";
+ },
+ _transformProps = {},
+ _RAD2DEG = 180 / Math.PI,
+ _DEG2RAD = Math.PI / 180,
+ _atan2 = Math.atan2,
+ _bigNum$1 = 1e8,
+ _capsExp = /([A-Z])/g,
+ _horizontalExp = /(left|right|width|margin|padding|x)/i,
+ _complexExp = /[\s,\(]\S/,
+ _propertyAliases = {
+ autoAlpha: "opacity,visibility",
+ scale: "scaleX,scaleY",
+ alpha: "opacity"
+ },
+ _renderCSSProp = function _renderCSSProp(ratio, data) {
+ return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);
+ },
+ _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {
+ return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);
+ },
+ _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {
+ return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);
+ },
+ _renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {
+ var value = data.s + data.c * ratio;
+ data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);
+ },
+ _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {
+ return data.set(data.t, data.p, ratio ? data.e : data.b, data);
+ },
+ _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {
+ return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);
+ },
+ _setterCSSStyle = function _setterCSSStyle(target, property, value) {
+ return target.style[property] = value;
+ },
+ _setterCSSProp = function _setterCSSProp(target, property, value) {
+ return target.style.setProperty(property, value);
+ },
+ _setterTransform = function _setterTransform(target, property, value) {
+ return target._gsap[property] = value;
+ },
+ _setterScale = function _setterScale(target, property, value) {
+ return target._gsap.scaleX = target._gsap.scaleY = value;
+ },
+ _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {
+ var cache = target._gsap;
+ cache.scaleX = cache.scaleY = value;
+ cache.renderTransform(ratio, cache);
+ },
+ _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {
+ var cache = target._gsap;
+ cache[property] = value;
+ cache.renderTransform(ratio, cache);
+ },
+ _transformProp = "transform",
+ _transformOriginProp = _transformProp + "Origin",
+ _saveStyle = function _saveStyle(property, isNotCSS) {
+ var _this = this;
+
+ var target = this.target,
+ style = target.style,
+ cache = target._gsap;
+
+ if (property in _transformProps && style) {
+ this.tfm = this.tfm || {};
+
+ if (property !== "transform") {
+ property = _propertyAliases[property] || property;
+ ~property.indexOf(",") ? property.split(",").forEach(function (a) {
+ return _this.tfm[a] = _get(target, a);
+ }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property);
+ property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);
+ } else {
+ return _propertyAliases.transform.split(",").forEach(function (p) {
+ return _saveStyle.call(_this, p, isNotCSS);
+ });
+ }
+
+ if (this.props.indexOf(_transformProp) >= 0) {
+ return;
+ }
+
+ if (cache.svg) {
+ this.svgo = target.getAttribute("data-svg-origin");
+ this.props.push(_transformOriginProp, isNotCSS, "");
+ }
+
+ property = _transformProp;
+ }
+
+ (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);
+ },
+ _removeIndependentTransforms = function _removeIndependentTransforms(style) {
+ if (style.translate) {
+ style.removeProperty("translate");
+ style.removeProperty("scale");
+ style.removeProperty("rotate");
+ }
+ },
+ _revertStyle = function _revertStyle() {
+ var props = this.props,
+ target = this.target,
+ style = target.style,
+ cache = target._gsap,
+ i,
+ p;
+
+ for (i = 0; i < props.length; i += 3) {
+ props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === "--" ? props[i] : props[i].replace(_capsExp, "-$1").toLowerCase());
+ }
+
+ if (this.tfm) {
+ for (p in this.tfm) {
+ cache[p] = this.tfm[p];
+ }
+
+ if (cache.svg) {
+ cache.renderTransform();
+ target.setAttribute("data-svg-origin", this.svgo || "");
+ }
+
+ i = _reverting$1();
+
+ if ((!i || !i.isStart) && !style[_transformProp]) {
+ _removeIndependentTransforms(style);
+
+ if (cache.zOrigin && style[_transformOriginProp]) {
+ style[_transformOriginProp] += " " + cache.zOrigin + "px";
+ cache.zOrigin = 0;
+ cache.renderTransform();
+ }
+
+ cache.uncache = 1;
+ }
+ }
+ },
+ _getStyleSaver = function _getStyleSaver(target, properties) {
+ var saver = {
+ target: target,
+ props: [],
+ revert: _revertStyle,
+ save: _saveStyle
+ };
+ target._gsap || gsap.core.getCache(target);
+ properties && properties.split(",").forEach(function (p) {
+ return saver.save(p);
+ });
+ return saver;
+ },
+ _supports3D,
+ _createElement = function _createElement(type, ns) {
+ var e = _doc$1.createElementNS ? _doc$1.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc$1.createElement(type);
+ return e && e.style ? e : _doc$1.createElement(type);
+ },
+ _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {
+ var cs = getComputedStyle(target);
+ return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || "";
+ },
+ _prefixes = "O,Moz,ms,Ms,Webkit".split(","),
+ _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {
+ var e = element || _tempDiv,
+ s = e.style,
+ i = 5;
+
+ if (property in s && !preferPrefix) {
+ return property;
+ }
+
+ property = property.charAt(0).toUpperCase() + property.substr(1);
+
+ while (i-- && !(_prefixes[i] + property in s)) {}
+
+ return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property;
+ },
+ _initCore = function _initCore() {
+ if (_windowExists$1() && window.document) {
+ _win$1 = window;
+ _doc$1 = _win$1.document;
+ _docElement = _doc$1.documentElement;
+ _tempDiv = _createElement("div") || {
+ style: {}
+ };
+ _tempDivStyler = _createElement("div");
+ _transformProp = _checkPropPrefix(_transformProp);
+ _transformOriginProp = _transformProp + "Origin";
+ _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0";
+ _supports3D = !!_checkPropPrefix("perspective");
+ _reverting$1 = gsap.core.reverting;
+ _pluginInitted = 1;
+ }
+ },
+ _getBBoxHack = function _getBBoxHack(swapIfPossible) {
+ var svg = _createElement("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"),
+ oldParent = this.parentNode,
+ oldSibling = this.nextSibling,
+ oldCSS = this.style.cssText,
+ bbox;
+
+ _docElement.appendChild(svg);
+
+ svg.appendChild(this);
+ this.style.display = "block";
+
+ if (swapIfPossible) {
+ try {
+ bbox = this.getBBox();
+ this._gsapBBox = this.getBBox;
+ this.getBBox = _getBBoxHack;
+ } catch (e) {}
+ } else if (this._gsapBBox) {
+ bbox = this._gsapBBox();
+ }
+
+ if (oldParent) {
+ if (oldSibling) {
+ oldParent.insertBefore(this, oldSibling);
+ } else {
+ oldParent.appendChild(this);
+ }
+ }
+
+ _docElement.removeChild(svg);
+
+ this.style.cssText = oldCSS;
+ return bbox;
+ },
+ _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {
+ var i = attributesArray.length;
+
+ while (i--) {
+ if (target.hasAttribute(attributesArray[i])) {
+ return target.getAttribute(attributesArray[i]);
+ }
+ }
+ },
+ _getBBox = function _getBBox(target) {
+ var bounds;
+
+ try {
+ bounds = target.getBBox();
+ } catch (error) {
+ bounds = _getBBoxHack.call(target, true);
+ }
+
+ bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true));
+ return bounds && !bounds.width && !bounds.x && !bounds.y ? {
+ x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0,
+ y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0,
+ width: 0,
+ height: 0
+ } : bounds;
+ },
+ _isSVG = function _isSVG(e) {
+ return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));
+ },
+ _removeProperty = function _removeProperty(target, property) {
+ if (property) {
+ var style = target.style,
+ first2Chars;
+
+ if (property in _transformProps && property !== _transformOriginProp) {
+ property = _transformProp;
+ }
+
+ if (style.removeProperty) {
+ first2Chars = property.substr(0, 2);
+
+ if (first2Chars === "ms" || property.substr(0, 6) === "webkit") {
+ property = "-" + property;
+ }
+
+ style.removeProperty(first2Chars === "--" ? property : property.replace(_capsExp, "-$1").toLowerCase());
+ } else {
+ style.removeAttribute(property);
+ }
+ }
+ },
+ _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {
+ var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);
+ plugin._pt = pt;
+ pt.b = beginning;
+ pt.e = end;
+
+ plugin._props.push(property);
+
+ return pt;
+ },
+ _nonConvertibleUnits = {
+ deg: 1,
+ rad: 1,
+ turn: 1
+ },
+ _nonStandardLayouts = {
+ grid: 1,
+ flex: 1
+ },
+ _convertToUnit = function _convertToUnit(target, property, value, unit) {
+ var curValue = parseFloat(value) || 0,
+ curUnit = (value + "").trim().substr((curValue + "").length) || "px",
+ style = _tempDiv.style,
+ horizontal = _horizontalExp.test(property),
+ isRootSVG = target.tagName.toLowerCase() === "svg",
+ measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"),
+ amount = 100,
+ toPixels = unit === "px",
+ toPercent = unit === "%",
+ px,
+ parent,
+ cache,
+ isSVG;
+
+ if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {
+ return curValue;
+ }
+
+ curUnit !== "px" && !toPixels && (curValue = _convertToUnit(target, property, value, "px"));
+ isSVG = target.getCTM && _isSVG(target);
+
+ if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) {
+ px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty];
+ return _round(toPercent ? curValue / px * amount : curValue / 100 * px);
+ }
+
+ style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit);
+ parent = ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode;
+
+ if (isSVG) {
+ parent = (target.ownerSVGElement || {}).parentNode;
+ }
+
+ if (!parent || parent === _doc$1 || !parent.appendChild) {
+ parent = _doc$1.body;
+ }
+
+ cache = parent._gsap;
+
+ if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {
+ return _round(curValue / cache.width * amount);
+ } else {
+ if (toPercent && (property === "height" || property === "width")) {
+ var v = target.style[property];
+ target.style[property] = amount + unit;
+ px = target[measureProperty];
+ v ? target.style[property] = v : _removeProperty(target, property);
+ } else {
+ (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position"));
+ parent === target && (style.position = "static");
+ parent.appendChild(_tempDiv);
+ px = _tempDiv[measureProperty];
+ parent.removeChild(_tempDiv);
+ style.position = "absolute";
+ }
+
+ if (horizontal && toPercent) {
+ cache = _getCache(parent);
+ cache.time = _ticker.time;
+ cache.width = parent[measureProperty];
+ }
+ }
+
+ return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);
+ },
+ _get = function _get(target, property, unit, uncache) {
+ var value;
+ _pluginInitted || _initCore();
+
+ if (property in _propertyAliases && property !== "transform") {
+ property = _propertyAliases[property];
+
+ if (~property.indexOf(",")) {
+ property = property.split(",")[0];
+ }
+ }
+
+ if (_transformProps[property] && property !== "transform") {
+ value = _parseTransform(target, uncache);
+ value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px";
+ } else {
+ value = target.style[property];
+
+ if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) {
+ value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0);
+ }
+ }
+
+ return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value;
+ },
+ _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {
+ if (!start || start === "none") {
+ var p = _checkPropPrefix(prop, target, 1),
+ s = p && _getComputedProperty(target, p, 1);
+
+ if (s && s !== start) {
+ prop = p;
+ start = s;
+ } else if (prop === "borderColor") {
+ start = _getComputedProperty(target, "borderTopColor");
+ }
+ }
+
+ var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),
+ index = 0,
+ matchIndex = 0,
+ a,
+ result,
+ startValues,
+ startNum,
+ color,
+ startValue,
+ endValue,
+ endNum,
+ chunk,
+ endUnit,
+ startUnit,
+ endValues;
+ pt.b = start;
+ pt.e = end;
+ start += "";
+ end += "";
+
+ if (end === "auto") {
+ startValue = target.style[prop];
+ target.style[prop] = end;
+ end = _getComputedProperty(target, prop) || end;
+ startValue ? target.style[prop] = startValue : _removeProperty(target, prop);
+ }
+
+ a = [start, end];
+
+ _colorStringFilter(a);
+
+ start = a[0];
+ end = a[1];
+ startValues = start.match(_numWithUnitExp) || [];
+ endValues = end.match(_numWithUnitExp) || [];
+
+ if (endValues.length) {
+ while (result = _numWithUnitExp.exec(end)) {
+ endValue = result[0];
+ chunk = end.substring(index, result.index);
+
+ if (color) {
+ color = (color + 1) % 5;
+ } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") {
+ color = 1;
+ }
+
+ if (endValue !== (startValue = startValues[matchIndex++] || "")) {
+ startNum = parseFloat(startValue) || 0;
+ startUnit = startValue.substr((startNum + "").length);
+ endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit);
+ endNum = parseFloat(endValue);
+ endUnit = endValue.substr((endNum + "").length);
+ index = _numWithUnitExp.lastIndex - endUnit.length;
+
+ if (!endUnit) {
+ endUnit = endUnit || _config.units[prop] || startUnit;
+
+ if (index === end.length) {
+ end += endUnit;
+ pt.e += endUnit;
+ }
+ }
+
+ if (startUnit !== endUnit) {
+ startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;
+ }
+
+ pt._pt = {
+ _next: pt._pt,
+ p: chunk || matchIndex === 1 ? chunk : ",",
+ s: startNum,
+ c: endNum - startNum,
+ m: color && color < 4 || prop === "zIndex" ? Math.round : 0
+ };
+ }
+ }
+
+ pt.c = index < end.length ? end.substring(index, end.length) : "";
+ } else {
+ pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;
+ }
+
+ _relExp.test(end) && (pt.e = 0);
+ this._pt = pt;
+ return pt;
+ },
+ _keywordToPercent = {
+ top: "0%",
+ bottom: "100%",
+ left: "0%",
+ right: "100%",
+ center: "50%"
+ },
+ _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {
+ var split = value.split(" "),
+ x = split[0],
+ y = split[1] || "50%";
+
+ if (x === "top" || x === "bottom" || y === "left" || y === "right") {
+ value = x;
+ x = y;
+ y = value;
+ }
+
+ split[0] = _keywordToPercent[x] || x;
+ split[1] = _keywordToPercent[y] || y;
+ return split.join(" ");
+ },
+ _renderClearProps = function _renderClearProps(ratio, data) {
+ if (data.tween && data.tween._time === data.tween._dur) {
+ var target = data.t,
+ style = target.style,
+ props = data.u,
+ cache = target._gsap,
+ prop,
+ clearTransforms,
+ i;
+
+ if (props === "all" || props === true) {
+ style.cssText = "";
+ clearTransforms = 1;
+ } else {
+ props = props.split(",");
+ i = props.length;
+
+ while (--i > -1) {
+ prop = props[i];
+
+ if (_transformProps[prop]) {
+ clearTransforms = 1;
+ prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp;
+ }
+
+ _removeProperty(target, prop);
+ }
+ }
+
+ if (clearTransforms) {
+ _removeProperty(target, _transformProp);
+
+ if (cache) {
+ cache.svg && target.removeAttribute("transform");
+
+ _parseTransform(target, 1);
+
+ cache.uncache = 1;
+
+ _removeIndependentTransforms(style);
+ }
+ }
+ }
+ },
+ _specialProps = {
+ clearProps: function clearProps(plugin, target, property, endValue, tween) {
+ if (tween.data !== "isFromStart") {
+ var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);
+ pt.u = endValue;
+ pt.pr = -10;
+ pt.tween = tween;
+
+ plugin._props.push(property);
+
+ return 1;
+ }
+ }
+ },
+ _identity2DMatrix = [1, 0, 0, 1, 0, 0],
+ _rotationalProperties = {},
+ _isNullTransform = function _isNullTransform(value) {
+ return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value;
+ },
+ _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {
+ var matrixString = _getComputedProperty(target, _transformProp);
+
+ return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);
+ },
+ _getMatrix = function _getMatrix(target, force2D) {
+ var cache = target._gsap || _getCache(target),
+ style = target.style,
+ matrix = _getComputedTransformMatrixAsArray(target),
+ parent,
+ nextSibling,
+ temp,
+ addedToDOM;
+
+ if (cache.svg && target.getAttribute("transform")) {
+ temp = target.transform.baseVal.consolidate().matrix;
+ matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];
+ return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix;
+ } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {
+ temp = style.display;
+ style.display = "block";
+ parent = target.parentNode;
+
+ if (!parent || !target.offsetParent) {
+ addedToDOM = 1;
+ nextSibling = target.nextElementSibling;
+
+ _docElement.appendChild(target);
+ }
+
+ matrix = _getComputedTransformMatrixAsArray(target);
+ temp ? style.display = temp : _removeProperty(target, "display");
+
+ if (addedToDOM) {
+ nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);
+ }
+ }
+
+ return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;
+ },
+ _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {
+ var cache = target._gsap,
+ matrix = matrixArray || _getMatrix(target, true),
+ xOriginOld = cache.xOrigin || 0,
+ yOriginOld = cache.yOrigin || 0,
+ xOffsetOld = cache.xOffset || 0,
+ yOffsetOld = cache.yOffset || 0,
+ a = matrix[0],
+ b = matrix[1],
+ c = matrix[2],
+ d = matrix[3],
+ tx = matrix[4],
+ ty = matrix[5],
+ originSplit = origin.split(" "),
+ xOrigin = parseFloat(originSplit[0]) || 0,
+ yOrigin = parseFloat(originSplit[1]) || 0,
+ bounds,
+ determinant,
+ x,
+ y;
+
+ if (!originIsAbsolute) {
+ bounds = _getBBox(target);
+ xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin);
+ yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin);
+ } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {
+ x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;
+ y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;
+ xOrigin = x;
+ yOrigin = y;
+ }
+
+ if (smooth || smooth !== false && cache.smooth) {
+ tx = xOrigin - xOriginOld;
+ ty = yOrigin - yOriginOld;
+ cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;
+ cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;
+ } else {
+ cache.xOffset = cache.yOffset = 0;
+ }
+
+ cache.xOrigin = xOrigin;
+ cache.yOrigin = yOrigin;
+ cache.smooth = !!smooth;
+ cache.origin = origin;
+ cache.originIsAbsolute = !!originIsAbsolute;
+ target.style[_transformOriginProp] = "0px 0px";
+
+ if (pluginToAddPropTweensTo) {
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin);
+
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin);
+
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset);
+
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset);
+ }
+
+ target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin);
+ },
+ _parseTransform = function _parseTransform(target, uncache) {
+ var cache = target._gsap || new GSCache(target);
+
+ if ("x" in cache && !uncache && !cache.uncache) {
+ return cache;
+ }
+
+ var style = target.style,
+ invertedScaleX = cache.scaleX < 0,
+ px = "px",
+ deg = "deg",
+ cs = getComputedStyle(target),
+ origin = _getComputedProperty(target, _transformOriginProp) || "0",
+ x,
+ y,
+ z,
+ scaleX,
+ scaleY,
+ rotation,
+ rotationX,
+ rotationY,
+ skewX,
+ skewY,
+ perspective,
+ xOrigin,
+ yOrigin,
+ matrix,
+ angle,
+ cos,
+ sin,
+ a,
+ b,
+ c,
+ d,
+ a12,
+ a22,
+ t1,
+ t2,
+ t3,
+ a13,
+ a23,
+ a33,
+ a42,
+ a43,
+ a32;
+ x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;
+ scaleX = scaleY = 1;
+ cache.svg = !!(target.getCTM && _isSVG(target));
+
+ if (cs.translate) {
+ if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") {
+ style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : "");
+ }
+
+ style.scale = style.rotate = style.translate = "none";
+ }
+
+ matrix = _getMatrix(target, cache.svg);
+
+ if (cache.svg) {
+ if (cache.uncache) {
+ t2 = target.getBBox();
+ origin = cache.xOrigin - t2.x + "px " + (cache.yOrigin - t2.y) + "px";
+ t1 = "";
+ } else {
+ t1 = !uncache && target.getAttribute("data-svg-origin");
+ }
+
+ _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);
+ }
+
+ xOrigin = cache.xOrigin || 0;
+ yOrigin = cache.yOrigin || 0;
+
+ if (matrix !== _identity2DMatrix) {
+ a = matrix[0];
+ b = matrix[1];
+ c = matrix[2];
+ d = matrix[3];
+ x = a12 = matrix[4];
+ y = a22 = matrix[5];
+
+ if (matrix.length === 6) {
+ scaleX = Math.sqrt(a * a + b * b);
+ scaleY = Math.sqrt(d * d + c * c);
+ rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0;
+ skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;
+ skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));
+
+ if (cache.svg) {
+ x -= xOrigin - (xOrigin * a + yOrigin * c);
+ y -= yOrigin - (xOrigin * b + yOrigin * d);
+ }
+ } else {
+ a32 = matrix[6];
+ a42 = matrix[7];
+ a13 = matrix[8];
+ a23 = matrix[9];
+ a33 = matrix[10];
+ a43 = matrix[11];
+ x = matrix[12];
+ y = matrix[13];
+ z = matrix[14];
+ angle = _atan2(a32, a33);
+ rotationX = angle * _RAD2DEG;
+
+ if (angle) {
+ cos = Math.cos(-angle);
+ sin = Math.sin(-angle);
+ t1 = a12 * cos + a13 * sin;
+ t2 = a22 * cos + a23 * sin;
+ t3 = a32 * cos + a33 * sin;
+ a13 = a12 * -sin + a13 * cos;
+ a23 = a22 * -sin + a23 * cos;
+ a33 = a32 * -sin + a33 * cos;
+ a43 = a42 * -sin + a43 * cos;
+ a12 = t1;
+ a22 = t2;
+ a32 = t3;
+ }
+
+ angle = _atan2(-c, a33);
+ rotationY = angle * _RAD2DEG;
+
+ if (angle) {
+ cos = Math.cos(-angle);
+ sin = Math.sin(-angle);
+ t1 = a * cos - a13 * sin;
+ t2 = b * cos - a23 * sin;
+ t3 = c * cos - a33 * sin;
+ a43 = d * sin + a43 * cos;
+ a = t1;
+ b = t2;
+ c = t3;
+ }
+
+ angle = _atan2(b, a);
+ rotation = angle * _RAD2DEG;
+
+ if (angle) {
+ cos = Math.cos(angle);
+ sin = Math.sin(angle);
+ t1 = a * cos + b * sin;
+ t2 = a12 * cos + a22 * sin;
+ b = b * cos - a * sin;
+ a22 = a22 * cos - a12 * sin;
+ a = t1;
+ a12 = t2;
+ }
+
+ if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {
+ rotationX = rotation = 0;
+ rotationY = 180 - rotationY;
+ }
+
+ scaleX = _round(Math.sqrt(a * a + b * b + c * c));
+ scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));
+ angle = _atan2(a12, a22);
+ skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;
+ perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;
+ }
+
+ if (cache.svg) {
+ t1 = target.getAttribute("transform");
+ cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp));
+ t1 && target.setAttribute("transform", t1);
+ }
+ }
+
+ if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {
+ if (invertedScaleX) {
+ scaleX *= -1;
+ skewX += rotation <= 0 ? 180 : -180;
+ rotation += rotation <= 0 ? 180 : -180;
+ } else {
+ scaleY *= -1;
+ skewX += skewX <= 0 ? 180 : -180;
+ }
+ }
+
+ uncache = uncache || cache.uncache;
+ cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;
+ cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;
+ cache.z = z + px;
+ cache.scaleX = _round(scaleX);
+ cache.scaleY = _round(scaleY);
+ cache.rotation = _round(rotation) + deg;
+ cache.rotationX = _round(rotationX) + deg;
+ cache.rotationY = _round(rotationY) + deg;
+ cache.skewX = skewX + deg;
+ cache.skewY = skewY + deg;
+ cache.transformPerspective = perspective + px;
+
+ if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || !uncache && cache.zOrigin || 0) {
+ style[_transformOriginProp] = _firstTwoOnly(origin);
+ }
+
+ cache.xOffset = cache.yOffset = 0;
+ cache.force3D = _config.force3D;
+ cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;
+ cache.uncache = 0;
+ return cache;
+ },
+ _firstTwoOnly = function _firstTwoOnly(value) {
+ return (value = value.split(" "))[0] + " " + value[1];
+ },
+ _addPxTranslate = function _addPxTranslate(target, start, value) {
+ var unit = getUnit(start);
+ return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit;
+ },
+ _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {
+ cache.z = "0px";
+ cache.rotationY = cache.rotationX = "0deg";
+ cache.force3D = 0;
+
+ _renderCSSTransforms(ratio, cache);
+ },
+ _zeroDeg = "0deg",
+ _zeroPx = "0px",
+ _endParenthesis = ") ",
+ _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {
+ var _ref = cache || this,
+ xPercent = _ref.xPercent,
+ yPercent = _ref.yPercent,
+ x = _ref.x,
+ y = _ref.y,
+ z = _ref.z,
+ rotation = _ref.rotation,
+ rotationY = _ref.rotationY,
+ rotationX = _ref.rotationX,
+ skewX = _ref.skewX,
+ skewY = _ref.skewY,
+ scaleX = _ref.scaleX,
+ scaleY = _ref.scaleY,
+ transformPerspective = _ref.transformPerspective,
+ force3D = _ref.force3D,
+ target = _ref.target,
+ zOrigin = _ref.zOrigin,
+ transforms = "",
+ use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true;
+
+ if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {
+ var angle = parseFloat(rotationY) * _DEG2RAD,
+ a13 = Math.sin(angle),
+ a33 = Math.cos(angle),
+ cos;
+
+ angle = parseFloat(rotationX) * _DEG2RAD;
+ cos = Math.cos(angle);
+ x = _addPxTranslate(target, x, a13 * cos * -zOrigin);
+ y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);
+ z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);
+ }
+
+ if (transformPerspective !== _zeroPx) {
+ transforms += "perspective(" + transformPerspective + _endParenthesis;
+ }
+
+ if (xPercent || yPercent) {
+ transforms += "translate(" + xPercent + "%, " + yPercent + "%) ";
+ }
+
+ if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {
+ transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis;
+ }
+
+ if (rotation !== _zeroDeg) {
+ transforms += "rotate(" + rotation + _endParenthesis;
+ }
+
+ if (rotationY !== _zeroDeg) {
+ transforms += "rotateY(" + rotationY + _endParenthesis;
+ }
+
+ if (rotationX !== _zeroDeg) {
+ transforms += "rotateX(" + rotationX + _endParenthesis;
+ }
+
+ if (skewX !== _zeroDeg || skewY !== _zeroDeg) {
+ transforms += "skew(" + skewX + ", " + skewY + _endParenthesis;
+ }
+
+ if (scaleX !== 1 || scaleY !== 1) {
+ transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis;
+ }
+
+ target.style[_transformProp] = transforms || "translate(0, 0)";
+ },
+ _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {
+ var _ref2 = cache || this,
+ xPercent = _ref2.xPercent,
+ yPercent = _ref2.yPercent,
+ x = _ref2.x,
+ y = _ref2.y,
+ rotation = _ref2.rotation,
+ skewX = _ref2.skewX,
+ skewY = _ref2.skewY,
+ scaleX = _ref2.scaleX,
+ scaleY = _ref2.scaleY,
+ target = _ref2.target,
+ xOrigin = _ref2.xOrigin,
+ yOrigin = _ref2.yOrigin,
+ xOffset = _ref2.xOffset,
+ yOffset = _ref2.yOffset,
+ forceCSS = _ref2.forceCSS,
+ tx = parseFloat(x),
+ ty = parseFloat(y),
+ a11,
+ a21,
+ a12,
+ a22,
+ temp;
+
+ rotation = parseFloat(rotation);
+ skewX = parseFloat(skewX);
+ skewY = parseFloat(skewY);
+
+ if (skewY) {
+ skewY = parseFloat(skewY);
+ skewX += skewY;
+ rotation += skewY;
+ }
+
+ if (rotation || skewX) {
+ rotation *= _DEG2RAD;
+ skewX *= _DEG2RAD;
+ a11 = Math.cos(rotation) * scaleX;
+ a21 = Math.sin(rotation) * scaleX;
+ a12 = Math.sin(rotation - skewX) * -scaleY;
+ a22 = Math.cos(rotation - skewX) * scaleY;
+
+ if (skewX) {
+ skewY *= _DEG2RAD;
+ temp = Math.tan(skewX - skewY);
+ temp = Math.sqrt(1 + temp * temp);
+ a12 *= temp;
+ a22 *= temp;
+
+ if (skewY) {
+ temp = Math.tan(skewY);
+ temp = Math.sqrt(1 + temp * temp);
+ a11 *= temp;
+ a21 *= temp;
+ }
+ }
+
+ a11 = _round(a11);
+ a21 = _round(a21);
+ a12 = _round(a12);
+ a22 = _round(a22);
+ } else {
+ a11 = scaleX;
+ a22 = scaleY;
+ a21 = a12 = 0;
+ }
+
+ if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) {
+ tx = _convertToUnit(target, "x", x, "px");
+ ty = _convertToUnit(target, "y", y, "px");
+ }
+
+ if (xOrigin || yOrigin || xOffset || yOffset) {
+ tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);
+ ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);
+ }
+
+ if (xPercent || yPercent) {
+ temp = target.getBBox();
+ tx = _round(tx + xPercent / 100 * temp.width);
+ ty = _round(ty + yPercent / 100 * temp.height);
+ }
+
+ temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")";
+ target.setAttribute("transform", temp);
+ forceCSS && (target.style[_transformProp] = temp);
+ },
+ _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {
+ var cap = 360,
+ isString = _isString(endValue),
+ endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1),
+ change = endNum - startNum,
+ finalValue = startNum + change + "deg",
+ direction,
+ pt;
+
+ if (isString) {
+ direction = endValue.split("_")[1];
+
+ if (direction === "short") {
+ change %= cap;
+
+ if (change !== change % (cap / 2)) {
+ change += change < 0 ? cap : -cap;
+ }
+ }
+
+ if (direction === "cw" && change < 0) {
+ change = (change + cap * _bigNum$1) % cap - ~~(change / cap) * cap;
+ } else if (direction === "ccw" && change > 0) {
+ change = (change - cap * _bigNum$1) % cap - ~~(change / cap) * cap;
+ }
+ }
+
+ plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);
+ pt.e = finalValue;
+ pt.u = "deg";
+
+ plugin._props.push(property);
+
+ return pt;
+ },
+ _assign = function _assign(target, source) {
+ for (var p in source) {
+ target[p] = source[p];
+ }
+
+ return target;
+ },
+ _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {
+ var startCache = _assign({}, target._gsap),
+ exclude = "perspective,force3D,transformOrigin,svgOrigin",
+ style = target.style,
+ endCache,
+ p,
+ startValue,
+ endValue,
+ startNum,
+ endNum,
+ startUnit,
+ endUnit;
+
+ if (startCache.svg) {
+ startValue = target.getAttribute("transform");
+ target.setAttribute("transform", "");
+ style[_transformProp] = transforms;
+ endCache = _parseTransform(target, 1);
+
+ _removeProperty(target, _transformProp);
+
+ target.setAttribute("transform", startValue);
+ } else {
+ startValue = getComputedStyle(target)[_transformProp];
+ style[_transformProp] = transforms;
+ endCache = _parseTransform(target, 1);
+ style[_transformProp] = startValue;
+ }
+
+ for (p in _transformProps) {
+ startValue = startCache[p];
+ endValue = endCache[p];
+
+ if (startValue !== endValue && exclude.indexOf(p) < 0) {
+ startUnit = getUnit(startValue);
+ endUnit = getUnit(endValue);
+ startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);
+ endNum = parseFloat(endValue);
+ plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);
+ plugin._pt.u = endUnit || 0;
+
+ plugin._props.push(p);
+ }
+ }
+
+ _assign(endCache, startCache);
+ };
+
+ _forEachName("padding,margin,Width,Radius", function (name, index) {
+ var t = "Top",
+ r = "Right",
+ b = "Bottom",
+ l = "Left",
+ props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {
+ return index < 2 ? name + side : "border" + side + name;
+ });
+
+ _specialProps[index > 1 ? "border" + name : name] = function (plugin, target, property, endValue, tween) {
+ var a, vars;
+
+ if (arguments.length < 4) {
+ a = props.map(function (prop) {
+ return _get(plugin, prop, property);
+ });
+ vars = a.join(" ");
+ return vars.split(a[0]).length === 5 ? a[0] : vars;
+ }
+
+ a = (endValue + "").split(" ");
+ vars = {};
+ props.forEach(function (prop, i) {
+ return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];
+ });
+ plugin.init(target, vars, tween);
+ };
+ });
+
+ var CSSPlugin = {
+ name: "css",
+ register: _initCore,
+ targetTest: function targetTest(target) {
+ return target.style && target.nodeType;
+ },
+ init: function init(target, vars, tween, index, targets) {
+ var props = this._props,
+ style = target.style,
+ startAt = tween.vars.startAt,
+ startValue,
+ endValue,
+ endNum,
+ startNum,
+ type,
+ specialProp,
+ p,
+ startUnit,
+ endUnit,
+ relative,
+ isTransformRelated,
+ transformPropTween,
+ cache,
+ smooth,
+ hasPriority,
+ inlineProps;
+ _pluginInitted || _initCore();
+ this.styles = this.styles || _getStyleSaver(target);
+ inlineProps = this.styles.props;
+ this.tween = tween;
+
+ for (p in vars) {
+ if (p === "autoRound") {
+ continue;
+ }
+
+ endValue = vars[p];
+
+ if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {
+ continue;
+ }
+
+ type = typeof endValue;
+ specialProp = _specialProps[p];
+
+ if (type === "function") {
+ endValue = endValue.call(tween, index, target, targets);
+ type = typeof endValue;
+ }
+
+ if (type === "string" && ~endValue.indexOf("random(")) {
+ endValue = _replaceRandom(endValue);
+ }
+
+ if (specialProp) {
+ specialProp(this, target, p, endValue, tween) && (hasPriority = 1);
+ } else if (p.substr(0, 2) === "--") {
+ startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim();
+ endValue += "";
+ _colorExp.lastIndex = 0;
+
+ if (!_colorExp.test(startValue)) {
+ startUnit = getUnit(startValue);
+ endUnit = getUnit(endValue);
+ }
+
+ endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);
+ this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p);
+ props.push(p);
+ inlineProps.push(p, 0, style[p]);
+ } else if (type !== "undefined") {
+ if (startAt && p in startAt) {
+ startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p];
+ _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue));
+ getUnit(startValue + "") || startValue === "auto" || (startValue += _config.units[p] || getUnit(_get(target, p)) || "");
+ (startValue + "").charAt(1) === "=" && (startValue = _get(target, p));
+ } else {
+ startValue = _get(target, p);
+ }
+
+ startNum = parseFloat(startValue);
+ relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2);
+ relative && (endValue = endValue.substr(2));
+ endNum = parseFloat(endValue);
+
+ if (p in _propertyAliases) {
+ if (p === "autoAlpha") {
+ if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) {
+ startNum = 0;
+ }
+
+ inlineProps.push("visibility", 0, style.visibility);
+
+ _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum);
+ }
+
+ if (p !== "scale" && p !== "transform") {
+ p = _propertyAliases[p];
+ ~p.indexOf(",") && (p = p.split(",")[0]);
+ }
+ }
+
+ isTransformRelated = p in _transformProps;
+
+ if (isTransformRelated) {
+ this.styles.save(p);
+
+ if (!transformPropTween) {
+ cache = target._gsap;
+ cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform);
+ smooth = vars.smoothOrigin !== false && cache.smooth;
+ transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1);
+ transformPropTween.dep = 1;
+ }
+
+ if (p === "scale") {
+ this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);
+ this._pt.u = 0;
+ props.push("scaleY", p);
+ p += "X";
+ } else if (p === "transformOrigin") {
+ inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);
+ endValue = _convertKeywordsToPercentages(endValue);
+
+ if (cache.svg) {
+ _applySVGOrigin(target, endValue, 0, smooth, 0, this);
+ } else {
+ endUnit = parseFloat(endValue.split(" ")[2]) || 0;
+ endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit);
+
+ _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));
+ }
+
+ continue;
+ } else if (p === "svgOrigin") {
+ _applySVGOrigin(target, endValue, 1, smooth, 0, this);
+
+ continue;
+ } else if (p in _rotationalProperties) {
+ _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);
+
+ continue;
+ } else if (p === "smoothOrigin") {
+ _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue);
+
+ continue;
+ } else if (p === "force3D") {
+ cache[p] = endValue;
+ continue;
+ } else if (p === "transform") {
+ _addRawTransformPTs(this, endValue, target);
+
+ continue;
+ }
+ } else if (!(p in style)) {
+ p = _checkPropPrefix(p) || p;
+ }
+
+ if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {
+ startUnit = (startValue + "").substr((startNum + "").length);
+ endNum || (endNum = 0);
+ endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);
+ startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));
+ this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);
+ this._pt.u = endUnit || 0;
+
+ if (startUnit !== endUnit && endUnit !== "%") {
+ this._pt.b = startValue;
+ this._pt.r = _renderCSSPropWithBeginning;
+ }
+ } else if (!(p in style)) {
+ if (p in target) {
+ this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);
+ } else if (p !== "parseTransform") {
+ _missingPlugin(p, endValue);
+
+ continue;
+ }
+ } else {
+ _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);
+ }
+
+ isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));
+ props.push(p);
+ }
+ }
+
+ hasPriority && _sortPropTweensByPriority(this);
+ },
+ render: function render(ratio, data) {
+ if (data.tween._time || !_reverting$1()) {
+ var pt = data._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+ } else {
+ data.styles.revert();
+ }
+ },
+ get: _get,
+ aliases: _propertyAliases,
+ getSetter: function getSetter(target, property, plugin) {
+ var p = _propertyAliases[property];
+ p && p.indexOf(",") < 0 && (property = p);
+ return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property);
+ },
+ core: {
+ _removeProperty: _removeProperty,
+ _getMatrix: _getMatrix
+ }
+ };
+ gsap.utils.checkPrefix = _checkPropPrefix;
+ gsap.core.getStyleSaver = _getStyleSaver;
+
+ (function (positionAndScale, rotation, others, aliases) {
+ var all = _forEachName(positionAndScale + "," + rotation + "," + others, function (name) {
+ _transformProps[name] = 1;
+ });
+
+ _forEachName(rotation, function (name) {
+ _config.units[name] = "deg";
+ _rotationalProperties[name] = 1;
+ });
+
+ _propertyAliases[all[13]] = positionAndScale + "," + rotation;
+
+ _forEachName(aliases, function (name) {
+ var split = name.split(":");
+ _propertyAliases[split[1]] = all[split[0]];
+ });
+ })("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");
+
+ _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function (name) {
+ _config.units[name] = "px";
+ });
+
+ gsap.registerPlugin(CSSPlugin);
+
+ var _svgPathExp = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig,
+ _numbersExp = /(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/ig,
+ _scientific = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/ig,
+ _selectorExp = /(^[#\.][a-z]|[a-y][a-z])/i,
+ _DEG2RAD$1 = Math.PI / 180,
+ _RAD2DEG$1 = 180 / Math.PI,
+ _sin$1 = Math.sin,
+ _cos$1 = Math.cos,
+ _abs = Math.abs,
+ _sqrt$1 = Math.sqrt,
+ _atan2$1 = Math.atan2,
+ _largeNum = 1e8,
+ _isString$1 = function _isString(value) {
+ return typeof value === "string";
+ },
+ _isNumber$1 = function _isNumber(value) {
+ return typeof value === "number";
+ },
+ _isUndefined$1 = function _isUndefined(value) {
+ return typeof value === "undefined";
+ },
+ _temp = {},
+ _temp2 = {},
+ _roundingNum = 1e5,
+ _wrapProgress = function _wrapProgress(progress) {
+ return Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum || (progress < 0 ? 0 : 1);
+ },
+ _round$1 = function _round(value) {
+ return Math.round(value * _roundingNum) / _roundingNum || 0;
+ },
+ _roundPrecise$1 = function _roundPrecise(value) {
+ return Math.round(value * 1e10) / 1e10 || 0;
+ },
+ _splitSegment = function _splitSegment(rawPath, segIndex, i, t) {
+ var segment = rawPath[segIndex],
+ shift = t === 1 ? 6 : subdivideSegment(segment, i, t);
+
+ if ((shift || !t) && shift + i + 2 < segment.length) {
+ rawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2));
+ segment.splice(0, i + shift);
+ return 1;
+ }
+ },
+ _getSampleIndex = function _getSampleIndex(samples, length, progress) {
+ var l = samples.length,
+ i = ~~(progress * l);
+
+ if (samples[i] > length) {
+ while (--i && samples[i] > length) {}
+
+ i < 0 && (i = 0);
+ } else {
+ while (samples[++i] < length && i < l) {}
+ }
+
+ return i < l ? i : l - 1;
+ },
+ _reverseRawPath = function _reverseRawPath(rawPath, skipOuter) {
+ var i = rawPath.length;
+ skipOuter || rawPath.reverse();
+
+ while (i--) {
+ rawPath[i].reversed || reverseSegment(rawPath[i]);
+ }
+ },
+ _copyMetaData = function _copyMetaData(source, copy) {
+ copy.totalLength = source.totalLength;
+
+ if (source.samples) {
+ copy.samples = source.samples.slice(0);
+ copy.lookup = source.lookup.slice(0);
+ copy.minLength = source.minLength;
+ copy.resolution = source.resolution;
+ } else if (source.totalPoints) {
+ copy.totalPoints = source.totalPoints;
+ }
+
+ return copy;
+ },
+ _appendOrMerge = function _appendOrMerge(rawPath, segment) {
+ var index = rawPath.length,
+ prevSeg = rawPath[index - 1] || [],
+ l = prevSeg.length;
+
+ if (index && segment[0] === prevSeg[l - 2] && segment[1] === prevSeg[l - 1]) {
+ segment = prevSeg.concat(segment.slice(2));
+ index--;
+ }
+
+ rawPath[index] = segment;
+ };
+
+ function getRawPath(value) {
+ value = _isString$1(value) && _selectorExp.test(value) ? document.querySelector(value) || value : value;
+ var e = value.getAttribute ? value : 0,
+ rawPath;
+
+ if (e && (value = value.getAttribute("d"))) {
+ if (!e._gsPath) {
+ e._gsPath = {};
+ }
+
+ rawPath = e._gsPath[value];
+ return rawPath && !rawPath._dirty ? rawPath : e._gsPath[value] = stringToRawPath(value);
+ }
+
+ return !value ? console.warn("Expecting a
";
+ } else {
+ result.push(node.outerHTML);
+ }
+
+ node = node.nextSibling;
+ }
+
+ s = result.length;
+
+ while (s--) {
+ result[s] === "&" && result.splice(s, 1, "&");
+ }
+
+ return result;
+ }
+ function emojiSafeSplit(text, delimiter, trim, preserveSpaces) {
+ text += "";
+ trim && (text = text.trim ? text.trim() : text.replace(_trimExp, ""));
+
+ if (delimiter && delimiter !== "") {
+ return text.replace(/>/g, ">").replace(/= 0xD800 && character.charCodeAt(0) <= 0xDBFF || text.charCodeAt(i + 1) >= 0xFE00 && text.charCodeAt(i + 1) <= 0xFE0F) {
+ j = ((text.substr(i, 12).split(emojiExp) || [])[1] || "").length || 2;
+ character = text.substr(i, j);
+ result.emoji = 1;
+ i += j - 1;
+ }
+
+ result.push(character === ">" ? ">" : character === "<" ? "<" : preserveSpaces && character === " " && (text.charAt(i - 1) === " " || text.charAt(i + 1) === " ") ? " " : character);
+ }
+
+ return result;
+ }
+
+ /*!
+ * TextPlugin 3.12.5
+ * https://gsap.com
+ *
+ * @license Copyright 2008-2024, GreenSock. All rights reserved.
+ * Subject to the terms at https://gsap.com/standard-license or for
+ * Club GSAP members, the agreement issued with that membership.
+ * @author: Jack Doyle, jack@greensock.com
+ */
+
+ var gsap$c,
+ _tempDiv$2,
+ _getGSAP$a = function _getGSAP() {
+ return gsap$c || typeof window !== "undefined" && (gsap$c = window.gsap) && gsap$c.registerPlugin && gsap$c;
+ };
+
+ var TextPlugin = {
+ version: "3.12.5",
+ name: "text",
+ init: function init(target, value, tween) {
+ typeof value !== "object" && (value = {
+ value: value
+ });
+
+ var i = target.nodeName.toUpperCase(),
+ data = this,
+ _value = value,
+ newClass = _value.newClass,
+ oldClass = _value.oldClass,
+ preserveSpaces = _value.preserveSpaces,
+ rtl = _value.rtl,
+ delimiter = data.delimiter = value.delimiter || "",
+ fillChar = data.fillChar = value.fillChar || (value.padSpace ? " " : ""),
+ _short,
+ text,
+ original,
+ j,
+ condensedText,
+ condensedOriginal,
+ aggregate,
+ s;
+
+ data.svg = target.getBBox && (i === "TEXT" || i === "TSPAN");
+
+ if (!("innerHTML" in target) && !data.svg) {
+ return false;
+ }
+
+ data.target = target;
+
+ if (!("value" in value)) {
+ data.text = data.original = [""];
+ return;
+ }
+
+ original = splitInnerHTML(target, delimiter, false, preserveSpaces);
+ _tempDiv$2 || (_tempDiv$2 = document.createElement("div"));
+ _tempDiv$2.innerHTML = value.value;
+ text = splitInnerHTML(_tempDiv$2, delimiter, false, preserveSpaces);
+ data.from = tween._from;
+
+ if ((data.from || rtl) && !(rtl && data.from)) {
+ i = original;
+ original = text;
+ text = i;
+ }
+
+ data.hasClass = !!(newClass || oldClass);
+ data.newClass = rtl ? oldClass : newClass;
+ data.oldClass = rtl ? newClass : oldClass;
+ i = original.length - text.length;
+ _short = i < 0 ? original : text;
+
+ if (i < 0) {
+ i = -i;
+ }
+
+ while (--i > -1) {
+ _short.push(fillChar);
+ }
+
+ if (value.type === "diff") {
+ j = 0;
+ condensedText = [];
+ condensedOriginal = [];
+ aggregate = "";
+
+ for (i = 0; i < text.length; i++) {
+ s = text[i];
+
+ if (s === original[i]) {
+ aggregate += s;
+ } else {
+ condensedText[j] = aggregate + s;
+ condensedOriginal[j++] = aggregate + original[i];
+ aggregate = "";
+ }
+ }
+
+ text = condensedText;
+ original = condensedOriginal;
+
+ if (aggregate) {
+ text.push(aggregate);
+ original.push(aggregate);
+ }
+ }
+
+ value.speed && tween.duration(Math.min(0.05 / value.speed * _short.length, value.maxDuration || 9999));
+ data.rtl = rtl;
+ data.original = original;
+ data.text = text;
+
+ data._props.push("text");
+ },
+ render: function render(ratio, data) {
+ if (ratio > 1) {
+ ratio = 1;
+ } else if (ratio < 0) {
+ ratio = 0;
+ }
+
+ if (data.from) {
+ ratio = 1 - ratio;
+ }
+
+ var text = data.text,
+ hasClass = data.hasClass,
+ newClass = data.newClass,
+ oldClass = data.oldClass,
+ delimiter = data.delimiter,
+ target = data.target,
+ fillChar = data.fillChar,
+ original = data.original,
+ rtl = data.rtl,
+ l = text.length,
+ i = (rtl ? 1 - ratio : ratio) * l + 0.5 | 0,
+ applyNew,
+ applyOld,
+ str;
+
+ if (hasClass && ratio) {
+ applyNew = newClass && i;
+ applyOld = oldClass && i !== l;
+ str = (applyNew ? "" : "") + text.slice(0, i).join(delimiter) + (applyNew ? "" : "") + (applyOld ? "" : "") + delimiter + original.slice(i).join(delimiter) + (applyOld ? "" : "");
+ } else {
+ str = text.slice(0, i).join(delimiter) + delimiter + original.slice(i).join(delimiter);
+ }
+
+ if (data.svg) {
+ target.textContent = str;
+ } else {
+ target.innerHTML = fillChar === " " && ~str.indexOf(" ") ? str.split(" ").join(" ") : str;
+ }
+ }
+ };
+ TextPlugin.splitInnerHTML = splitInnerHTML;
+ TextPlugin.emojiSafeSplit = emojiSafeSplit;
+ TextPlugin.getText = getText;
+ _getGSAP$a() && gsap$c.registerPlugin(TextPlugin);
+
+ var gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,
+ TweenMaxWithCSS = gsapWithCSS.core.Tween;
+
+ exports.Back = Back;
+ exports.Bounce = Bounce;
+ exports.CSSPlugin = CSSPlugin;
+ exports.CSSRulePlugin = CSSRulePlugin;
+ exports.Circ = Circ;
+ exports.Cubic = Cubic;
+ exports.CustomEase = CustomEase;
+ exports.Draggable = Draggable;
+ exports.EasePack = EasePack;
+ exports.EaselPlugin = EaselPlugin;
+ exports.Elastic = Elastic;
+ exports.Expo = Expo;
+ exports.ExpoScaleEase = ExpoScaleEase;
+ exports.Flip = Flip;
+ exports.Linear = Linear;
+ exports.MotionPathPlugin = MotionPathPlugin;
+ exports.Observer = Observer;
+ exports.PixiPlugin = PixiPlugin;
+ exports.Power0 = Power0;
+ exports.Power1 = Power1;
+ exports.Power2 = Power2;
+ exports.Power3 = Power3;
+ exports.Power4 = Power4;
+ exports.Quad = Quad;
+ exports.Quart = Quart;
+ exports.Quint = Quint;
+ exports.RoughEase = RoughEase;
+ exports.ScrollToPlugin = ScrollToPlugin;
+ exports.ScrollTrigger = ScrollTrigger$2;
+ exports.Sine = Sine;
+ exports.SlowMo = SlowMo;
+ exports.SteppedEase = SteppedEase;
+ exports.Strong = Strong;
+ exports.TextPlugin = TextPlugin;
+ exports.TimelineLite = Timeline;
+ exports.TimelineMax = Timeline;
+ exports.TweenLite = Tween;
+ exports.TweenMax = TweenMaxWithCSS;
+ exports._getProxyProp = _getProxyProp;
+ exports._getScrollFunc = _getScrollFunc;
+ exports._getTarget = _getTarget;
+ exports._getVelocityProp = _getVelocityProp;
+ exports._horizontal = _horizontal;
+ exports._isViewport = _isViewport;
+ exports._vertical = _vertical;
+ exports.clamp = clamp;
+ exports.default = gsapWithCSS;
+ exports.distribute = distribute;
+ exports.getUnit = getUnit;
+ exports.gsap = gsapWithCSS;
+ exports.interpolate = interpolate;
+ exports.mapRange = mapRange;
+ exports.normalize = normalize;
+ exports.pipe = pipe;
+ exports.random = random;
+ exports.selector = selector;
+ exports.shuffle = shuffle;
+ exports.snap = snap;
+ exports.splitColor = splitColor;
+ exports.toArray = toArray;
+ exports.unitize = unitize;
+ exports.wrap = wrap;
+ exports.wrapYoyo = wrapYoyo;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
+
+})));
diff --git a/test_tube_merchant/module/umd/gsap.js b/test_tube_merchant/module/umd/gsap.js
new file mode 100755
index 0000000..5578107
--- /dev/null
+++ b/test_tube_merchant/module/umd/gsap.js
@@ -0,0 +1,5617 @@
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = global || self, factory(global.window = global.window || {}));
+}(this, (function (exports) { 'use strict';
+
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ subClass.__proto__ = superClass;
+ }
+
+ function _assertThisInitialized(self) {
+ if (self === void 0) {
+ throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
+ }
+
+ return self;
+ }
+
+ /*!
+ * GSAP 3.12.5
+ * https://gsap.com
+ *
+ * @license Copyright 2008-2024, GreenSock. All rights reserved.
+ * Subject to the terms at https://gsap.com/standard-license or for
+ * Club GSAP members, the agreement issued with that membership.
+ * @author: Jack Doyle, jack@greensock.com
+ */
+ var _config = {
+ autoSleep: 120,
+ force3D: "auto",
+ nullTargetWarn: 1,
+ units: {
+ lineHeight: ""
+ }
+ },
+ _defaults = {
+ duration: .5,
+ overwrite: false,
+ delay: 0
+ },
+ _suppressOverwrites,
+ _reverting,
+ _context,
+ _bigNum = 1e8,
+ _tinyNum = 1 / _bigNum,
+ _2PI = Math.PI * 2,
+ _HALF_PI = _2PI / 4,
+ _gsID = 0,
+ _sqrt = Math.sqrt,
+ _cos = Math.cos,
+ _sin = Math.sin,
+ _isString = function _isString(value) {
+ return typeof value === "string";
+ },
+ _isFunction = function _isFunction(value) {
+ return typeof value === "function";
+ },
+ _isNumber = function _isNumber(value) {
+ return typeof value === "number";
+ },
+ _isUndefined = function _isUndefined(value) {
+ return typeof value === "undefined";
+ },
+ _isObject = function _isObject(value) {
+ return typeof value === "object";
+ },
+ _isNotFalse = function _isNotFalse(value) {
+ return value !== false;
+ },
+ _windowExists = function _windowExists() {
+ return typeof window !== "undefined";
+ },
+ _isFuncOrString = function _isFuncOrString(value) {
+ return _isFunction(value) || _isString(value);
+ },
+ _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function () {},
+ _isArray = Array.isArray,
+ _strictNumExp = /(?:-?\.?\d|\.)+/gi,
+ _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,
+ _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g,
+ _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,
+ _relExp = /[+-]=-?[.\d]+/,
+ _delimitedValueExp = /[^,'"\[\]\s]+/gi,
+ _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,
+ _globalTimeline,
+ _win,
+ _coreInitted,
+ _doc,
+ _globals = {},
+ _installScope = {},
+ _coreReady,
+ _install = function _install(scope) {
+ return (_installScope = _merge(scope, _globals)) && gsap;
+ },
+ _missingPlugin = function _missingPlugin(property, value) {
+ return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()");
+ },
+ _warn = function _warn(message, suppress) {
+ return !suppress && console.warn(message);
+ },
+ _addGlobal = function _addGlobal(name, obj) {
+ return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals;
+ },
+ _emptyFunc = function _emptyFunc() {
+ return 0;
+ },
+ _startAtRevertConfig = {
+ suppressEvents: true,
+ isStart: true,
+ kill: false
+ },
+ _revertConfigNoKill = {
+ suppressEvents: true,
+ kill: false
+ },
+ _revertConfig = {
+ suppressEvents: true
+ },
+ _reservedProps = {},
+ _lazyTweens = [],
+ _lazyLookup = {},
+ _lastRenderedFrame,
+ _plugins = {},
+ _effects = {},
+ _nextGCFrame = 30,
+ _harnessPlugins = [],
+ _callbackNames = "",
+ _harness = function _harness(targets) {
+ var target = targets[0],
+ harnessPlugin,
+ i;
+ _isObject(target) || _isFunction(target) || (targets = [targets]);
+
+ if (!(harnessPlugin = (target._gsap || {}).harness)) {
+ i = _harnessPlugins.length;
+
+ while (i-- && !_harnessPlugins[i].targetTest(target)) {}
+
+ harnessPlugin = _harnessPlugins[i];
+ }
+
+ i = targets.length;
+
+ while (i--) {
+ targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1);
+ }
+
+ return targets;
+ },
+ _getCache = function _getCache(target) {
+ return target._gsap || _harness(toArray(target))[0]._gsap;
+ },
+ _getProperty = function _getProperty(target, property, v) {
+ return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v;
+ },
+ _forEachName = function _forEachName(names, func) {
+ return (names = names.split(",")).forEach(func) || names;
+ },
+ _round = function _round(value) {
+ return Math.round(value * 100000) / 100000 || 0;
+ },
+ _roundPrecise = function _roundPrecise(value) {
+ return Math.round(value * 10000000) / 10000000 || 0;
+ },
+ _parseRelative = function _parseRelative(start, value) {
+ var operator = value.charAt(0),
+ end = parseFloat(value.substr(2));
+ start = parseFloat(start);
+ return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end;
+ },
+ _arrayContainsAny = function _arrayContainsAny(toSearch, toFind) {
+ var l = toFind.length,
+ i = 0;
+
+ for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) {}
+
+ return i < l;
+ },
+ _lazyRender = function _lazyRender() {
+ var l = _lazyTweens.length,
+ a = _lazyTweens.slice(0),
+ i,
+ tween;
+
+ _lazyLookup = {};
+ _lazyTweens.length = 0;
+
+ for (i = 0; i < l; i++) {
+ tween = a[i];
+ tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);
+ }
+ },
+ _lazySafeRender = function _lazySafeRender(animation, time, suppressEvents, force) {
+ _lazyTweens.length && !_reverting && _lazyRender();
+ animation.render(time, suppressEvents, force || _reverting && time < 0 && (animation._initted || animation._startAt));
+ _lazyTweens.length && !_reverting && _lazyRender();
+ },
+ _numericIfPossible = function _numericIfPossible(value) {
+ var n = parseFloat(value);
+ return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;
+ },
+ _passThrough = function _passThrough(p) {
+ return p;
+ },
+ _setDefaults = function _setDefaults(obj, defaults) {
+ for (var p in defaults) {
+ p in obj || (obj[p] = defaults[p]);
+ }
+
+ return obj;
+ },
+ _setKeyframeDefaults = function _setKeyframeDefaults(excludeDuration) {
+ return function (obj, defaults) {
+ for (var p in defaults) {
+ p in obj || p === "duration" && excludeDuration || p === "ease" || (obj[p] = defaults[p]);
+ }
+ };
+ },
+ _merge = function _merge(base, toMerge) {
+ for (var p in toMerge) {
+ base[p] = toMerge[p];
+ }
+
+ return base;
+ },
+ _mergeDeep = function _mergeDeep(base, toMerge) {
+ for (var p in toMerge) {
+ p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);
+ }
+
+ return base;
+ },
+ _copyExcluding = function _copyExcluding(obj, excluding) {
+ var copy = {},
+ p;
+
+ for (p in obj) {
+ p in excluding || (copy[p] = obj[p]);
+ }
+
+ return copy;
+ },
+ _inheritDefaults = function _inheritDefaults(vars) {
+ var parent = vars.parent || _globalTimeline,
+ func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;
+
+ if (_isNotFalse(vars.inherit)) {
+ while (parent) {
+ func(vars, parent.vars.defaults);
+ parent = parent.parent || parent._dp;
+ }
+ }
+
+ return vars;
+ },
+ _arraysMatch = function _arraysMatch(a1, a2) {
+ var i = a1.length,
+ match = i === a2.length;
+
+ while (match && i-- && a1[i] === a2[i]) {}
+
+ return i < 0;
+ },
+ _addLinkedListItem = function _addLinkedListItem(parent, child, firstProp, lastProp, sortBy) {
+ if (firstProp === void 0) {
+ firstProp = "_first";
+ }
+
+ if (lastProp === void 0) {
+ lastProp = "_last";
+ }
+
+ var prev = parent[lastProp],
+ t;
+
+ if (sortBy) {
+ t = child[sortBy];
+
+ while (prev && prev[sortBy] > t) {
+ prev = prev._prev;
+ }
+ }
+
+ if (prev) {
+ child._next = prev._next;
+ prev._next = child;
+ } else {
+ child._next = parent[firstProp];
+ parent[firstProp] = child;
+ }
+
+ if (child._next) {
+ child._next._prev = child;
+ } else {
+ parent[lastProp] = child;
+ }
+
+ child._prev = prev;
+ child.parent = child._dp = parent;
+ return child;
+ },
+ _removeLinkedListItem = function _removeLinkedListItem(parent, child, firstProp, lastProp) {
+ if (firstProp === void 0) {
+ firstProp = "_first";
+ }
+
+ if (lastProp === void 0) {
+ lastProp = "_last";
+ }
+
+ var prev = child._prev,
+ next = child._next;
+
+ if (prev) {
+ prev._next = next;
+ } else if (parent[firstProp] === child) {
+ parent[firstProp] = next;
+ }
+
+ if (next) {
+ next._prev = prev;
+ } else if (parent[lastProp] === child) {
+ parent[lastProp] = prev;
+ }
+
+ child._next = child._prev = child.parent = null;
+ },
+ _removeFromParent = function _removeFromParent(child, onlyIfParentHasAutoRemove) {
+ child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child);
+ child._act = 0;
+ },
+ _uncache = function _uncache(animation, child) {
+ if (animation && (!child || child._end > animation._dur || child._start < 0)) {
+ var a = animation;
+
+ while (a) {
+ a._dirty = 1;
+ a = a.parent;
+ }
+ }
+
+ return animation;
+ },
+ _recacheAncestors = function _recacheAncestors(animation) {
+ var parent = animation.parent;
+
+ while (parent && parent.parent) {
+ parent._dirty = 1;
+ parent.totalDuration();
+ parent = parent.parent;
+ }
+
+ return animation;
+ },
+ _rewindStartAt = function _rewindStartAt(tween, totalTime, suppressEvents, force) {
+ return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force));
+ },
+ _hasNoPausedAncestors = function _hasNoPausedAncestors(animation) {
+ return !animation || animation._ts && _hasNoPausedAncestors(animation.parent);
+ },
+ _elapsedCycleDuration = function _elapsedCycleDuration(animation) {
+ return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0;
+ },
+ _animationCycle = function _animationCycle(tTime, cycleDuration) {
+ var whole = Math.floor(tTime /= cycleDuration);
+ return tTime && whole === tTime ? whole - 1 : whole;
+ },
+ _parentToChildTotalTime = function _parentToChildTotalTime(parentTime, child) {
+ return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur);
+ },
+ _setEnd = function _setEnd(animation) {
+ return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0));
+ },
+ _alignPlayhead = function _alignPlayhead(animation, totalTime) {
+ var parent = animation._dp;
+
+ if (parent && parent.smoothChildTiming && animation._ts) {
+ animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));
+
+ _setEnd(animation);
+
+ parent._dirty || _uncache(parent, animation);
+ }
+
+ return animation;
+ },
+ _postAddChecks = function _postAddChecks(timeline, child) {
+ var t;
+
+ if (child._time || !child._dur && child._initted || child._start < timeline._time && (child._dur || !child.add)) {
+ t = _parentToChildTotalTime(timeline.rawTime(), child);
+
+ if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {
+ child.render(t, true);
+ }
+ }
+
+ if (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {
+ if (timeline._dur < timeline.duration()) {
+ t = timeline;
+
+ while (t._dp) {
+ t.rawTime() >= 0 && t.totalTime(t._tTime);
+ t = t._dp;
+ }
+ }
+
+ timeline._zTime = -_tinyNum;
+ }
+ },
+ _addToTimeline = function _addToTimeline(timeline, child, position, skipChecks) {
+ child.parent && _removeFromParent(child);
+ child._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);
+ child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0));
+
+ _addLinkedListItem(timeline, child, "_first", "_last", timeline._sort ? "_start" : 0);
+
+ _isFromOrFromStart(child) || (timeline._recent = child);
+ skipChecks || _postAddChecks(timeline, child);
+ timeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime);
+ return timeline;
+ },
+ _scrollTrigger = function _scrollTrigger(animation, trigger) {
+ return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation);
+ },
+ _attemptInitTween = function _attemptInitTween(tween, time, force, suppressEvents, tTime) {
+ _initTween(tween, time, tTime);
+
+ if (!tween._initted) {
+ return 1;
+ }
+
+ if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) {
+ _lazyTweens.push(tween);
+
+ tween._lazy = [tTime, suppressEvents];
+ return 1;
+ }
+ },
+ _parentPlayheadIsBeforeStart = function _parentPlayheadIsBeforeStart(_ref) {
+ var parent = _ref.parent;
+ return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent));
+ },
+ _isFromOrFromStart = function _isFromOrFromStart(_ref2) {
+ var data = _ref2.data;
+ return data === "isFromStart" || data === "isStart";
+ },
+ _renderZeroDurationTween = function _renderZeroDurationTween(tween, totalTime, suppressEvents, force) {
+ var prevRatio = tween.ratio,
+ ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1,
+ repeatDelay = tween._rDelay,
+ tTime = 0,
+ pt,
+ iteration,
+ prevIteration;
+
+ if (repeatDelay && tween._repeat) {
+ tTime = _clamp(0, tween._tDur, totalTime);
+ iteration = _animationCycle(tTime, repeatDelay);
+ tween._yoyo && iteration & 1 && (ratio = 1 - ratio);
+
+ if (iteration !== _animationCycle(tween._tTime, repeatDelay)) {
+ prevRatio = 1 - ratio;
+ tween.vars.repeatRefresh && tween._initted && tween.invalidate();
+ }
+ }
+
+ if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) {
+ if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) {
+ return;
+ }
+
+ prevIteration = tween._zTime;
+ tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0);
+ suppressEvents || (suppressEvents = totalTime && !prevIteration);
+ tween.ratio = ratio;
+ tween._from && (ratio = 1 - ratio);
+ tween._time = 0;
+ tween._tTime = tTime;
+ pt = tween._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+
+ totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);
+ tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate");
+ tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat");
+
+ if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {
+ ratio && _removeFromParent(tween, 1);
+
+ if (!suppressEvents && !_reverting) {
+ _callback(tween, ratio ? "onComplete" : "onReverseComplete", true);
+
+ tween._prom && tween._prom();
+ }
+ }
+ } else if (!tween._zTime) {
+ tween._zTime = totalTime;
+ }
+ },
+ _findNextPauseTween = function _findNextPauseTween(animation, prevTime, time) {
+ var child;
+
+ if (time > prevTime) {
+ child = animation._first;
+
+ while (child && child._start <= time) {
+ if (child.data === "isPause" && child._start > prevTime) {
+ return child;
+ }
+
+ child = child._next;
+ }
+ } else {
+ child = animation._last;
+
+ while (child && child._start >= time) {
+ if (child.data === "isPause" && child._start < prevTime) {
+ return child;
+ }
+
+ child = child._prev;
+ }
+ }
+ },
+ _setDuration = function _setDuration(animation, duration, skipUncache, leavePlayhead) {
+ var repeat = animation._repeat,
+ dur = _roundPrecise(duration) || 0,
+ totalProgress = animation._tTime / animation._tDur;
+ totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);
+ animation._dur = dur;
+ animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat);
+ totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress);
+ animation.parent && _setEnd(animation);
+ skipUncache || _uncache(animation.parent, animation);
+ return animation;
+ },
+ _onUpdateTotalDuration = function _onUpdateTotalDuration(animation) {
+ return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur);
+ },
+ _zeroPosition = {
+ _start: 0,
+ endTime: _emptyFunc,
+ totalDuration: _emptyFunc
+ },
+ _parsePosition = function _parsePosition(animation, position, percentAnimation) {
+ var labels = animation.labels,
+ recent = animation._recent || _zeroPosition,
+ clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur,
+ i,
+ offset,
+ isPercent;
+
+ if (_isString(position) && (isNaN(position) || position in labels)) {
+ offset = position.charAt(0);
+ isPercent = position.substr(-1) === "%";
+ i = position.indexOf("=");
+
+ if (offset === "<" || offset === ">") {
+ i >= 0 && (position = position.replace(/=/, ""));
+ return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);
+ }
+
+ if (i < 0) {
+ position in labels || (labels[position] = clippedDuration);
+ return labels[position];
+ }
+
+ offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1));
+
+ if (isPercent && percentAnimation) {
+ offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();
+ }
+
+ return i > 1 ? _parsePosition(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset;
+ }
+
+ return position == null ? clippedDuration : +position;
+ },
+ _createTweenType = function _createTweenType(type, params, timeline) {
+ var isLegacy = _isNumber(params[1]),
+ varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),
+ vars = params[varsIndex],
+ irVars,
+ parent;
+
+ isLegacy && (vars.duration = params[1]);
+ vars.parent = timeline;
+
+ if (type) {
+ irVars = vars;
+ parent = timeline;
+
+ while (parent && !("immediateRender" in irVars)) {
+ irVars = parent.vars.defaults || {};
+ parent = _isNotFalse(parent.vars.inherit) && parent.parent;
+ }
+
+ vars.immediateRender = _isNotFalse(irVars.immediateRender);
+ type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1];
+ }
+
+ return new Tween(params[0], vars, params[varsIndex + 1]);
+ },
+ _conditionalReturn = function _conditionalReturn(value, func) {
+ return value || value === 0 ? func(value) : func;
+ },
+ _clamp = function _clamp(min, max, value) {
+ return value < min ? min : value > max ? max : value;
+ },
+ getUnit = function getUnit(value, v) {
+ return !_isString(value) || !(v = _unitExp.exec(value)) ? "" : v[1];
+ },
+ clamp = function clamp(min, max, value) {
+ return _conditionalReturn(value, function (v) {
+ return _clamp(min, max, v);
+ });
+ },
+ _slice = [].slice,
+ _isArrayLike = function _isArrayLike(value, nonEmpty) {
+ return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win;
+ },
+ _flatten = function _flatten(ar, leaveStrings, accumulator) {
+ if (accumulator === void 0) {
+ accumulator = [];
+ }
+
+ return ar.forEach(function (value) {
+ var _accumulator;
+
+ return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value);
+ }) || accumulator;
+ },
+ toArray = function toArray(value, scope, leaveStrings) {
+ return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [];
+ },
+ selector = function selector(value) {
+ value = toArray(value)[0] || _warn("Invalid scope") || {};
+ return function (v) {
+ var el = value.current || value.nativeElement || value;
+ return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value);
+ };
+ },
+ shuffle = function shuffle(a) {
+ return a.sort(function () {
+ return .5 - Math.random();
+ });
+ },
+ distribute = function distribute(v) {
+ if (_isFunction(v)) {
+ return v;
+ }
+
+ var vars = _isObject(v) ? v : {
+ each: v
+ },
+ ease = _parseEase(vars.ease),
+ from = vars.from || 0,
+ base = parseFloat(vars.base) || 0,
+ cache = {},
+ isDecimal = from > 0 && from < 1,
+ ratios = isNaN(from) || isDecimal,
+ axis = vars.axis,
+ ratioX = from,
+ ratioY = from;
+
+ if (_isString(from)) {
+ ratioX = ratioY = {
+ center: .5,
+ edges: .5,
+ end: 1
+ }[from] || 0;
+ } else if (!isDecimal && ratios) {
+ ratioX = from[0];
+ ratioY = from[1];
+ }
+
+ return function (i, target, a) {
+ var l = (a || vars).length,
+ distances = cache[l],
+ originX,
+ originY,
+ x,
+ y,
+ d,
+ j,
+ max,
+ min,
+ wrapAt;
+
+ if (!distances) {
+ wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1];
+
+ if (!wrapAt) {
+ max = -_bigNum;
+
+ while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) {}
+
+ wrapAt < l && wrapAt--;
+ }
+
+ distances = cache[l] = [];
+ originX = ratios ? Math.min(wrapAt, l) * ratioX - .5 : from % wrapAt;
+ originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : from / wrapAt | 0;
+ max = 0;
+ min = _bigNum;
+
+ for (j = 0; j < l; j++) {
+ x = j % wrapAt - originX;
+ y = originY - (j / wrapAt | 0);
+ distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x);
+ d > max && (max = d);
+ d < min && (min = d);
+ }
+
+ from === "random" && shuffle(distances);
+ distances.max = max - min;
+ distances.min = min;
+ distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1);
+ distances.b = l < 0 ? base - l : base;
+ distances.u = getUnit(vars.amount || vars.each) || 0;
+ ease = ease && l < 0 ? _invertEase(ease) : ease;
+ }
+
+ l = (distances[i] - distances.min) / distances.max || 0;
+ return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u;
+ };
+ },
+ _roundModifier = function _roundModifier(v) {
+ var p = Math.pow(10, ((v + "").split(".")[1] || "").length);
+ return function (raw) {
+ var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);
+
+ return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw));
+ };
+ },
+ snap = function snap(snapTo, value) {
+ var isArray = _isArray(snapTo),
+ radius,
+ is2D;
+
+ if (!isArray && _isObject(snapTo)) {
+ radius = isArray = snapTo.radius || _bigNum;
+
+ if (snapTo.values) {
+ snapTo = toArray(snapTo.values);
+
+ if (is2D = !_isNumber(snapTo[0])) {
+ radius *= radius;
+ }
+ } else {
+ snapTo = _roundModifier(snapTo.increment);
+ }
+ }
+
+ return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function (raw) {
+ is2D = snapTo(raw);
+ return Math.abs(is2D - raw) <= radius ? is2D : raw;
+ } : function (raw) {
+ var x = parseFloat(is2D ? raw.x : raw),
+ y = parseFloat(is2D ? raw.y : 0),
+ min = _bigNum,
+ closest = 0,
+ i = snapTo.length,
+ dx,
+ dy;
+
+ while (i--) {
+ if (is2D) {
+ dx = snapTo[i].x - x;
+ dy = snapTo[i].y - y;
+ dx = dx * dx + dy * dy;
+ } else {
+ dx = Math.abs(snapTo[i] - x);
+ }
+
+ if (dx < min) {
+ min = dx;
+ closest = i;
+ }
+ }
+
+ closest = !radius || min <= radius ? snapTo[closest] : raw;
+ return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw);
+ });
+ },
+ random = function random(min, max, roundingIncrement, returnFunction) {
+ return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function () {
+ return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction;
+ });
+ },
+ pipe = function pipe() {
+ for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) {
+ functions[_key] = arguments[_key];
+ }
+
+ return function (value) {
+ return functions.reduce(function (v, f) {
+ return f(v);
+ }, value);
+ };
+ },
+ unitize = function unitize(func, unit) {
+ return function (value) {
+ return func(parseFloat(value)) + (unit || getUnit(value));
+ };
+ },
+ normalize = function normalize(min, max, value) {
+ return mapRange(min, max, 0, 1, value);
+ },
+ _wrapArray = function _wrapArray(a, wrapper, value) {
+ return _conditionalReturn(value, function (index) {
+ return a[~~wrapper(index)];
+ });
+ },
+ wrap = function wrap(min, max, value) {
+ var range = max - min;
+ return _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, function (value) {
+ return (range + (value - min) % range) % range + min;
+ });
+ },
+ wrapYoyo = function wrapYoyo(min, max, value) {
+ var range = max - min,
+ total = range * 2;
+ return _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, function (value) {
+ value = (total + (value - min) % total) % total || 0;
+ return min + (value > range ? total - value : value);
+ });
+ },
+ _replaceRandom = function _replaceRandom(value) {
+ var prev = 0,
+ s = "",
+ i,
+ nums,
+ end,
+ isArray;
+
+ while (~(i = value.indexOf("random(", prev))) {
+ end = value.indexOf(")", i);
+ isArray = value.charAt(i + 7) === "[";
+ nums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);
+ s += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);
+ prev = end + 1;
+ }
+
+ return s + value.substr(prev, value.length - prev);
+ },
+ mapRange = function mapRange(inMin, inMax, outMin, outMax, value) {
+ var inRange = inMax - inMin,
+ outRange = outMax - outMin;
+ return _conditionalReturn(value, function (value) {
+ return outMin + ((value - inMin) / inRange * outRange || 0);
+ });
+ },
+ interpolate = function interpolate(start, end, progress, mutate) {
+ var func = isNaN(start + end) ? 0 : function (p) {
+ return (1 - p) * start + p * end;
+ };
+
+ if (!func) {
+ var isString = _isString(start),
+ master = {},
+ p,
+ i,
+ interpolators,
+ l,
+ il;
+
+ progress === true && (mutate = 1) && (progress = null);
+
+ if (isString) {
+ start = {
+ p: start
+ };
+ end = {
+ p: end
+ };
+ } else if (_isArray(start) && !_isArray(end)) {
+ interpolators = [];
+ l = start.length;
+ il = l - 2;
+
+ for (i = 1; i < l; i++) {
+ interpolators.push(interpolate(start[i - 1], start[i]));
+ }
+
+ l--;
+
+ func = function func(p) {
+ p *= l;
+ var i = Math.min(il, ~~p);
+ return interpolators[i](p - i);
+ };
+
+ progress = end;
+ } else if (!mutate) {
+ start = _merge(_isArray(start) ? [] : {}, start);
+ }
+
+ if (!interpolators) {
+ for (p in end) {
+ _addPropTween.call(master, start, p, "get", end[p]);
+ }
+
+ func = function func(p) {
+ return _renderPropTweens(p, master) || (isString ? start.p : start);
+ };
+ }
+ }
+
+ return _conditionalReturn(progress, func);
+ },
+ _getLabelInDirection = function _getLabelInDirection(timeline, fromTime, backward) {
+ var labels = timeline.labels,
+ min = _bigNum,
+ p,
+ distance,
+ label;
+
+ for (p in labels) {
+ distance = labels[p] - fromTime;
+
+ if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) {
+ label = p;
+ min = distance;
+ }
+ }
+
+ return label;
+ },
+ _callback = function _callback(animation, type, executeLazyFirst) {
+ var v = animation.vars,
+ callback = v[type],
+ prevContext = _context,
+ context = animation._ctx,
+ params,
+ scope,
+ result;
+
+ if (!callback) {
+ return;
+ }
+
+ params = v[type + "Params"];
+ scope = v.callbackScope || animation;
+ executeLazyFirst && _lazyTweens.length && _lazyRender();
+ context && (_context = context);
+ result = params ? callback.apply(scope, params) : callback.call(scope);
+ _context = prevContext;
+ return result;
+ },
+ _interrupt = function _interrupt(animation) {
+ _removeFromParent(animation);
+
+ animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);
+ animation.progress() < 1 && _callback(animation, "onInterrupt");
+ return animation;
+ },
+ _quickTween,
+ _registerPluginQueue = [],
+ _createPlugin = function _createPlugin(config) {
+ if (!config) return;
+ config = !config.name && config["default"] || config;
+
+ if (_windowExists() || config.headless) {
+ var name = config.name,
+ isFunc = _isFunction(config),
+ Plugin = name && !isFunc && config.init ? function () {
+ this._props = [];
+ } : config,
+ instanceDefaults = {
+ init: _emptyFunc,
+ render: _renderPropTweens,
+ add: _addPropTween,
+ kill: _killPropTweensOf,
+ modifier: _addPluginModifier,
+ rawVars: 0
+ },
+ statics = {
+ targetTest: 0,
+ get: 0,
+ getSetter: _getSetter,
+ aliases: {},
+ register: 0
+ };
+
+ _wake();
+
+ if (config !== Plugin) {
+ if (_plugins[name]) {
+ return;
+ }
+
+ _setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics));
+
+ _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics)));
+
+ _plugins[Plugin.prop = name] = Plugin;
+
+ if (config.targetTest) {
+ _harnessPlugins.push(Plugin);
+
+ _reservedProps[name] = 1;
+ }
+
+ name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin";
+ }
+
+ _addGlobal(name, Plugin);
+
+ config.register && config.register(gsap, Plugin, PropTween);
+ } else {
+ _registerPluginQueue.push(config);
+ }
+ },
+ _255 = 255,
+ _colorLookup = {
+ aqua: [0, _255, _255],
+ lime: [0, _255, 0],
+ silver: [192, 192, 192],
+ black: [0, 0, 0],
+ maroon: [128, 0, 0],
+ teal: [0, 128, 128],
+ blue: [0, 0, _255],
+ navy: [0, 0, 128],
+ white: [_255, _255, _255],
+ olive: [128, 128, 0],
+ yellow: [_255, _255, 0],
+ orange: [_255, 165, 0],
+ gray: [128, 128, 128],
+ purple: [128, 0, 128],
+ green: [0, 128, 0],
+ red: [_255, 0, 0],
+ pink: [_255, 192, 203],
+ cyan: [0, _255, _255],
+ transparent: [_255, _255, _255, 0]
+ },
+ _hue = function _hue(h, m1, m2) {
+ h += h < 0 ? 1 : h > 1 ? -1 : 0;
+ return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + .5 | 0;
+ },
+ splitColor = function splitColor(v, toHSL, forceAlpha) {
+ var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0,
+ r,
+ g,
+ b,
+ h,
+ s,
+ l,
+ max,
+ min,
+ d,
+ wasHSL;
+
+ if (!a) {
+ if (v.substr(-1) === ",") {
+ v = v.substr(0, v.length - 1);
+ }
+
+ if (_colorLookup[v]) {
+ a = _colorLookup[v];
+ } else if (v.charAt(0) === "#") {
+ if (v.length < 6) {
+ r = v.charAt(1);
+ g = v.charAt(2);
+ b = v.charAt(3);
+ v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : "");
+ }
+
+ if (v.length === 9) {
+ a = parseInt(v.substr(1, 6), 16);
+ return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255];
+ }
+
+ v = parseInt(v.substr(1), 16);
+ a = [v >> 16, v >> 8 & _255, v & _255];
+ } else if (v.substr(0, 3) === "hsl") {
+ a = wasHSL = v.match(_strictNumExp);
+
+ if (!toHSL) {
+ h = +a[0] % 360 / 360;
+ s = +a[1] / 100;
+ l = +a[2] / 100;
+ g = l <= .5 ? l * (s + 1) : l + s - l * s;
+ r = l * 2 - g;
+ a.length > 3 && (a[3] *= 1);
+ a[0] = _hue(h + 1 / 3, r, g);
+ a[1] = _hue(h, r, g);
+ a[2] = _hue(h - 1 / 3, r, g);
+ } else if (~v.indexOf("=")) {
+ a = v.match(_numExp);
+ forceAlpha && a.length < 4 && (a[3] = 1);
+ return a;
+ }
+ } else {
+ a = v.match(_strictNumExp) || _colorLookup.transparent;
+ }
+
+ a = a.map(Number);
+ }
+
+ if (toHSL && !wasHSL) {
+ r = a[0] / _255;
+ g = a[1] / _255;
+ b = a[2] / _255;
+ max = Math.max(r, g, b);
+ min = Math.min(r, g, b);
+ l = (max + min) / 2;
+
+ if (max === min) {
+ h = s = 0;
+ } else {
+ d = max - min;
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
+ h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;
+ h *= 60;
+ }
+
+ a[0] = ~~(h + .5);
+ a[1] = ~~(s * 100 + .5);
+ a[2] = ~~(l * 100 + .5);
+ }
+
+ forceAlpha && a.length < 4 && (a[3] = 1);
+ return a;
+ },
+ _colorOrderData = function _colorOrderData(v) {
+ var values = [],
+ c = [],
+ i = -1;
+ v.split(_colorExp).forEach(function (v) {
+ var a = v.match(_numWithUnitExp) || [];
+ values.push.apply(values, a);
+ c.push(i += a.length + 1);
+ });
+ values.c = c;
+ return values;
+ },
+ _formatColors = function _formatColors(s, toHSL, orderMatchData) {
+ var result = "",
+ colors = (s + result).match(_colorExp),
+ type = toHSL ? "hsla(" : "rgba(",
+ i = 0,
+ c,
+ shell,
+ d,
+ l;
+
+ if (!colors) {
+ return s;
+ }
+
+ colors = colors.map(function (color) {
+ return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")";
+ });
+
+ if (orderMatchData) {
+ d = _colorOrderData(s);
+ c = orderMatchData.c;
+
+ if (c.join(result) !== d.c.join(result)) {
+ shell = s.replace(_colorExp, "1").split(_numWithUnitExp);
+ l = shell.length - 1;
+
+ for (; i < l; i++) {
+ result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift());
+ }
+ }
+ }
+
+ if (!shell) {
+ shell = s.split(_colorExp);
+ l = shell.length - 1;
+
+ for (; i < l; i++) {
+ result += shell[i] + colors[i];
+ }
+ }
+
+ return result + shell[l];
+ },
+ _colorExp = function () {
+ var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b",
+ p;
+
+ for (p in _colorLookup) {
+ s += "|" + p + "\\b";
+ }
+
+ return new RegExp(s + ")", "gi");
+ }(),
+ _hslExp = /hsl[a]?\(/,
+ _colorStringFilter = function _colorStringFilter(a) {
+ var combined = a.join(" "),
+ toHSL;
+ _colorExp.lastIndex = 0;
+
+ if (_colorExp.test(combined)) {
+ toHSL = _hslExp.test(combined);
+ a[1] = _formatColors(a[1], toHSL);
+ a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1]));
+ return true;
+ }
+ },
+ _tickerActive,
+ _ticker = function () {
+ var _getTime = Date.now,
+ _lagThreshold = 500,
+ _adjustedLag = 33,
+ _startTime = _getTime(),
+ _lastUpdate = _startTime,
+ _gap = 1000 / 240,
+ _nextTime = _gap,
+ _listeners = [],
+ _id,
+ _req,
+ _raf,
+ _self,
+ _delta,
+ _i,
+ _tick = function _tick(v) {
+ var elapsed = _getTime() - _lastUpdate,
+ manual = v === true,
+ overlap,
+ dispatch,
+ time,
+ frame;
+
+ (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag);
+ _lastUpdate += elapsed;
+ time = _lastUpdate - _startTime;
+ overlap = time - _nextTime;
+
+ if (overlap > 0 || manual) {
+ frame = ++_self.frame;
+ _delta = time - _self.time * 1000;
+ _self.time = time = time / 1000;
+ _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);
+ dispatch = 1;
+ }
+
+ manual || (_id = _req(_tick));
+
+ if (dispatch) {
+ for (_i = 0; _i < _listeners.length; _i++) {
+ _listeners[_i](time, _delta, frame, v);
+ }
+ }
+ };
+
+ _self = {
+ time: 0,
+ frame: 0,
+ tick: function tick() {
+ _tick(true);
+ },
+ deltaRatio: function deltaRatio(fps) {
+ return _delta / (1000 / (fps || 60));
+ },
+ wake: function wake() {
+ if (_coreReady) {
+ if (!_coreInitted && _windowExists()) {
+ _win = _coreInitted = window;
+ _doc = _win.document || {};
+ _globals.gsap = gsap;
+ (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);
+
+ _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {});
+
+ _registerPluginQueue.forEach(_createPlugin);
+ }
+
+ _raf = typeof requestAnimationFrame !== "undefined" && requestAnimationFrame;
+ _id && _self.sleep();
+
+ _req = _raf || function (f) {
+ return setTimeout(f, _nextTime - _self.time * 1000 + 1 | 0);
+ };
+
+ _tickerActive = 1;
+
+ _tick(2);
+ }
+ },
+ sleep: function sleep() {
+ (_raf ? cancelAnimationFrame : clearTimeout)(_id);
+ _tickerActive = 0;
+ _req = _emptyFunc;
+ },
+ lagSmoothing: function lagSmoothing(threshold, adjustedLag) {
+ _lagThreshold = threshold || Infinity;
+ _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold);
+ },
+ fps: function fps(_fps) {
+ _gap = 1000 / (_fps || 240);
+ _nextTime = _self.time * 1000 + _gap;
+ },
+ add: function add(callback, once, prioritize) {
+ var func = once ? function (t, d, f, v) {
+ callback(t, d, f, v);
+
+ _self.remove(func);
+ } : callback;
+
+ _self.remove(callback);
+
+ _listeners[prioritize ? "unshift" : "push"](func);
+
+ _wake();
+
+ return func;
+ },
+ remove: function remove(callback, i) {
+ ~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;
+ },
+ _listeners: _listeners
+ };
+ return _self;
+ }(),
+ _wake = function _wake() {
+ return !_tickerActive && _ticker.wake();
+ },
+ _easeMap = {},
+ _customEaseExp = /^[\d.\-M][\d.\-,\s]/,
+ _quotesExp = /["']/g,
+ _parseObjectInString = function _parseObjectInString(value) {
+ var obj = {},
+ split = value.substr(1, value.length - 3).split(":"),
+ key = split[0],
+ i = 1,
+ l = split.length,
+ index,
+ val,
+ parsedVal;
+
+ for (; i < l; i++) {
+ val = split[i];
+ index = i !== l - 1 ? val.lastIndexOf(",") : val.length;
+ parsedVal = val.substr(0, index);
+ obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal;
+ key = val.substr(index + 1).trim();
+ }
+
+ return obj;
+ },
+ _valueInParentheses = function _valueInParentheses(value) {
+ var open = value.indexOf("(") + 1,
+ close = value.indexOf(")"),
+ nested = value.indexOf("(", open);
+ return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close);
+ },
+ _configEaseFromString = function _configEaseFromString(name) {
+ var split = (name + "").split("("),
+ ease = _easeMap[split[0]];
+ return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease;
+ },
+ _invertEase = function _invertEase(ease) {
+ return function (p) {
+ return 1 - ease(1 - p);
+ };
+ },
+ _propagateYoyoEase = function _propagateYoyoEase(timeline, isYoyo) {
+ var child = timeline._first,
+ ease;
+
+ while (child) {
+ if (child instanceof Timeline) {
+ _propagateYoyoEase(child, isYoyo);
+ } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {
+ if (child.timeline) {
+ _propagateYoyoEase(child.timeline, isYoyo);
+ } else {
+ ease = child._ease;
+ child._ease = child._yEase;
+ child._yEase = ease;
+ child._yoyo = isYoyo;
+ }
+ }
+
+ child = child._next;
+ }
+ },
+ _parseEase = function _parseEase(ease, defaultEase) {
+ return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase;
+ },
+ _insertEase = function _insertEase(names, easeIn, easeOut, easeInOut) {
+ if (easeOut === void 0) {
+ easeOut = function easeOut(p) {
+ return 1 - easeIn(1 - p);
+ };
+ }
+
+ if (easeInOut === void 0) {
+ easeInOut = function easeInOut(p) {
+ return p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2;
+ };
+ }
+
+ var ease = {
+ easeIn: easeIn,
+ easeOut: easeOut,
+ easeInOut: easeInOut
+ },
+ lowercaseName;
+
+ _forEachName(names, function (name) {
+ _easeMap[name] = _globals[name] = ease;
+ _easeMap[lowercaseName = name.toLowerCase()] = easeOut;
+
+ for (var p in ease) {
+ _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p];
+ }
+ });
+
+ return ease;
+ },
+ _easeInOutFromOut = function _easeInOutFromOut(easeOut) {
+ return function (p) {
+ return p < .5 ? (1 - easeOut(1 - p * 2)) / 2 : .5 + easeOut((p - .5) * 2) / 2;
+ };
+ },
+ _configElastic = function _configElastic(type, amplitude, period) {
+ var p1 = amplitude >= 1 ? amplitude : 1,
+ p2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),
+ p3 = p2 / _2PI * (Math.asin(1 / p1) || 0),
+ easeOut = function easeOut(p) {
+ return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1;
+ },
+ ease = type === "out" ? easeOut : type === "in" ? function (p) {
+ return 1 - easeOut(1 - p);
+ } : _easeInOutFromOut(easeOut);
+
+ p2 = _2PI / p2;
+
+ ease.config = function (amplitude, period) {
+ return _configElastic(type, amplitude, period);
+ };
+
+ return ease;
+ },
+ _configBack = function _configBack(type, overshoot) {
+ if (overshoot === void 0) {
+ overshoot = 1.70158;
+ }
+
+ var easeOut = function easeOut(p) {
+ return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0;
+ },
+ ease = type === "out" ? easeOut : type === "in" ? function (p) {
+ return 1 - easeOut(1 - p);
+ } : _easeInOutFromOut(easeOut);
+
+ ease.config = function (overshoot) {
+ return _configBack(type, overshoot);
+ };
+
+ return ease;
+ };
+
+ _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function (name, i) {
+ var power = i < 5 ? i + 1 : i;
+
+ _insertEase(name + ",Power" + (power - 1), i ? function (p) {
+ return Math.pow(p, power);
+ } : function (p) {
+ return p;
+ }, function (p) {
+ return 1 - Math.pow(1 - p, power);
+ }, function (p) {
+ return p < .5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2;
+ });
+ });
+
+ _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;
+
+ _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic());
+
+ (function (n, c) {
+ var n1 = 1 / c,
+ n2 = 2 * n1,
+ n3 = 2.5 * n1,
+ easeOut = function easeOut(p) {
+ return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + .75 : p < n3 ? n * (p -= 2.25 / c) * p + .9375 : n * Math.pow(p - 2.625 / c, 2) + .984375;
+ };
+
+ _insertEase("Bounce", function (p) {
+ return 1 - easeOut(1 - p);
+ }, easeOut);
+ })(7.5625, 2.75);
+
+ _insertEase("Expo", function (p) {
+ return p ? Math.pow(2, 10 * (p - 1)) : 0;
+ });
+
+ _insertEase("Circ", function (p) {
+ return -(_sqrt(1 - p * p) - 1);
+ });
+
+ _insertEase("Sine", function (p) {
+ return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1;
+ });
+
+ _insertEase("Back", _configBack("in"), _configBack("out"), _configBack());
+
+ _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {
+ config: function config(steps, immediateStart) {
+ if (steps === void 0) {
+ steps = 1;
+ }
+
+ var p1 = 1 / steps,
+ p2 = steps + (immediateStart ? 0 : 1),
+ p3 = immediateStart ? 1 : 0,
+ max = 1 - _tinyNum;
+ return function (p) {
+ return ((p2 * _clamp(0, max, p) | 0) + p3) * p1;
+ };
+ }
+ };
+ _defaults.ease = _easeMap["quad.out"];
+
+ _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function (name) {
+ return _callbackNames += name + "," + name + "Params,";
+ });
+
+ var GSCache = function GSCache(target, harness) {
+ this.id = _gsID++;
+ target._gsap = this;
+ this.target = target;
+ this.harness = harness;
+ this.get = harness ? harness.get : _getProperty;
+ this.set = harness ? harness.getSetter : _getSetter;
+ };
+ var Animation = function () {
+ function Animation(vars) {
+ this.vars = vars;
+ this._delay = +vars.delay || 0;
+
+ if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) {
+ this._rDelay = vars.repeatDelay || 0;
+ this._yoyo = !!vars.yoyo || !!vars.yoyoEase;
+ }
+
+ this._ts = 1;
+
+ _setDuration(this, +vars.duration, 1, 1);
+
+ this.data = vars.data;
+
+ if (_context) {
+ this._ctx = _context;
+
+ _context.data.push(this);
+ }
+
+ _tickerActive || _ticker.wake();
+ }
+
+ var _proto = Animation.prototype;
+
+ _proto.delay = function delay(value) {
+ if (value || value === 0) {
+ this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay);
+ this._delay = value;
+ return this;
+ }
+
+ return this._delay;
+ };
+
+ _proto.duration = function duration(value) {
+ return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;
+ };
+
+ _proto.totalDuration = function totalDuration(value) {
+ if (!arguments.length) {
+ return this._tDur;
+ }
+
+ this._dirty = 0;
+ return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1));
+ };
+
+ _proto.totalTime = function totalTime(_totalTime, suppressEvents) {
+ _wake();
+
+ if (!arguments.length) {
+ return this._tTime;
+ }
+
+ var parent = this._dp;
+
+ if (parent && parent.smoothChildTiming && this._ts) {
+ _alignPlayhead(this, _totalTime);
+
+ !parent._dp || parent.parent || _postAddChecks(parent, this);
+
+ while (parent && parent.parent) {
+ if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {
+ parent.totalTime(parent._tTime, true);
+ }
+
+ parent = parent.parent;
+ }
+
+ if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) {
+ _addToTimeline(this._dp, this, this._start - this._delay);
+ }
+ }
+
+ if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !_totalTime && !this._initted && (this.add || this._ptLookup)) {
+ this._ts || (this._pTime = _totalTime);
+
+ _lazySafeRender(this, _totalTime, suppressEvents);
+ }
+
+ return this;
+ };
+
+ _proto.time = function time(value, suppressEvents) {
+ return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time;
+ };
+
+ _proto.totalProgress = function totalProgress(value, suppressEvents) {
+ return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() > 0 ? 1 : 0;
+ };
+
+ _proto.progress = function progress(value, suppressEvents) {
+ return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0;
+ };
+
+ _proto.iteration = function iteration(value, suppressEvents) {
+ var cycleDuration = this.duration() + this._rDelay;
+
+ return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;
+ };
+
+ _proto.timeScale = function timeScale(value, suppressEvents) {
+ if (!arguments.length) {
+ return this._rts === -_tinyNum ? 0 : this._rts;
+ }
+
+ if (this._rts === value) {
+ return this;
+ }
+
+ var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime;
+ this._rts = +value || 0;
+ this._ts = this._ps || value === -_tinyNum ? 0 : this._rts;
+ this.totalTime(_clamp(-Math.abs(this._delay), this._tDur, tTime), suppressEvents !== false);
+
+ _setEnd(this);
+
+ return _recacheAncestors(this);
+ };
+
+ _proto.paused = function paused(value) {
+ if (!arguments.length) {
+ return this._ps;
+ }
+
+ if (this._ps !== value) {
+ this._ps = value;
+
+ if (value) {
+ this._pTime = this._tTime || Math.max(-this._delay, this.rawTime());
+ this._ts = this._act = 0;
+ } else {
+ _wake();
+
+ this._ts = this._rts;
+ this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum));
+ }
+ }
+
+ return this;
+ };
+
+ _proto.startTime = function startTime(value) {
+ if (arguments.length) {
+ this._start = value;
+ var parent = this.parent || this._dp;
+ parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);
+ return this;
+ }
+
+ return this._start;
+ };
+
+ _proto.endTime = function endTime(includeRepeats) {
+ return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);
+ };
+
+ _proto.rawTime = function rawTime(wrapRepeats) {
+ var parent = this.parent || this._dp;
+ return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);
+ };
+
+ _proto.revert = function revert(config) {
+ if (config === void 0) {
+ config = _revertConfig;
+ }
+
+ var prevIsReverting = _reverting;
+ _reverting = config;
+
+ if (this._initted || this._startAt) {
+ this.timeline && this.timeline.revert(config);
+ this.totalTime(-0.01, config.suppressEvents);
+ }
+
+ this.data !== "nested" && config.kill !== false && this.kill();
+ _reverting = prevIsReverting;
+ return this;
+ };
+
+ _proto.globalTime = function globalTime(rawTime) {
+ var animation = this,
+ time = arguments.length ? rawTime : animation.rawTime();
+
+ while (animation) {
+ time = animation._start + time / (Math.abs(animation._ts) || 1);
+ animation = animation._dp;
+ }
+
+ return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time;
+ };
+
+ _proto.repeat = function repeat(value) {
+ if (arguments.length) {
+ this._repeat = value === Infinity ? -2 : value;
+ return _onUpdateTotalDuration(this);
+ }
+
+ return this._repeat === -2 ? Infinity : this._repeat;
+ };
+
+ _proto.repeatDelay = function repeatDelay(value) {
+ if (arguments.length) {
+ var time = this._time;
+ this._rDelay = value;
+
+ _onUpdateTotalDuration(this);
+
+ return time ? this.time(time) : this;
+ }
+
+ return this._rDelay;
+ };
+
+ _proto.yoyo = function yoyo(value) {
+ if (arguments.length) {
+ this._yoyo = value;
+ return this;
+ }
+
+ return this._yoyo;
+ };
+
+ _proto.seek = function seek(position, suppressEvents) {
+ return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));
+ };
+
+ _proto.restart = function restart(includeDelay, suppressEvents) {
+ return this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));
+ };
+
+ _proto.play = function play(from, suppressEvents) {
+ from != null && this.seek(from, suppressEvents);
+ return this.reversed(false).paused(false);
+ };
+
+ _proto.reverse = function reverse(from, suppressEvents) {
+ from != null && this.seek(from || this.totalDuration(), suppressEvents);
+ return this.reversed(true).paused(false);
+ };
+
+ _proto.pause = function pause(atTime, suppressEvents) {
+ atTime != null && this.seek(atTime, suppressEvents);
+ return this.paused(true);
+ };
+
+ _proto.resume = function resume() {
+ return this.paused(false);
+ };
+
+ _proto.reversed = function reversed(value) {
+ if (arguments.length) {
+ !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0));
+ return this;
+ }
+
+ return this._rts < 0;
+ };
+
+ _proto.invalidate = function invalidate() {
+ this._initted = this._act = 0;
+ this._zTime = -_tinyNum;
+ return this;
+ };
+
+ _proto.isActive = function isActive() {
+ var parent = this.parent || this._dp,
+ start = this._start,
+ rawTime;
+ return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum);
+ };
+
+ _proto.eventCallback = function eventCallback(type, callback, params) {
+ var vars = this.vars;
+
+ if (arguments.length > 1) {
+ if (!callback) {
+ delete vars[type];
+ } else {
+ vars[type] = callback;
+ params && (vars[type + "Params"] = params);
+ type === "onUpdate" && (this._onUpdate = callback);
+ }
+
+ return this;
+ }
+
+ return vars[type];
+ };
+
+ _proto.then = function then(onFulfilled) {
+ var self = this;
+ return new Promise(function (resolve) {
+ var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,
+ _resolve = function _resolve() {
+ var _then = self.then;
+ self.then = null;
+ _isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);
+ resolve(f);
+ self.then = _then;
+ };
+
+ if (self._initted && self.totalProgress() === 1 && self._ts >= 0 || !self._tTime && self._ts < 0) {
+ _resolve();
+ } else {
+ self._prom = _resolve;
+ }
+ });
+ };
+
+ _proto.kill = function kill() {
+ _interrupt(this);
+ };
+
+ return Animation;
+ }();
+
+ _setDefaults(Animation.prototype, {
+ _time: 0,
+ _start: 0,
+ _end: 0,
+ _tTime: 0,
+ _tDur: 0,
+ _dirty: 0,
+ _repeat: 0,
+ _yoyo: false,
+ parent: null,
+ _initted: false,
+ _rDelay: 0,
+ _ts: 1,
+ _dp: 0,
+ ratio: 0,
+ _zTime: -_tinyNum,
+ _prom: 0,
+ _ps: false,
+ _rts: 1
+ });
+
+ var Timeline = function (_Animation) {
+ _inheritsLoose(Timeline, _Animation);
+
+ function Timeline(vars, position) {
+ var _this;
+
+ if (vars === void 0) {
+ vars = {};
+ }
+
+ _this = _Animation.call(this, vars) || this;
+ _this.labels = {};
+ _this.smoothChildTiming = !!vars.smoothChildTiming;
+ _this.autoRemoveChildren = !!vars.autoRemoveChildren;
+ _this._sort = _isNotFalse(vars.sortChildren);
+ _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position);
+ vars.reversed && _this.reverse();
+ vars.paused && _this.paused(true);
+ vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger);
+ return _this;
+ }
+
+ var _proto2 = Timeline.prototype;
+
+ _proto2.to = function to(targets, vars, position) {
+ _createTweenType(0, arguments, this);
+
+ return this;
+ };
+
+ _proto2.from = function from(targets, vars, position) {
+ _createTweenType(1, arguments, this);
+
+ return this;
+ };
+
+ _proto2.fromTo = function fromTo(targets, fromVars, toVars, position) {
+ _createTweenType(2, arguments, this);
+
+ return this;
+ };
+
+ _proto2.set = function set(targets, vars, position) {
+ vars.duration = 0;
+ vars.parent = this;
+ _inheritDefaults(vars).repeatDelay || (vars.repeat = 0);
+ vars.immediateRender = !!vars.immediateRender;
+ new Tween(targets, vars, _parsePosition(this, position), 1);
+ return this;
+ };
+
+ _proto2.call = function call(callback, params, position) {
+ return _addToTimeline(this, Tween.delayedCall(0, callback, params), position);
+ };
+
+ _proto2.staggerTo = function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
+ vars.duration = duration;
+ vars.stagger = vars.stagger || stagger;
+ vars.onComplete = onCompleteAll;
+ vars.onCompleteParams = onCompleteAllParams;
+ vars.parent = this;
+ new Tween(targets, vars, _parsePosition(this, position));
+ return this;
+ };
+
+ _proto2.staggerFrom = function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {
+ vars.runBackwards = 1;
+ _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);
+ return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);
+ };
+
+ _proto2.staggerFromTo = function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {
+ toVars.startAt = fromVars;
+ _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);
+ return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);
+ };
+
+ _proto2.render = function render(totalTime, suppressEvents, force) {
+ var prevTime = this._time,
+ tDur = this._dirty ? this.totalDuration() : this._tDur,
+ dur = this._dur,
+ tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime),
+ crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur),
+ time,
+ child,
+ next,
+ iteration,
+ cycleDuration,
+ prevPaused,
+ pauseTween,
+ timeScale,
+ prevStart,
+ prevIteration,
+ yoyo,
+ isYoyo;
+ this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);
+
+ if (tTime !== this._tTime || force || crossingStart) {
+ if (prevTime !== this._time && dur) {
+ tTime += this._time - prevTime;
+ totalTime += this._time - prevTime;
+ }
+
+ time = tTime;
+ prevStart = this._start;
+ timeScale = this._ts;
+ prevPaused = !timeScale;
+
+ if (crossingStart) {
+ dur || (prevTime = this._zTime);
+ (totalTime || !suppressEvents) && (this._zTime = totalTime);
+ }
+
+ if (this._repeat) {
+ yoyo = this._yoyo;
+ cycleDuration = dur + this._rDelay;
+
+ if (this._repeat < -1 && totalTime < 0) {
+ return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
+ }
+
+ time = _roundPrecise(tTime % cycleDuration);
+
+ if (tTime === tDur) {
+ iteration = this._repeat;
+ time = dur;
+ } else {
+ iteration = ~~(tTime / cycleDuration);
+
+ if (iteration && iteration === tTime / cycleDuration) {
+ time = dur;
+ iteration--;
+ }
+
+ time > dur && (time = dur);
+ }
+
+ prevIteration = _animationCycle(this._tTime, cycleDuration);
+ !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration);
+
+ if (yoyo && iteration & 1) {
+ time = dur - time;
+ isYoyo = 1;
+ }
+
+ if (iteration !== prevIteration && !this._lock) {
+ var rewinding = yoyo && prevIteration & 1,
+ doesWrap = rewinding === (yoyo && iteration & 1);
+ iteration < prevIteration && (rewinding = !rewinding);
+ prevTime = rewinding ? 0 : tTime % dur ? dur : tTime;
+ this._lock = 1;
+ this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;
+ this._tTime = tTime;
+ !suppressEvents && this.parent && _callback(this, "onRepeat");
+ this.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);
+
+ if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) {
+ return this;
+ }
+
+ dur = this._dur;
+ tDur = this._tDur;
+
+ if (doesWrap) {
+ this._lock = 2;
+ prevTime = rewinding ? dur : -0.0001;
+ this.render(prevTime, true);
+ this.vars.repeatRefresh && !isYoyo && this.invalidate();
+ }
+
+ this._lock = 0;
+
+ if (!this._ts && !prevPaused) {
+ return this;
+ }
+
+ _propagateYoyoEase(this, isYoyo);
+ }
+ }
+
+ if (this._hasPause && !this._forcing && this._lock < 2) {
+ pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));
+
+ if (pauseTween) {
+ tTime -= time - (time = pauseTween._start);
+ }
+ }
+
+ this._tTime = tTime;
+ this._time = time;
+ this._act = !timeScale;
+
+ if (!this._initted) {
+ this._onUpdate = this.vars.onUpdate;
+ this._initted = 1;
+ this._zTime = totalTime;
+ prevTime = 0;
+ }
+
+ if (!prevTime && time && !suppressEvents && !iteration) {
+ _callback(this, "onStart");
+
+ if (this._tTime !== tTime) {
+ return this;
+ }
+ }
+
+ if (time >= prevTime && totalTime >= 0) {
+ child = this._first;
+
+ while (child) {
+ next = child._next;
+
+ if ((child._act || time >= child._start) && child._ts && pauseTween !== child) {
+ if (child.parent !== this) {
+ return this.render(totalTime, suppressEvents, force);
+ }
+
+ child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);
+
+ if (time !== this._time || !this._ts && !prevPaused) {
+ pauseTween = 0;
+ next && (tTime += this._zTime = -_tinyNum);
+ break;
+ }
+ }
+
+ child = next;
+ }
+ } else {
+ child = this._last;
+ var adjustedTime = totalTime < 0 ? totalTime : time;
+
+ while (child) {
+ next = child._prev;
+
+ if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {
+ if (child.parent !== this) {
+ return this.render(totalTime, suppressEvents, force);
+ }
+
+ child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && (child._initted || child._startAt));
+
+ if (time !== this._time || !this._ts && !prevPaused) {
+ pauseTween = 0;
+ next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum);
+ break;
+ }
+ }
+
+ child = next;
+ }
+ }
+
+ if (pauseTween && !suppressEvents) {
+ this.pause();
+ pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;
+
+ if (this._ts) {
+ this._start = prevStart;
+
+ _setEnd(this);
+
+ return this.render(totalTime, suppressEvents, force);
+ }
+ }
+
+ this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true);
+ if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) {
+ (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
+
+ if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {
+ _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true);
+
+ this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
+ }
+ }
+ }
+
+ return this;
+ };
+
+ _proto2.add = function add(child, position) {
+ var _this2 = this;
+
+ _isNumber(position) || (position = _parsePosition(this, position, child));
+
+ if (!(child instanceof Animation)) {
+ if (_isArray(child)) {
+ child.forEach(function (obj) {
+ return _this2.add(obj, position);
+ });
+ return this;
+ }
+
+ if (_isString(child)) {
+ return this.addLabel(child, position);
+ }
+
+ if (_isFunction(child)) {
+ child = Tween.delayedCall(0, child);
+ } else {
+ return this;
+ }
+ }
+
+ return this !== child ? _addToTimeline(this, child, position) : this;
+ };
+
+ _proto2.getChildren = function getChildren(nested, tweens, timelines, ignoreBeforeTime) {
+ if (nested === void 0) {
+ nested = true;
+ }
+
+ if (tweens === void 0) {
+ tweens = true;
+ }
+
+ if (timelines === void 0) {
+ timelines = true;
+ }
+
+ if (ignoreBeforeTime === void 0) {
+ ignoreBeforeTime = -_bigNum;
+ }
+
+ var a = [],
+ child = this._first;
+
+ while (child) {
+ if (child._start >= ignoreBeforeTime) {
+ if (child instanceof Tween) {
+ tweens && a.push(child);
+ } else {
+ timelines && a.push(child);
+ nested && a.push.apply(a, child.getChildren(true, tweens, timelines));
+ }
+ }
+
+ child = child._next;
+ }
+
+ return a;
+ };
+
+ _proto2.getById = function getById(id) {
+ var animations = this.getChildren(1, 1, 1),
+ i = animations.length;
+
+ while (i--) {
+ if (animations[i].vars.id === id) {
+ return animations[i];
+ }
+ }
+ };
+
+ _proto2.remove = function remove(child) {
+ if (_isString(child)) {
+ return this.removeLabel(child);
+ }
+
+ if (_isFunction(child)) {
+ return this.killTweensOf(child);
+ }
+
+ _removeLinkedListItem(this, child);
+
+ if (child === this._recent) {
+ this._recent = this._last;
+ }
+
+ return _uncache(this);
+ };
+
+ _proto2.totalTime = function totalTime(_totalTime2, suppressEvents) {
+ if (!arguments.length) {
+ return this._tTime;
+ }
+
+ this._forcing = 1;
+
+ if (!this._dp && this._ts) {
+ this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts));
+ }
+
+ _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents);
+
+ this._forcing = 0;
+ return this;
+ };
+
+ _proto2.addLabel = function addLabel(label, position) {
+ this.labels[label] = _parsePosition(this, position);
+ return this;
+ };
+
+ _proto2.removeLabel = function removeLabel(label) {
+ delete this.labels[label];
+ return this;
+ };
+
+ _proto2.addPause = function addPause(position, callback, params) {
+ var t = Tween.delayedCall(0, callback || _emptyFunc, params);
+ t.data = "isPause";
+ this._hasPause = 1;
+ return _addToTimeline(this, t, _parsePosition(this, position));
+ };
+
+ _proto2.removePause = function removePause(position) {
+ var child = this._first;
+ position = _parsePosition(this, position);
+
+ while (child) {
+ if (child._start === position && child.data === "isPause") {
+ _removeFromParent(child);
+ }
+
+ child = child._next;
+ }
+ };
+
+ _proto2.killTweensOf = function killTweensOf(targets, props, onlyActive) {
+ var tweens = this.getTweensOf(targets, onlyActive),
+ i = tweens.length;
+
+ while (i--) {
+ _overwritingTween !== tweens[i] && tweens[i].kill(targets, props);
+ }
+
+ return this;
+ };
+
+ _proto2.getTweensOf = function getTweensOf(targets, onlyActive) {
+ var a = [],
+ parsedTargets = toArray(targets),
+ child = this._first,
+ isGlobalTime = _isNumber(onlyActive),
+ children;
+
+ while (child) {
+ if (child instanceof Tween) {
+ if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) {
+ a.push(child);
+ }
+ } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {
+ a.push.apply(a, children);
+ }
+
+ child = child._next;
+ }
+
+ return a;
+ };
+
+ _proto2.tweenTo = function tweenTo(position, vars) {
+ vars = vars || {};
+
+ var tl = this,
+ endTime = _parsePosition(tl, position),
+ _vars = vars,
+ startAt = _vars.startAt,
+ _onStart = _vars.onStart,
+ onStartParams = _vars.onStartParams,
+ immediateRender = _vars.immediateRender,
+ initted,
+ tween = Tween.to(tl, _setDefaults({
+ ease: vars.ease || "none",
+ lazy: false,
+ immediateRender: false,
+ time: endTime,
+ overwrite: "auto",
+ duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum,
+ onStart: function onStart() {
+ tl.pause();
+
+ if (!initted) {
+ var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale());
+ tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);
+ initted = 1;
+ }
+
+ _onStart && _onStart.apply(tween, onStartParams || []);
+ }
+ }, vars));
+
+ return immediateRender ? tween.render(0) : tween;
+ };
+
+ _proto2.tweenFromTo = function tweenFromTo(fromPosition, toPosition, vars) {
+ return this.tweenTo(toPosition, _setDefaults({
+ startAt: {
+ time: _parsePosition(this, fromPosition)
+ }
+ }, vars));
+ };
+
+ _proto2.recent = function recent() {
+ return this._recent;
+ };
+
+ _proto2.nextLabel = function nextLabel(afterTime) {
+ if (afterTime === void 0) {
+ afterTime = this._time;
+ }
+
+ return _getLabelInDirection(this, _parsePosition(this, afterTime));
+ };
+
+ _proto2.previousLabel = function previousLabel(beforeTime) {
+ if (beforeTime === void 0) {
+ beforeTime = this._time;
+ }
+
+ return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);
+ };
+
+ _proto2.currentLabel = function currentLabel(value) {
+ return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);
+ };
+
+ _proto2.shiftChildren = function shiftChildren(amount, adjustLabels, ignoreBeforeTime) {
+ if (ignoreBeforeTime === void 0) {
+ ignoreBeforeTime = 0;
+ }
+
+ var child = this._first,
+ labels = this.labels,
+ p;
+
+ while (child) {
+ if (child._start >= ignoreBeforeTime) {
+ child._start += amount;
+ child._end += amount;
+ }
+
+ child = child._next;
+ }
+
+ if (adjustLabels) {
+ for (p in labels) {
+ if (labels[p] >= ignoreBeforeTime) {
+ labels[p] += amount;
+ }
+ }
+ }
+
+ return _uncache(this);
+ };
+
+ _proto2.invalidate = function invalidate(soft) {
+ var child = this._first;
+ this._lock = 0;
+
+ while (child) {
+ child.invalidate(soft);
+ child = child._next;
+ }
+
+ return _Animation.prototype.invalidate.call(this, soft);
+ };
+
+ _proto2.clear = function clear(includeLabels) {
+ if (includeLabels === void 0) {
+ includeLabels = true;
+ }
+
+ var child = this._first,
+ next;
+
+ while (child) {
+ next = child._next;
+ this.remove(child);
+ child = next;
+ }
+
+ this._dp && (this._time = this._tTime = this._pTime = 0);
+ includeLabels && (this.labels = {});
+ return _uncache(this);
+ };
+
+ _proto2.totalDuration = function totalDuration(value) {
+ var max = 0,
+ self = this,
+ child = self._last,
+ prevStart = _bigNum,
+ prev,
+ start,
+ parent;
+
+ if (arguments.length) {
+ return self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));
+ }
+
+ if (self._dirty) {
+ parent = self.parent;
+
+ while (child) {
+ prev = child._prev;
+ child._dirty && child.totalDuration();
+ start = child._start;
+
+ if (start > prevStart && self._sort && child._ts && !self._lock) {
+ self._lock = 1;
+ _addToTimeline(self, child, start - child._delay, 1)._lock = 0;
+ } else {
+ prevStart = start;
+ }
+
+ if (start < 0 && child._ts) {
+ max -= start;
+
+ if (!parent && !self._dp || parent && parent.smoothChildTiming) {
+ self._start += start / self._ts;
+ self._time -= start;
+ self._tTime -= start;
+ }
+
+ self.shiftChildren(-start, false, -1e999);
+ prevStart = 0;
+ }
+
+ child._end > max && child._ts && (max = child._end);
+ child = prev;
+ }
+
+ _setDuration(self, self === _globalTimeline && self._time > max ? self._time : max, 1, 1);
+
+ self._dirty = 0;
+ }
+
+ return self._tDur;
+ };
+
+ Timeline.updateRoot = function updateRoot(time) {
+ if (_globalTimeline._ts) {
+ _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));
+
+ _lastRenderedFrame = _ticker.frame;
+ }
+
+ if (_ticker.frame >= _nextGCFrame) {
+ _nextGCFrame += _config.autoSleep || 120;
+ var child = _globalTimeline._first;
+ if (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {
+ while (child && !child._ts) {
+ child = child._next;
+ }
+
+ child || _ticker.sleep();
+ }
+ }
+ };
+
+ return Timeline;
+ }(Animation);
+
+ _setDefaults(Timeline.prototype, {
+ _lock: 0,
+ _hasPause: 0,
+ _forcing: 0
+ });
+
+ var _addComplexStringPropTween = function _addComplexStringPropTween(target, prop, start, end, setter, stringFilter, funcParam) {
+ var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),
+ index = 0,
+ matchIndex = 0,
+ result,
+ startNums,
+ color,
+ endNum,
+ chunk,
+ startNum,
+ hasRandom,
+ a;
+ pt.b = start;
+ pt.e = end;
+ start += "";
+ end += "";
+
+ if (hasRandom = ~end.indexOf("random(")) {
+ end = _replaceRandom(end);
+ }
+
+ if (stringFilter) {
+ a = [start, end];
+ stringFilter(a, target, prop);
+ start = a[0];
+ end = a[1];
+ }
+
+ startNums = start.match(_complexStringNumExp) || [];
+
+ while (result = _complexStringNumExp.exec(end)) {
+ endNum = result[0];
+ chunk = end.substring(index, result.index);
+
+ if (color) {
+ color = (color + 1) % 5;
+ } else if (chunk.substr(-5) === "rgba(") {
+ color = 1;
+ }
+
+ if (endNum !== startNums[matchIndex++]) {
+ startNum = parseFloat(startNums[matchIndex - 1]) || 0;
+ pt._pt = {
+ _next: pt._pt,
+ p: chunk || matchIndex === 1 ? chunk : ",",
+ s: startNum,
+ c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,
+ m: color && color < 4 ? Math.round : 0
+ };
+ index = _complexStringNumExp.lastIndex;
+ }
+ }
+
+ pt.c = index < end.length ? end.substring(index, end.length) : "";
+ pt.fp = funcParam;
+
+ if (_relExp.test(end) || hasRandom) {
+ pt.e = 0;
+ }
+
+ this._pt = pt;
+ return pt;
+ },
+ _addPropTween = function _addPropTween(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {
+ _isFunction(end) && (end = end(index || 0, target, targets));
+ var currentValue = target[prop],
+ parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](),
+ setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,
+ pt;
+
+ if (_isString(end)) {
+ if (~end.indexOf("random(")) {
+ end = _replaceRandom(end);
+ }
+
+ if (end.charAt(1) === "=") {
+ pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);
+
+ if (pt || pt === 0) {
+ end = pt;
+ }
+ }
+ }
+
+ if (!optional || parsedStart !== end || _forceAllPropTweens) {
+ if (!isNaN(parsedStart * end) && end !== "") {
+ pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter);
+ funcParam && (pt.fp = funcParam);
+ modifier && pt.modifier(modifier, this, target);
+ return this._pt = pt;
+ }
+
+ !currentValue && !(prop in target) && _missingPlugin(prop, end);
+ return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);
+ }
+ },
+ _processVars = function _processVars(vars, index, target, targets, tween) {
+ _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));
+
+ if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) {
+ return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;
+ }
+
+ var copy = {},
+ p;
+
+ for (p in vars) {
+ copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);
+ }
+
+ return copy;
+ },
+ _checkPlugin = function _checkPlugin(property, vars, tween, index, target, targets) {
+ var plugin, pt, ptLookup, i;
+
+ if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {
+ tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);
+
+ if (tween !== _quickTween) {
+ ptLookup = tween._ptLookup[tween._targets.indexOf(target)];
+ i = plugin._props.length;
+
+ while (i--) {
+ ptLookup[plugin._props[i]] = pt;
+ }
+ }
+ }
+
+ return plugin;
+ },
+ _overwritingTween,
+ _forceAllPropTweens,
+ _initTween = function _initTween(tween, time, tTime) {
+ var vars = tween.vars,
+ ease = vars.ease,
+ startAt = vars.startAt,
+ immediateRender = vars.immediateRender,
+ lazy = vars.lazy,
+ onUpdate = vars.onUpdate,
+ runBackwards = vars.runBackwards,
+ yoyoEase = vars.yoyoEase,
+ keyframes = vars.keyframes,
+ autoRevert = vars.autoRevert,
+ dur = tween._dur,
+ prevStartAt = tween._startAt,
+ targets = tween._targets,
+ parent = tween.parent,
+ fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets,
+ autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites,
+ tl = tween.timeline,
+ cleanVars,
+ i,
+ p,
+ pt,
+ target,
+ hasPriority,
+ gsData,
+ harness,
+ plugin,
+ ptLookup,
+ index,
+ harnessVars,
+ overwritten;
+ tl && (!keyframes || !ease) && (ease = "none");
+ tween._ease = _parseEase(ease, _defaults.ease);
+ tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;
+
+ if (yoyoEase && tween._yoyo && !tween._repeat) {
+ yoyoEase = tween._yEase;
+ tween._yEase = tween._ease;
+ tween._ease = yoyoEase;
+ }
+
+ tween._from = !tl && !!vars.runBackwards;
+
+ if (!tl || keyframes && !vars.stagger) {
+ harness = targets[0] ? _getCache(targets[0]).harness : 0;
+ harnessVars = harness && vars[harness.prop];
+ cleanVars = _copyExcluding(vars, _reservedProps);
+
+ if (prevStartAt) {
+ prevStartAt._zTime < 0 && prevStartAt.progress(1);
+ time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig);
+ prevStartAt._lazy = 0;
+ }
+
+ if (startAt) {
+ _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({
+ data: "isStart",
+ overwrite: false,
+ parent: parent,
+ immediateRender: true,
+ lazy: !prevStartAt && _isNotFalse(lazy),
+ startAt: null,
+ delay: 0,
+ onUpdate: onUpdate && function () {
+ return _callback(tween, "onUpdate");
+ },
+ stagger: 0
+ }, startAt)));
+
+ tween._startAt._dp = 0;
+ tween._startAt._sat = tween;
+ time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill);
+
+ if (immediateRender) {
+ if (dur && time <= 0 && tTime <= 0) {
+ time && (tween._zTime = time);
+ return;
+ }
+ }
+ } else if (runBackwards && dur) {
+ if (!prevStartAt) {
+ time && (immediateRender = false);
+ p = _setDefaults({
+ overwrite: false,
+ data: "isFromStart",
+ lazy: immediateRender && !prevStartAt && _isNotFalse(lazy),
+ immediateRender: immediateRender,
+ stagger: 0,
+ parent: parent
+ }, cleanVars);
+ harnessVars && (p[harness.prop] = harnessVars);
+
+ _removeFromParent(tween._startAt = Tween.set(targets, p));
+
+ tween._startAt._dp = 0;
+ tween._startAt._sat = tween;
+ time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));
+ tween._zTime = time;
+
+ if (!immediateRender) {
+ _initTween(tween._startAt, _tinyNum, _tinyNum);
+ } else if (!time) {
+ return;
+ }
+ }
+ }
+
+ tween._pt = tween._ptCache = 0;
+ lazy = dur && _isNotFalse(lazy) || lazy && !dur;
+
+ for (i = 0; i < targets.length; i++) {
+ target = targets[i];
+ gsData = target._gsap || _harness(targets)[i]._gsap;
+ tween._ptLookup[i] = ptLookup = {};
+ _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender();
+ index = fullTargets === targets ? i : fullTargets.indexOf(target);
+
+ if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {
+ tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);
+
+ plugin._props.forEach(function (name) {
+ ptLookup[name] = pt;
+ });
+
+ plugin.priority && (hasPriority = 1);
+ }
+
+ if (!harness || harnessVars) {
+ for (p in cleanVars) {
+ if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {
+ plugin.priority && (hasPriority = 1);
+ } else {
+ ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter);
+ }
+ }
+ }
+
+ tween._op && tween._op[i] && tween.kill(target, tween._op[i]);
+
+ if (autoOverwrite && tween._pt) {
+ _overwritingTween = tween;
+
+ _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time));
+
+ overwritten = !tween.parent;
+ _overwritingTween = 0;
+ }
+
+ tween._pt && lazy && (_lazyLookup[gsData.id] = 1);
+ }
+
+ hasPriority && _sortPropTweensByPriority(tween);
+ tween._onInit && tween._onInit(tween);
+ }
+
+ tween._onUpdate = onUpdate;
+ tween._initted = (!tween._op || tween._pt) && !overwritten;
+ keyframes && time <= 0 && tl.render(_bigNum, true, true);
+ },
+ _updatePropTweens = function _updatePropTweens(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) {
+ var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property],
+ pt,
+ rootPT,
+ lookup,
+ i;
+
+ if (!ptCache) {
+ ptCache = tween._ptCache[property] = [];
+ lookup = tween._ptLookup;
+ i = tween._targets.length;
+
+ while (i--) {
+ pt = lookup[i][property];
+
+ if (pt && pt.d && pt.d._pt) {
+ pt = pt.d._pt;
+
+ while (pt && pt.p !== property && pt.fp !== property) {
+ pt = pt._next;
+ }
+ }
+
+ if (!pt) {
+ _forceAllPropTweens = 1;
+ tween.vars[property] = "+=0";
+
+ _initTween(tween, time);
+
+ _forceAllPropTweens = 0;
+ return skipRecursion ? _warn(property + " not eligible for reset") : 1;
+ }
+
+ ptCache.push(pt);
+ }
+ }
+
+ i = ptCache.length;
+
+ while (i--) {
+ rootPT = ptCache[i];
+ pt = rootPT._pt || rootPT;
+ pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;
+ pt.c = value - pt.s;
+ rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e));
+ rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b));
+ }
+ },
+ _addAliasesToVars = function _addAliasesToVars(targets, vars) {
+ var harness = targets[0] ? _getCache(targets[0]).harness : 0,
+ propertyAliases = harness && harness.aliases,
+ copy,
+ p,
+ i,
+ aliases;
+
+ if (!propertyAliases) {
+ return vars;
+ }
+
+ copy = _merge({}, vars);
+
+ for (p in propertyAliases) {
+ if (p in copy) {
+ aliases = propertyAliases[p].split(",");
+ i = aliases.length;
+
+ while (i--) {
+ copy[aliases[i]] = copy[p];
+ }
+ }
+ }
+
+ return copy;
+ },
+ _parseKeyframe = function _parseKeyframe(prop, obj, allProps, easeEach) {
+ var ease = obj.ease || easeEach || "power1.inOut",
+ p,
+ a;
+
+ if (_isArray(obj)) {
+ a = allProps[prop] || (allProps[prop] = []);
+ obj.forEach(function (value, i) {
+ return a.push({
+ t: i / (obj.length - 1) * 100,
+ v: value,
+ e: ease
+ });
+ });
+ } else {
+ for (p in obj) {
+ a = allProps[p] || (allProps[p] = []);
+ p === "ease" || a.push({
+ t: parseFloat(prop),
+ v: obj[p],
+ e: ease
+ });
+ }
+ }
+ },
+ _parseFuncOrString = function _parseFuncOrString(value, tween, i, target, targets) {
+ return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value;
+ },
+ _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert",
+ _staggerPropsToSkip = {};
+
+ _forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function (name) {
+ return _staggerPropsToSkip[name] = 1;
+ });
+
+ var Tween = function (_Animation2) {
+ _inheritsLoose(Tween, _Animation2);
+
+ function Tween(targets, vars, position, skipInherit) {
+ var _this3;
+
+ if (typeof vars === "number") {
+ position.duration = vars;
+ vars = position;
+ position = null;
+ }
+
+ _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this;
+ var _this3$vars = _this3.vars,
+ duration = _this3$vars.duration,
+ delay = _this3$vars.delay,
+ immediateRender = _this3$vars.immediateRender,
+ stagger = _this3$vars.stagger,
+ overwrite = _this3$vars.overwrite,
+ keyframes = _this3$vars.keyframes,
+ defaults = _this3$vars.defaults,
+ scrollTrigger = _this3$vars.scrollTrigger,
+ yoyoEase = _this3$vars.yoyoEase,
+ parent = vars.parent || _globalTimeline,
+ parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets),
+ tl,
+ i,
+ copy,
+ l,
+ p,
+ curTarget,
+ staggerFunc,
+ staggerVarsToMerge;
+ _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://gsap.com", !_config.nullTargetWarn) || [];
+ _this3._ptLookup = [];
+ _this3._overwrite = overwrite;
+
+ if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
+ vars = _this3.vars;
+ tl = _this3.timeline = new Timeline({
+ data: "nested",
+ defaults: defaults || {},
+ targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets
+ });
+ tl.kill();
+ tl.parent = tl._dp = _assertThisInitialized(_this3);
+ tl._start = 0;
+
+ if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {
+ l = parsedTargets.length;
+ staggerFunc = stagger && distribute(stagger);
+
+ if (_isObject(stagger)) {
+ for (p in stagger) {
+ if (~_staggerTweenProps.indexOf(p)) {
+ staggerVarsToMerge || (staggerVarsToMerge = {});
+ staggerVarsToMerge[p] = stagger[p];
+ }
+ }
+ }
+
+ for (i = 0; i < l; i++) {
+ copy = _copyExcluding(vars, _staggerPropsToSkip);
+ copy.stagger = 0;
+ yoyoEase && (copy.yoyoEase = yoyoEase);
+ staggerVarsToMerge && _merge(copy, staggerVarsToMerge);
+ curTarget = parsedTargets[i];
+ copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets);
+ copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay;
+
+ if (!stagger && l === 1 && copy.delay) {
+ _this3._delay = delay = copy.delay;
+ _this3._start += delay;
+ copy.delay = 0;
+ }
+
+ tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);
+ tl._ease = _easeMap.none;
+ }
+
+ tl.duration() ? duration = delay = 0 : _this3.timeline = 0;
+ } else if (keyframes) {
+ _inheritDefaults(_setDefaults(tl.vars.defaults, {
+ ease: "none"
+ }));
+
+ tl._ease = _parseEase(keyframes.ease || vars.ease || "none");
+ var time = 0,
+ a,
+ kf,
+ v;
+
+ if (_isArray(keyframes)) {
+ keyframes.forEach(function (frame) {
+ return tl.to(parsedTargets, frame, ">");
+ });
+ tl.duration();
+ } else {
+ copy = {};
+
+ for (p in keyframes) {
+ p === "ease" || p === "easeEach" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);
+ }
+
+ for (p in copy) {
+ a = copy[p].sort(function (a, b) {
+ return a.t - b.t;
+ });
+ time = 0;
+
+ for (i = 0; i < a.length; i++) {
+ kf = a[i];
+ v = {
+ ease: kf.e,
+ duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration
+ };
+ v[p] = kf.v;
+ tl.to(parsedTargets, v, time);
+ time += v.duration;
+ }
+ }
+
+ tl.duration() < duration && tl.to({}, {
+ duration: duration - tl.duration()
+ });
+ }
+ }
+
+ duration || _this3.duration(duration = tl.duration());
+ } else {
+ _this3.timeline = 0;
+ }
+
+ if (overwrite === true && !_suppressOverwrites) {
+ _overwritingTween = _assertThisInitialized(_this3);
+
+ _globalTimeline.killTweensOf(parsedTargets);
+
+ _overwritingTween = 0;
+ }
+
+ _addToTimeline(parent, _assertThisInitialized(_this3), position);
+
+ vars.reversed && _this3.reverse();
+ vars.paused && _this3.paused(true);
+
+ if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") {
+ _this3._tTime = -_tinyNum;
+
+ _this3.render(Math.max(0, -delay) || 0);
+ }
+
+ scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger);
+ return _this3;
+ }
+
+ var _proto3 = Tween.prototype;
+
+ _proto3.render = function render(totalTime, suppressEvents, force) {
+ var prevTime = this._time,
+ tDur = this._tDur,
+ dur = this._dur,
+ isNegative = totalTime < 0,
+ tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime,
+ time,
+ pt,
+ iteration,
+ cycleDuration,
+ prevIteration,
+ isYoyo,
+ ratio,
+ timeline,
+ yoyoEase;
+
+ if (!dur) {
+ _renderZeroDurationTween(this, totalTime, suppressEvents, force);
+ } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative) {
+ time = tTime;
+ timeline = this.timeline;
+
+ if (this._repeat) {
+ cycleDuration = dur + this._rDelay;
+
+ if (this._repeat < -1 && isNegative) {
+ return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);
+ }
+
+ time = _roundPrecise(tTime % cycleDuration);
+
+ if (tTime === tDur) {
+ iteration = this._repeat;
+ time = dur;
+ } else {
+ iteration = ~~(tTime / cycleDuration);
+
+ if (iteration && iteration === _roundPrecise(tTime / cycleDuration)) {
+ time = dur;
+ iteration--;
+ }
+
+ time > dur && (time = dur);
+ }
+
+ isYoyo = this._yoyo && iteration & 1;
+
+ if (isYoyo) {
+ yoyoEase = this._yEase;
+ time = dur - time;
+ }
+
+ prevIteration = _animationCycle(this._tTime, cycleDuration);
+
+ if (time === prevTime && !force && this._initted && iteration === prevIteration) {
+ this._tTime = tTime;
+ return this;
+ }
+
+ if (iteration !== prevIteration) {
+ timeline && this._yEase && _propagateYoyoEase(timeline, isYoyo);
+
+ if (this.vars.repeatRefresh && !isYoyo && !this._lock && this._time !== cycleDuration && this._initted) {
+ this._lock = force = 1;
+ this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;
+ }
+ }
+ }
+
+ if (!this._initted) {
+ if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {
+ this._tTime = 0;
+ return this;
+ }
+
+ if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) {
+ return this;
+ }
+
+ if (dur !== this._dur) {
+ return this.render(totalTime, suppressEvents, force);
+ }
+ }
+
+ this._tTime = tTime;
+ this._time = time;
+
+ if (!this._act && this._ts) {
+ this._act = 1;
+ this._lazy = 0;
+ }
+
+ this.ratio = ratio = (yoyoEase || this._ease)(time / dur);
+
+ if (this._from) {
+ this.ratio = ratio = 1 - ratio;
+ }
+
+ if (time && !prevTime && !suppressEvents && !iteration) {
+ _callback(this, "onStart");
+
+ if (this._tTime !== tTime) {
+ return this;
+ }
+ }
+
+ pt = this._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+
+ timeline && timeline.render(totalTime < 0 ? totalTime : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime);
+
+ if (this._onUpdate && !suppressEvents) {
+ isNegative && _rewindStartAt(this, totalTime, suppressEvents, force);
+
+ _callback(this, "onUpdate");
+ }
+
+ this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat");
+
+ if ((tTime === this._tDur || !tTime) && this._tTime === tTime) {
+ isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);
+ (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1);
+
+ if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) {
+ _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true);
+
+ this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();
+ }
+ }
+ }
+
+ return this;
+ };
+
+ _proto3.targets = function targets() {
+ return this._targets;
+ };
+
+ _proto3.invalidate = function invalidate(soft) {
+ (!soft || !this.vars.runBackwards) && (this._startAt = 0);
+ this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;
+ this._ptLookup = [];
+ this.timeline && this.timeline.invalidate(soft);
+ return _Animation2.prototype.invalidate.call(this, soft);
+ };
+
+ _proto3.resetTo = function resetTo(property, value, start, startIsRelative, skipRecursion) {
+ _tickerActive || _ticker.wake();
+ this._ts || this.play();
+ var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),
+ ratio;
+ this._initted || _initTween(this, time);
+ ratio = this._ease(time / this._dur);
+
+ if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) {
+ return this.resetTo(property, value, start, startIsRelative, 1);
+ }
+
+ _alignPlayhead(this, 0);
+
+ this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0);
+ return this.render(0);
+ };
+
+ _proto3.kill = function kill(targets, vars) {
+ if (vars === void 0) {
+ vars = "all";
+ }
+
+ if (!targets && (!vars || vars === "all")) {
+ this._lazy = this._pt = 0;
+ return this.parent ? _interrupt(this) : this;
+ }
+
+ if (this.timeline) {
+ var tDur = this.timeline.totalDuration();
+ this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this);
+ this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1);
+ return this;
+ }
+
+ var parsedTargets = this._targets,
+ killingTargets = targets ? toArray(targets) : parsedTargets,
+ propTweenLookup = this._ptLookup,
+ firstPT = this._pt,
+ overwrittenProps,
+ curLookup,
+ curOverwriteProps,
+ props,
+ p,
+ pt,
+ i;
+
+ if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) {
+ vars === "all" && (this._pt = 0);
+ return _interrupt(this);
+ }
+
+ overwrittenProps = this._op = this._op || [];
+
+ if (vars !== "all") {
+ if (_isString(vars)) {
+ p = {};
+
+ _forEachName(vars, function (name) {
+ return p[name] = 1;
+ });
+
+ vars = p;
+ }
+
+ vars = _addAliasesToVars(parsedTargets, vars);
+ }
+
+ i = parsedTargets.length;
+
+ while (i--) {
+ if (~killingTargets.indexOf(parsedTargets[i])) {
+ curLookup = propTweenLookup[i];
+
+ if (vars === "all") {
+ overwrittenProps[i] = vars;
+ props = curLookup;
+ curOverwriteProps = {};
+ } else {
+ curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};
+ props = vars;
+ }
+
+ for (p in props) {
+ pt = curLookup && curLookup[p];
+
+ if (pt) {
+ if (!("kill" in pt.d) || pt.d.kill(p) === true) {
+ _removeLinkedListItem(this, pt, "_pt");
+ }
+
+ delete curLookup[p];
+ }
+
+ if (curOverwriteProps !== "all") {
+ curOverwriteProps[p] = 1;
+ }
+ }
+ }
+ }
+
+ this._initted && !this._pt && firstPT && _interrupt(this);
+ return this;
+ };
+
+ Tween.to = function to(targets, vars) {
+ return new Tween(targets, vars, arguments[2]);
+ };
+
+ Tween.from = function from(targets, vars) {
+ return _createTweenType(1, arguments);
+ };
+
+ Tween.delayedCall = function delayedCall(delay, callback, params, scope) {
+ return new Tween(callback, 0, {
+ immediateRender: false,
+ lazy: false,
+ overwrite: false,
+ delay: delay,
+ onComplete: callback,
+ onReverseComplete: callback,
+ onCompleteParams: params,
+ onReverseCompleteParams: params,
+ callbackScope: scope
+ });
+ };
+
+ Tween.fromTo = function fromTo(targets, fromVars, toVars) {
+ return _createTweenType(2, arguments);
+ };
+
+ Tween.set = function set(targets, vars) {
+ vars.duration = 0;
+ vars.repeatDelay || (vars.repeat = 0);
+ return new Tween(targets, vars);
+ };
+
+ Tween.killTweensOf = function killTweensOf(targets, props, onlyActive) {
+ return _globalTimeline.killTweensOf(targets, props, onlyActive);
+ };
+
+ return Tween;
+ }(Animation);
+
+ _setDefaults(Tween.prototype, {
+ _targets: [],
+ _lazy: 0,
+ _startAt: 0,
+ _op: 0,
+ _onInit: 0
+ });
+
+ _forEachName("staggerTo,staggerFrom,staggerFromTo", function (name) {
+ Tween[name] = function () {
+ var tl = new Timeline(),
+ params = _slice.call(arguments, 0);
+
+ params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0);
+ return tl[name].apply(tl, params);
+ };
+ });
+
+ var _setterPlain = function _setterPlain(target, property, value) {
+ return target[property] = value;
+ },
+ _setterFunc = function _setterFunc(target, property, value) {
+ return target[property](value);
+ },
+ _setterFuncWithParam = function _setterFuncWithParam(target, property, value, data) {
+ return target[property](data.fp, value);
+ },
+ _setterAttribute = function _setterAttribute(target, property, value) {
+ return target.setAttribute(property, value);
+ },
+ _getSetter = function _getSetter(target, property) {
+ return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain;
+ },
+ _renderPlain = function _renderPlain(ratio, data) {
+ return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data);
+ },
+ _renderBoolean = function _renderBoolean(ratio, data) {
+ return data.set(data.t, data.p, !!(data.s + data.c * ratio), data);
+ },
+ _renderComplexString = function _renderComplexString(ratio, data) {
+ var pt = data._pt,
+ s = "";
+
+ if (!ratio && data.b) {
+ s = data.b;
+ } else if (ratio === 1 && data.e) {
+ s = data.e;
+ } else {
+ while (pt) {
+ s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 10000) / 10000) + s;
+ pt = pt._next;
+ }
+
+ s += data.c;
+ }
+
+ data.set(data.t, data.p, s, data);
+ },
+ _renderPropTweens = function _renderPropTweens(ratio, data) {
+ var pt = data._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+ },
+ _addPluginModifier = function _addPluginModifier(modifier, tween, target, property) {
+ var pt = this._pt,
+ next;
+
+ while (pt) {
+ next = pt._next;
+ pt.p === property && pt.modifier(modifier, tween, target);
+ pt = next;
+ }
+ },
+ _killPropTweensOf = function _killPropTweensOf(property) {
+ var pt = this._pt,
+ hasNonDependentRemaining,
+ next;
+
+ while (pt) {
+ next = pt._next;
+
+ if (pt.p === property && !pt.op || pt.op === property) {
+ _removeLinkedListItem(this, pt, "_pt");
+ } else if (!pt.dep) {
+ hasNonDependentRemaining = 1;
+ }
+
+ pt = next;
+ }
+
+ return !hasNonDependentRemaining;
+ },
+ _setterWithModifier = function _setterWithModifier(target, property, value, data) {
+ data.mSet(target, property, data.m.call(data.tween, value, data.mt), data);
+ },
+ _sortPropTweensByPriority = function _sortPropTweensByPriority(parent) {
+ var pt = parent._pt,
+ next,
+ pt2,
+ first,
+ last;
+
+ while (pt) {
+ next = pt._next;
+ pt2 = first;
+
+ while (pt2 && pt2.pr > pt.pr) {
+ pt2 = pt2._next;
+ }
+
+ if (pt._prev = pt2 ? pt2._prev : last) {
+ pt._prev._next = pt;
+ } else {
+ first = pt;
+ }
+
+ if (pt._next = pt2) {
+ pt2._prev = pt;
+ } else {
+ last = pt;
+ }
+
+ pt = next;
+ }
+
+ parent._pt = first;
+ };
+
+ var PropTween = function () {
+ function PropTween(next, target, prop, start, change, renderer, data, setter, priority) {
+ this.t = target;
+ this.s = start;
+ this.c = change;
+ this.p = prop;
+ this.r = renderer || _renderPlain;
+ this.d = data || this;
+ this.set = setter || _setterPlain;
+ this.pr = priority || 0;
+ this._next = next;
+
+ if (next) {
+ next._prev = this;
+ }
+ }
+
+ var _proto4 = PropTween.prototype;
+
+ _proto4.modifier = function modifier(func, tween, target) {
+ this.mSet = this.mSet || this.set;
+ this.set = _setterWithModifier;
+ this.m = func;
+ this.mt = target;
+ this.tween = tween;
+ };
+
+ return PropTween;
+ }();
+
+ _forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", function (name) {
+ return _reservedProps[name] = 1;
+ });
+
+ _globals.TweenMax = _globals.TweenLite = Tween;
+ _globals.TimelineLite = _globals.TimelineMax = Timeline;
+ _globalTimeline = new Timeline({
+ sortChildren: false,
+ defaults: _defaults,
+ autoRemoveChildren: true,
+ id: "root",
+ smoothChildTiming: true
+ });
+ _config.stringFilter = _colorStringFilter;
+
+ var _media = [],
+ _listeners = {},
+ _emptyArray = [],
+ _lastMediaTime = 0,
+ _contextID = 0,
+ _dispatch = function _dispatch(type) {
+ return (_listeners[type] || _emptyArray).map(function (f) {
+ return f();
+ });
+ },
+ _onMediaChange = function _onMediaChange() {
+ var time = Date.now(),
+ matches = [];
+
+ if (time - _lastMediaTime > 2) {
+ _dispatch("matchMediaInit");
+
+ _media.forEach(function (c) {
+ var queries = c.queries,
+ conditions = c.conditions,
+ match,
+ p,
+ anyMatch,
+ toggled;
+
+ for (p in queries) {
+ match = _win.matchMedia(queries[p]).matches;
+ match && (anyMatch = 1);
+
+ if (match !== conditions[p]) {
+ conditions[p] = match;
+ toggled = 1;
+ }
+ }
+
+ if (toggled) {
+ c.revert();
+ anyMatch && matches.push(c);
+ }
+ });
+
+ _dispatch("matchMediaRevert");
+
+ matches.forEach(function (c) {
+ return c.onMatch(c, function (func) {
+ return c.add(null, func);
+ });
+ });
+ _lastMediaTime = time;
+
+ _dispatch("matchMedia");
+ }
+ };
+
+ var Context = function () {
+ function Context(func, scope) {
+ this.selector = scope && selector(scope);
+ this.data = [];
+ this._r = [];
+ this.isReverted = false;
+ this.id = _contextID++;
+ func && this.add(func);
+ }
+
+ var _proto5 = Context.prototype;
+
+ _proto5.add = function add(name, func, scope) {
+ if (_isFunction(name)) {
+ scope = func;
+ func = name;
+ name = _isFunction;
+ }
+
+ var self = this,
+ f = function f() {
+ var prev = _context,
+ prevSelector = self.selector,
+ result;
+ prev && prev !== self && prev.data.push(self);
+ scope && (self.selector = selector(scope));
+ _context = self;
+ result = func.apply(self, arguments);
+ _isFunction(result) && self._r.push(result);
+ _context = prev;
+ self.selector = prevSelector;
+ self.isReverted = false;
+ return result;
+ };
+
+ self.last = f;
+ return name === _isFunction ? f(self, function (func) {
+ return self.add(null, func);
+ }) : name ? self[name] = f : f;
+ };
+
+ _proto5.ignore = function ignore(func) {
+ var prev = _context;
+ _context = null;
+ func(this);
+ _context = prev;
+ };
+
+ _proto5.getTweens = function getTweens() {
+ var a = [];
+ this.data.forEach(function (e) {
+ return e instanceof Context ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === "nested") && a.push(e);
+ });
+ return a;
+ };
+
+ _proto5.clear = function clear() {
+ this._r.length = this.data.length = 0;
+ };
+
+ _proto5.kill = function kill(revert, matchMedia) {
+ var _this4 = this;
+
+ if (revert) {
+ (function () {
+ var tweens = _this4.getTweens(),
+ i = _this4.data.length,
+ t;
+
+ while (i--) {
+ t = _this4.data[i];
+
+ if (t.data === "isFlip") {
+ t.revert();
+ t.getChildren(true, true, false).forEach(function (tween) {
+ return tweens.splice(tweens.indexOf(tween), 1);
+ });
+ }
+ }
+
+ tweens.map(function (t) {
+ return {
+ g: t._dur || t._delay || t._sat && !t._sat.vars.immediateRender ? t.globalTime(0) : -Infinity,
+ t: t
+ };
+ }).sort(function (a, b) {
+ return b.g - a.g || -Infinity;
+ }).forEach(function (o) {
+ return o.t.revert(revert);
+ });
+ i = _this4.data.length;
+
+ while (i--) {
+ t = _this4.data[i];
+
+ if (t instanceof Timeline) {
+ if (t.data !== "nested") {
+ t.scrollTrigger && t.scrollTrigger.revert();
+ t.kill();
+ }
+ } else {
+ !(t instanceof Tween) && t.revert && t.revert(revert);
+ }
+ }
+
+ _this4._r.forEach(function (f) {
+ return f(revert, _this4);
+ });
+
+ _this4.isReverted = true;
+ })();
+ } else {
+ this.data.forEach(function (e) {
+ return e.kill && e.kill();
+ });
+ }
+
+ this.clear();
+
+ if (matchMedia) {
+ var i = _media.length;
+
+ while (i--) {
+ _media[i].id === this.id && _media.splice(i, 1);
+ }
+ }
+ };
+
+ _proto5.revert = function revert(config) {
+ this.kill(config || {});
+ };
+
+ return Context;
+ }();
+
+ var MatchMedia = function () {
+ function MatchMedia(scope) {
+ this.contexts = [];
+ this.scope = scope;
+ _context && _context.data.push(this);
+ }
+
+ var _proto6 = MatchMedia.prototype;
+
+ _proto6.add = function add(conditions, func, scope) {
+ _isObject(conditions) || (conditions = {
+ matches: conditions
+ });
+ var context = new Context(0, scope || this.scope),
+ cond = context.conditions = {},
+ mq,
+ p,
+ active;
+ _context && !context.selector && (context.selector = _context.selector);
+ this.contexts.push(context);
+ func = context.add("onMatch", func);
+ context.queries = conditions;
+
+ for (p in conditions) {
+ if (p === "all") {
+ active = 1;
+ } else {
+ mq = _win.matchMedia(conditions[p]);
+
+ if (mq) {
+ _media.indexOf(context) < 0 && _media.push(context);
+ (cond[p] = mq.matches) && (active = 1);
+ mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange);
+ }
+ }
+ }
+
+ active && func(context, function (f) {
+ return context.add(null, f);
+ });
+ return this;
+ };
+
+ _proto6.revert = function revert(config) {
+ this.kill(config || {});
+ };
+
+ _proto6.kill = function kill(revert) {
+ this.contexts.forEach(function (c) {
+ return c.kill(revert, true);
+ });
+ };
+
+ return MatchMedia;
+ }();
+
+ var _gsap = {
+ registerPlugin: function registerPlugin() {
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ args[_key2] = arguments[_key2];
+ }
+
+ args.forEach(function (config) {
+ return _createPlugin(config);
+ });
+ },
+ timeline: function timeline(vars) {
+ return new Timeline(vars);
+ },
+ getTweensOf: function getTweensOf(targets, onlyActive) {
+ return _globalTimeline.getTweensOf(targets, onlyActive);
+ },
+ getProperty: function getProperty(target, property, unit, uncache) {
+ _isString(target) && (target = toArray(target)[0]);
+
+ var getter = _getCache(target || {}).get,
+ format = unit ? _passThrough : _numericIfPossible;
+
+ unit === "native" && (unit = "");
+ return !target ? target : !property ? function (property, unit, uncache) {
+ return format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));
+ } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache));
+ },
+ quickSetter: function quickSetter(target, property, unit) {
+ target = toArray(target);
+
+ if (target.length > 1) {
+ var setters = target.map(function (t) {
+ return gsap.quickSetter(t, property, unit);
+ }),
+ l = setters.length;
+ return function (value) {
+ var i = l;
+
+ while (i--) {
+ setters[i](value);
+ }
+ };
+ }
+
+ target = target[0] || {};
+
+ var Plugin = _plugins[property],
+ cache = _getCache(target),
+ p = cache.harness && (cache.harness.aliases || {})[property] || property,
+ setter = Plugin ? function (value) {
+ var p = new Plugin();
+ _quickTween._pt = 0;
+ p.init(target, unit ? value + unit : value, _quickTween, 0, [target]);
+ p.render(1, p);
+ _quickTween._pt && _renderPropTweens(1, _quickTween);
+ } : cache.set(target, p);
+
+ return Plugin ? setter : function (value) {
+ return setter(target, p, unit ? value + unit : value, cache, 1);
+ };
+ },
+ quickTo: function quickTo(target, property, vars) {
+ var _merge2;
+
+ var tween = gsap.to(target, _merge((_merge2 = {}, _merge2[property] = "+=0.1", _merge2.paused = true, _merge2), vars || {})),
+ func = function func(value, start, startIsRelative) {
+ return tween.resetTo(property, value, start, startIsRelative);
+ };
+
+ func.tween = tween;
+ return func;
+ },
+ isTweening: function isTweening(targets) {
+ return _globalTimeline.getTweensOf(targets, true).length > 0;
+ },
+ defaults: function defaults(value) {
+ value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));
+ return _mergeDeep(_defaults, value || {});
+ },
+ config: function config(value) {
+ return _mergeDeep(_config, value || {});
+ },
+ registerEffect: function registerEffect(_ref3) {
+ var name = _ref3.name,
+ effect = _ref3.effect,
+ plugins = _ref3.plugins,
+ defaults = _ref3.defaults,
+ extendTimeline = _ref3.extendTimeline;
+ (plugins || "").split(",").forEach(function (pluginName) {
+ return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin.");
+ });
+
+ _effects[name] = function (targets, vars, tl) {
+ return effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);
+ };
+
+ if (extendTimeline) {
+ Timeline.prototype[name] = function (targets, vars, position) {
+ return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);
+ };
+ }
+ },
+ registerEase: function registerEase(name, ease) {
+ _easeMap[name] = _parseEase(ease);
+ },
+ parseEase: function parseEase(ease, defaultEase) {
+ return arguments.length ? _parseEase(ease, defaultEase) : _easeMap;
+ },
+ getById: function getById(id) {
+ return _globalTimeline.getById(id);
+ },
+ exportRoot: function exportRoot(vars, includeDelayedCalls) {
+ if (vars === void 0) {
+ vars = {};
+ }
+
+ var tl = new Timeline(vars),
+ child,
+ next;
+ tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);
+
+ _globalTimeline.remove(tl);
+
+ tl._dp = 0;
+ tl._time = tl._tTime = _globalTimeline._time;
+ child = _globalTimeline._first;
+
+ while (child) {
+ next = child._next;
+
+ if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {
+ _addToTimeline(tl, child, child._start - child._delay);
+ }
+
+ child = next;
+ }
+
+ _addToTimeline(_globalTimeline, tl, 0);
+
+ return tl;
+ },
+ context: function context(func, scope) {
+ return func ? new Context(func, scope) : _context;
+ },
+ matchMedia: function matchMedia(scope) {
+ return new MatchMedia(scope);
+ },
+ matchMediaRefresh: function matchMediaRefresh() {
+ return _media.forEach(function (c) {
+ var cond = c.conditions,
+ found,
+ p;
+
+ for (p in cond) {
+ if (cond[p]) {
+ cond[p] = false;
+ found = 1;
+ }
+ }
+
+ found && c.revert();
+ }) || _onMediaChange();
+ },
+ addEventListener: function addEventListener(type, callback) {
+ var a = _listeners[type] || (_listeners[type] = []);
+ ~a.indexOf(callback) || a.push(callback);
+ },
+ removeEventListener: function removeEventListener(type, callback) {
+ var a = _listeners[type],
+ i = a && a.indexOf(callback);
+ i >= 0 && a.splice(i, 1);
+ },
+ utils: {
+ wrap: wrap,
+ wrapYoyo: wrapYoyo,
+ distribute: distribute,
+ random: random,
+ snap: snap,
+ normalize: normalize,
+ getUnit: getUnit,
+ clamp: clamp,
+ splitColor: splitColor,
+ toArray: toArray,
+ selector: selector,
+ mapRange: mapRange,
+ pipe: pipe,
+ unitize: unitize,
+ interpolate: interpolate,
+ shuffle: shuffle
+ },
+ install: _install,
+ effects: _effects,
+ ticker: _ticker,
+ updateRoot: Timeline.updateRoot,
+ plugins: _plugins,
+ globalTimeline: _globalTimeline,
+ core: {
+ PropTween: PropTween,
+ globals: _addGlobal,
+ Tween: Tween,
+ Timeline: Timeline,
+ Animation: Animation,
+ getCache: _getCache,
+ _removeLinkedListItem: _removeLinkedListItem,
+ reverting: function reverting() {
+ return _reverting;
+ },
+ context: function context(toAdd) {
+ if (toAdd && _context) {
+ _context.data.push(toAdd);
+
+ toAdd._ctx = _context;
+ }
+
+ return _context;
+ },
+ suppressOverwrites: function suppressOverwrites(value) {
+ return _suppressOverwrites = value;
+ }
+ }
+ };
+
+ _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function (name) {
+ return _gsap[name] = Tween[name];
+ });
+
+ _ticker.add(Timeline.updateRoot);
+
+ _quickTween = _gsap.to({}, {
+ duration: 0
+ });
+
+ var _getPluginPropTween = function _getPluginPropTween(plugin, prop) {
+ var pt = plugin._pt;
+
+ while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {
+ pt = pt._next;
+ }
+
+ return pt;
+ },
+ _addModifiers = function _addModifiers(tween, modifiers) {
+ var targets = tween._targets,
+ p,
+ i,
+ pt;
+
+ for (p in modifiers) {
+ i = targets.length;
+
+ while (i--) {
+ pt = tween._ptLookup[i][p];
+
+ if (pt && (pt = pt.d)) {
+ if (pt._pt) {
+ pt = _getPluginPropTween(pt, p);
+ }
+
+ pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);
+ }
+ }
+ }
+ },
+ _buildModifierPlugin = function _buildModifierPlugin(name, modifier) {
+ return {
+ name: name,
+ rawVars: 1,
+ init: function init(target, vars, tween) {
+ tween._onInit = function (tween) {
+ var temp, p;
+
+ if (_isString(vars)) {
+ temp = {};
+
+ _forEachName(vars, function (name) {
+ return temp[name] = 1;
+ });
+
+ vars = temp;
+ }
+
+ if (modifier) {
+ temp = {};
+
+ for (p in vars) {
+ temp[p] = modifier(vars[p]);
+ }
+
+ vars = temp;
+ }
+
+ _addModifiers(tween, vars);
+ };
+ }
+ };
+ };
+
+ var gsap = _gsap.registerPlugin({
+ name: "attr",
+ init: function init(target, vars, tween, index, targets) {
+ var p, pt, v;
+ this.tween = tween;
+
+ for (p in vars) {
+ v = target.getAttribute(p) || "";
+ pt = this.add(target, "setAttribute", (v || 0) + "", vars[p], index, targets, 0, 0, p);
+ pt.op = p;
+ pt.b = v;
+
+ this._props.push(p);
+ }
+ },
+ render: function render(ratio, data) {
+ var pt = data._pt;
+
+ while (pt) {
+ _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+ }
+ }, {
+ name: "endArray",
+ init: function init(target, value) {
+ var i = value.length;
+
+ while (i--) {
+ this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);
+ }
+ }
+ }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap;
+ Tween.version = Timeline.version = gsap.version = "3.12.5";
+ _coreReady = 1;
+ _windowExists() && _wake();
+ var Power0 = _easeMap.Power0,
+ Power1 = _easeMap.Power1,
+ Power2 = _easeMap.Power2,
+ Power3 = _easeMap.Power3,
+ Power4 = _easeMap.Power4,
+ Linear = _easeMap.Linear,
+ Quad = _easeMap.Quad,
+ Cubic = _easeMap.Cubic,
+ Quart = _easeMap.Quart,
+ Quint = _easeMap.Quint,
+ Strong = _easeMap.Strong,
+ Elastic = _easeMap.Elastic,
+ Back = _easeMap.Back,
+ SteppedEase = _easeMap.SteppedEase,
+ Bounce = _easeMap.Bounce,
+ Sine = _easeMap.Sine,
+ Expo = _easeMap.Expo,
+ Circ = _easeMap.Circ;
+
+ var _win$1,
+ _doc$1,
+ _docElement,
+ _pluginInitted,
+ _tempDiv,
+ _tempDivStyler,
+ _recentSetterPlugin,
+ _reverting$1,
+ _windowExists$1 = function _windowExists() {
+ return typeof window !== "undefined";
+ },
+ _transformProps = {},
+ _RAD2DEG = 180 / Math.PI,
+ _DEG2RAD = Math.PI / 180,
+ _atan2 = Math.atan2,
+ _bigNum$1 = 1e8,
+ _capsExp = /([A-Z])/g,
+ _horizontalExp = /(left|right|width|margin|padding|x)/i,
+ _complexExp = /[\s,\(]\S/,
+ _propertyAliases = {
+ autoAlpha: "opacity,visibility",
+ scale: "scaleX,scaleY",
+ alpha: "opacity"
+ },
+ _renderCSSProp = function _renderCSSProp(ratio, data) {
+ return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);
+ },
+ _renderPropWithEnd = function _renderPropWithEnd(ratio, data) {
+ return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u, data);
+ },
+ _renderCSSPropWithBeginning = function _renderCSSPropWithBeginning(ratio, data) {
+ return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 10000) / 10000 + data.u : data.b, data);
+ },
+ _renderRoundedCSSProp = function _renderRoundedCSSProp(ratio, data) {
+ var value = data.s + data.c * ratio;
+ data.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);
+ },
+ _renderNonTweeningValue = function _renderNonTweeningValue(ratio, data) {
+ return data.set(data.t, data.p, ratio ? data.e : data.b, data);
+ },
+ _renderNonTweeningValueOnlyAtEnd = function _renderNonTweeningValueOnlyAtEnd(ratio, data) {
+ return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data);
+ },
+ _setterCSSStyle = function _setterCSSStyle(target, property, value) {
+ return target.style[property] = value;
+ },
+ _setterCSSProp = function _setterCSSProp(target, property, value) {
+ return target.style.setProperty(property, value);
+ },
+ _setterTransform = function _setterTransform(target, property, value) {
+ return target._gsap[property] = value;
+ },
+ _setterScale = function _setterScale(target, property, value) {
+ return target._gsap.scaleX = target._gsap.scaleY = value;
+ },
+ _setterScaleWithRender = function _setterScaleWithRender(target, property, value, data, ratio) {
+ var cache = target._gsap;
+ cache.scaleX = cache.scaleY = value;
+ cache.renderTransform(ratio, cache);
+ },
+ _setterTransformWithRender = function _setterTransformWithRender(target, property, value, data, ratio) {
+ var cache = target._gsap;
+ cache[property] = value;
+ cache.renderTransform(ratio, cache);
+ },
+ _transformProp = "transform",
+ _transformOriginProp = _transformProp + "Origin",
+ _saveStyle = function _saveStyle(property, isNotCSS) {
+ var _this = this;
+
+ var target = this.target,
+ style = target.style,
+ cache = target._gsap;
+
+ if (property in _transformProps && style) {
+ this.tfm = this.tfm || {};
+
+ if (property !== "transform") {
+ property = _propertyAliases[property] || property;
+ ~property.indexOf(",") ? property.split(",").forEach(function (a) {
+ return _this.tfm[a] = _get(target, a);
+ }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property);
+ property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin);
+ } else {
+ return _propertyAliases.transform.split(",").forEach(function (p) {
+ return _saveStyle.call(_this, p, isNotCSS);
+ });
+ }
+
+ if (this.props.indexOf(_transformProp) >= 0) {
+ return;
+ }
+
+ if (cache.svg) {
+ this.svgo = target.getAttribute("data-svg-origin");
+ this.props.push(_transformOriginProp, isNotCSS, "");
+ }
+
+ property = _transformProp;
+ }
+
+ (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);
+ },
+ _removeIndependentTransforms = function _removeIndependentTransforms(style) {
+ if (style.translate) {
+ style.removeProperty("translate");
+ style.removeProperty("scale");
+ style.removeProperty("rotate");
+ }
+ },
+ _revertStyle = function _revertStyle() {
+ var props = this.props,
+ target = this.target,
+ style = target.style,
+ cache = target._gsap,
+ i,
+ p;
+
+ for (i = 0; i < props.length; i += 3) {
+ props[i + 1] ? target[props[i]] = props[i + 2] : props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === "--" ? props[i] : props[i].replace(_capsExp, "-$1").toLowerCase());
+ }
+
+ if (this.tfm) {
+ for (p in this.tfm) {
+ cache[p] = this.tfm[p];
+ }
+
+ if (cache.svg) {
+ cache.renderTransform();
+ target.setAttribute("data-svg-origin", this.svgo || "");
+ }
+
+ i = _reverting$1();
+
+ if ((!i || !i.isStart) && !style[_transformProp]) {
+ _removeIndependentTransforms(style);
+
+ if (cache.zOrigin && style[_transformOriginProp]) {
+ style[_transformOriginProp] += " " + cache.zOrigin + "px";
+ cache.zOrigin = 0;
+ cache.renderTransform();
+ }
+
+ cache.uncache = 1;
+ }
+ }
+ },
+ _getStyleSaver = function _getStyleSaver(target, properties) {
+ var saver = {
+ target: target,
+ props: [],
+ revert: _revertStyle,
+ save: _saveStyle
+ };
+ target._gsap || gsap.core.getCache(target);
+ properties && properties.split(",").forEach(function (p) {
+ return saver.save(p);
+ });
+ return saver;
+ },
+ _supports3D,
+ _createElement = function _createElement(type, ns) {
+ var e = _doc$1.createElementNS ? _doc$1.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc$1.createElement(type);
+ return e && e.style ? e : _doc$1.createElement(type);
+ },
+ _getComputedProperty = function _getComputedProperty(target, property, skipPrefixFallback) {
+ var cs = getComputedStyle(target);
+ return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1) || "";
+ },
+ _prefixes = "O,Moz,ms,Ms,Webkit".split(","),
+ _checkPropPrefix = function _checkPropPrefix(property, element, preferPrefix) {
+ var e = element || _tempDiv,
+ s = e.style,
+ i = 5;
+
+ if (property in s && !preferPrefix) {
+ return property;
+ }
+
+ property = property.charAt(0).toUpperCase() + property.substr(1);
+
+ while (i-- && !(_prefixes[i] + property in s)) {}
+
+ return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property;
+ },
+ _initCore = function _initCore() {
+ if (_windowExists$1() && window.document) {
+ _win$1 = window;
+ _doc$1 = _win$1.document;
+ _docElement = _doc$1.documentElement;
+ _tempDiv = _createElement("div") || {
+ style: {}
+ };
+ _tempDivStyler = _createElement("div");
+ _transformProp = _checkPropPrefix(_transformProp);
+ _transformOriginProp = _transformProp + "Origin";
+ _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0";
+ _supports3D = !!_checkPropPrefix("perspective");
+ _reverting$1 = gsap.core.reverting;
+ _pluginInitted = 1;
+ }
+ },
+ _getBBoxHack = function _getBBoxHack(swapIfPossible) {
+ var svg = _createElement("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"),
+ oldParent = this.parentNode,
+ oldSibling = this.nextSibling,
+ oldCSS = this.style.cssText,
+ bbox;
+
+ _docElement.appendChild(svg);
+
+ svg.appendChild(this);
+ this.style.display = "block";
+
+ if (swapIfPossible) {
+ try {
+ bbox = this.getBBox();
+ this._gsapBBox = this.getBBox;
+ this.getBBox = _getBBoxHack;
+ } catch (e) {}
+ } else if (this._gsapBBox) {
+ bbox = this._gsapBBox();
+ }
+
+ if (oldParent) {
+ if (oldSibling) {
+ oldParent.insertBefore(this, oldSibling);
+ } else {
+ oldParent.appendChild(this);
+ }
+ }
+
+ _docElement.removeChild(svg);
+
+ this.style.cssText = oldCSS;
+ return bbox;
+ },
+ _getAttributeFallbacks = function _getAttributeFallbacks(target, attributesArray) {
+ var i = attributesArray.length;
+
+ while (i--) {
+ if (target.hasAttribute(attributesArray[i])) {
+ return target.getAttribute(attributesArray[i]);
+ }
+ }
+ },
+ _getBBox = function _getBBox(target) {
+ var bounds;
+
+ try {
+ bounds = target.getBBox();
+ } catch (error) {
+ bounds = _getBBoxHack.call(target, true);
+ }
+
+ bounds && (bounds.width || bounds.height) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true));
+ return bounds && !bounds.width && !bounds.x && !bounds.y ? {
+ x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0,
+ y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0,
+ width: 0,
+ height: 0
+ } : bounds;
+ },
+ _isSVG = function _isSVG(e) {
+ return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e));
+ },
+ _removeProperty = function _removeProperty(target, property) {
+ if (property) {
+ var style = target.style,
+ first2Chars;
+
+ if (property in _transformProps && property !== _transformOriginProp) {
+ property = _transformProp;
+ }
+
+ if (style.removeProperty) {
+ first2Chars = property.substr(0, 2);
+
+ if (first2Chars === "ms" || property.substr(0, 6) === "webkit") {
+ property = "-" + property;
+ }
+
+ style.removeProperty(first2Chars === "--" ? property : property.replace(_capsExp, "-$1").toLowerCase());
+ } else {
+ style.removeAttribute(property);
+ }
+ }
+ },
+ _addNonTweeningPT = function _addNonTweeningPT(plugin, target, property, beginning, end, onlySetAtEnd) {
+ var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);
+ plugin._pt = pt;
+ pt.b = beginning;
+ pt.e = end;
+
+ plugin._props.push(property);
+
+ return pt;
+ },
+ _nonConvertibleUnits = {
+ deg: 1,
+ rad: 1,
+ turn: 1
+ },
+ _nonStandardLayouts = {
+ grid: 1,
+ flex: 1
+ },
+ _convertToUnit = function _convertToUnit(target, property, value, unit) {
+ var curValue = parseFloat(value) || 0,
+ curUnit = (value + "").trim().substr((curValue + "").length) || "px",
+ style = _tempDiv.style,
+ horizontal = _horizontalExp.test(property),
+ isRootSVG = target.tagName.toLowerCase() === "svg",
+ measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"),
+ amount = 100,
+ toPixels = unit === "px",
+ toPercent = unit === "%",
+ px,
+ parent,
+ cache,
+ isSVG;
+
+ if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {
+ return curValue;
+ }
+
+ curUnit !== "px" && !toPixels && (curValue = _convertToUnit(target, property, value, "px"));
+ isSVG = target.getCTM && _isSVG(target);
+
+ if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) {
+ px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty];
+ return _round(toPercent ? curValue / px * amount : curValue / 100 * px);
+ }
+
+ style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit);
+ parent = ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode;
+
+ if (isSVG) {
+ parent = (target.ownerSVGElement || {}).parentNode;
+ }
+
+ if (!parent || parent === _doc$1 || !parent.appendChild) {
+ parent = _doc$1.body;
+ }
+
+ cache = parent._gsap;
+
+ if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {
+ return _round(curValue / cache.width * amount);
+ } else {
+ if (toPercent && (property === "height" || property === "width")) {
+ var v = target.style[property];
+ target.style[property] = amount + unit;
+ px = target[measureProperty];
+ v ? target.style[property] = v : _removeProperty(target, property);
+ } else {
+ (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position"));
+ parent === target && (style.position = "static");
+ parent.appendChild(_tempDiv);
+ px = _tempDiv[measureProperty];
+ parent.removeChild(_tempDiv);
+ style.position = "absolute";
+ }
+
+ if (horizontal && toPercent) {
+ cache = _getCache(parent);
+ cache.time = _ticker.time;
+ cache.width = parent[measureProperty];
+ }
+ }
+
+ return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);
+ },
+ _get = function _get(target, property, unit, uncache) {
+ var value;
+ _pluginInitted || _initCore();
+
+ if (property in _propertyAliases && property !== "transform") {
+ property = _propertyAliases[property];
+
+ if (~property.indexOf(",")) {
+ property = property.split(",")[0];
+ }
+ }
+
+ if (_transformProps[property] && property !== "transform") {
+ value = _parseTransform(target, uncache);
+ value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px";
+ } else {
+ value = target.style[property];
+
+ if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) {
+ value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0);
+ }
+ }
+
+ return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value;
+ },
+ _tweenComplexCSSString = function _tweenComplexCSSString(target, prop, start, end) {
+ if (!start || start === "none") {
+ var p = _checkPropPrefix(prop, target, 1),
+ s = p && _getComputedProperty(target, p, 1);
+
+ if (s && s !== start) {
+ prop = p;
+ start = s;
+ } else if (prop === "borderColor") {
+ start = _getComputedProperty(target, "borderTopColor");
+ }
+ }
+
+ var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),
+ index = 0,
+ matchIndex = 0,
+ a,
+ result,
+ startValues,
+ startNum,
+ color,
+ startValue,
+ endValue,
+ endNum,
+ chunk,
+ endUnit,
+ startUnit,
+ endValues;
+ pt.b = start;
+ pt.e = end;
+ start += "";
+ end += "";
+
+ if (end === "auto") {
+ startValue = target.style[prop];
+ target.style[prop] = end;
+ end = _getComputedProperty(target, prop) || end;
+ startValue ? target.style[prop] = startValue : _removeProperty(target, prop);
+ }
+
+ a = [start, end];
+
+ _colorStringFilter(a);
+
+ start = a[0];
+ end = a[1];
+ startValues = start.match(_numWithUnitExp) || [];
+ endValues = end.match(_numWithUnitExp) || [];
+
+ if (endValues.length) {
+ while (result = _numWithUnitExp.exec(end)) {
+ endValue = result[0];
+ chunk = end.substring(index, result.index);
+
+ if (color) {
+ color = (color + 1) % 5;
+ } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") {
+ color = 1;
+ }
+
+ if (endValue !== (startValue = startValues[matchIndex++] || "")) {
+ startNum = parseFloat(startValue) || 0;
+ startUnit = startValue.substr((startNum + "").length);
+ endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit);
+ endNum = parseFloat(endValue);
+ endUnit = endValue.substr((endNum + "").length);
+ index = _numWithUnitExp.lastIndex - endUnit.length;
+
+ if (!endUnit) {
+ endUnit = endUnit || _config.units[prop] || startUnit;
+
+ if (index === end.length) {
+ end += endUnit;
+ pt.e += endUnit;
+ }
+ }
+
+ if (startUnit !== endUnit) {
+ startNum = _convertToUnit(target, prop, startValue, endUnit) || 0;
+ }
+
+ pt._pt = {
+ _next: pt._pt,
+ p: chunk || matchIndex === 1 ? chunk : ",",
+ s: startNum,
+ c: endNum - startNum,
+ m: color && color < 4 || prop === "zIndex" ? Math.round : 0
+ };
+ }
+ }
+
+ pt.c = index < end.length ? end.substring(index, end.length) : "";
+ } else {
+ pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;
+ }
+
+ _relExp.test(end) && (pt.e = 0);
+ this._pt = pt;
+ return pt;
+ },
+ _keywordToPercent = {
+ top: "0%",
+ bottom: "100%",
+ left: "0%",
+ right: "100%",
+ center: "50%"
+ },
+ _convertKeywordsToPercentages = function _convertKeywordsToPercentages(value) {
+ var split = value.split(" "),
+ x = split[0],
+ y = split[1] || "50%";
+
+ if (x === "top" || x === "bottom" || y === "left" || y === "right") {
+ value = x;
+ x = y;
+ y = value;
+ }
+
+ split[0] = _keywordToPercent[x] || x;
+ split[1] = _keywordToPercent[y] || y;
+ return split.join(" ");
+ },
+ _renderClearProps = function _renderClearProps(ratio, data) {
+ if (data.tween && data.tween._time === data.tween._dur) {
+ var target = data.t,
+ style = target.style,
+ props = data.u,
+ cache = target._gsap,
+ prop,
+ clearTransforms,
+ i;
+
+ if (props === "all" || props === true) {
+ style.cssText = "";
+ clearTransforms = 1;
+ } else {
+ props = props.split(",");
+ i = props.length;
+
+ while (--i > -1) {
+ prop = props[i];
+
+ if (_transformProps[prop]) {
+ clearTransforms = 1;
+ prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp;
+ }
+
+ _removeProperty(target, prop);
+ }
+ }
+
+ if (clearTransforms) {
+ _removeProperty(target, _transformProp);
+
+ if (cache) {
+ cache.svg && target.removeAttribute("transform");
+
+ _parseTransform(target, 1);
+
+ cache.uncache = 1;
+
+ _removeIndependentTransforms(style);
+ }
+ }
+ }
+ },
+ _specialProps = {
+ clearProps: function clearProps(plugin, target, property, endValue, tween) {
+ if (tween.data !== "isFromStart") {
+ var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);
+ pt.u = endValue;
+ pt.pr = -10;
+ pt.tween = tween;
+
+ plugin._props.push(property);
+
+ return 1;
+ }
+ }
+ },
+ _identity2DMatrix = [1, 0, 0, 1, 0, 0],
+ _rotationalProperties = {},
+ _isNullTransform = function _isNullTransform(value) {
+ return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value;
+ },
+ _getComputedTransformMatrixAsArray = function _getComputedTransformMatrixAsArray(target) {
+ var matrixString = _getComputedProperty(target, _transformProp);
+
+ return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);
+ },
+ _getMatrix = function _getMatrix(target, force2D) {
+ var cache = target._gsap || _getCache(target),
+ style = target.style,
+ matrix = _getComputedTransformMatrixAsArray(target),
+ parent,
+ nextSibling,
+ temp,
+ addedToDOM;
+
+ if (cache.svg && target.getAttribute("transform")) {
+ temp = target.transform.baseVal.consolidate().matrix;
+ matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];
+ return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix;
+ } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) {
+ temp = style.display;
+ style.display = "block";
+ parent = target.parentNode;
+
+ if (!parent || !target.offsetParent) {
+ addedToDOM = 1;
+ nextSibling = target.nextElementSibling;
+
+ _docElement.appendChild(target);
+ }
+
+ matrix = _getComputedTransformMatrixAsArray(target);
+ temp ? style.display = temp : _removeProperty(target, "display");
+
+ if (addedToDOM) {
+ nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);
+ }
+ }
+
+ return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;
+ },
+ _applySVGOrigin = function _applySVGOrigin(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) {
+ var cache = target._gsap,
+ matrix = matrixArray || _getMatrix(target, true),
+ xOriginOld = cache.xOrigin || 0,
+ yOriginOld = cache.yOrigin || 0,
+ xOffsetOld = cache.xOffset || 0,
+ yOffsetOld = cache.yOffset || 0,
+ a = matrix[0],
+ b = matrix[1],
+ c = matrix[2],
+ d = matrix[3],
+ tx = matrix[4],
+ ty = matrix[5],
+ originSplit = origin.split(" "),
+ xOrigin = parseFloat(originSplit[0]) || 0,
+ yOrigin = parseFloat(originSplit[1]) || 0,
+ bounds,
+ determinant,
+ x,
+ y;
+
+ if (!originIsAbsolute) {
+ bounds = _getBBox(target);
+ xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin);
+ yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin);
+ } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) {
+ x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant;
+ y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant;
+ xOrigin = x;
+ yOrigin = y;
+ }
+
+ if (smooth || smooth !== false && cache.smooth) {
+ tx = xOrigin - xOriginOld;
+ ty = yOrigin - yOriginOld;
+ cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;
+ cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;
+ } else {
+ cache.xOffset = cache.yOffset = 0;
+ }
+
+ cache.xOrigin = xOrigin;
+ cache.yOrigin = yOrigin;
+ cache.smooth = !!smooth;
+ cache.origin = origin;
+ cache.originIsAbsolute = !!originIsAbsolute;
+ target.style[_transformOriginProp] = "0px 0px";
+
+ if (pluginToAddPropTweensTo) {
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin);
+
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin);
+
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset);
+
+ _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset);
+ }
+
+ target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin);
+ },
+ _parseTransform = function _parseTransform(target, uncache) {
+ var cache = target._gsap || new GSCache(target);
+
+ if ("x" in cache && !uncache && !cache.uncache) {
+ return cache;
+ }
+
+ var style = target.style,
+ invertedScaleX = cache.scaleX < 0,
+ px = "px",
+ deg = "deg",
+ cs = getComputedStyle(target),
+ origin = _getComputedProperty(target, _transformOriginProp) || "0",
+ x,
+ y,
+ z,
+ scaleX,
+ scaleY,
+ rotation,
+ rotationX,
+ rotationY,
+ skewX,
+ skewY,
+ perspective,
+ xOrigin,
+ yOrigin,
+ matrix,
+ angle,
+ cos,
+ sin,
+ a,
+ b,
+ c,
+ d,
+ a12,
+ a22,
+ t1,
+ t2,
+ t3,
+ a13,
+ a23,
+ a33,
+ a42,
+ a43,
+ a32;
+ x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;
+ scaleX = scaleY = 1;
+ cache.svg = !!(target.getCTM && _isSVG(target));
+
+ if (cs.translate) {
+ if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") {
+ style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : "");
+ }
+
+ style.scale = style.rotate = style.translate = "none";
+ }
+
+ matrix = _getMatrix(target, cache.svg);
+
+ if (cache.svg) {
+ if (cache.uncache) {
+ t2 = target.getBBox();
+ origin = cache.xOrigin - t2.x + "px " + (cache.yOrigin - t2.y) + "px";
+ t1 = "";
+ } else {
+ t1 = !uncache && target.getAttribute("data-svg-origin");
+ }
+
+ _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);
+ }
+
+ xOrigin = cache.xOrigin || 0;
+ yOrigin = cache.yOrigin || 0;
+
+ if (matrix !== _identity2DMatrix) {
+ a = matrix[0];
+ b = matrix[1];
+ c = matrix[2];
+ d = matrix[3];
+ x = a12 = matrix[4];
+ y = a22 = matrix[5];
+
+ if (matrix.length === 6) {
+ scaleX = Math.sqrt(a * a + b * b);
+ scaleY = Math.sqrt(d * d + c * c);
+ rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0;
+ skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0;
+ skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));
+
+ if (cache.svg) {
+ x -= xOrigin - (xOrigin * a + yOrigin * c);
+ y -= yOrigin - (xOrigin * b + yOrigin * d);
+ }
+ } else {
+ a32 = matrix[6];
+ a42 = matrix[7];
+ a13 = matrix[8];
+ a23 = matrix[9];
+ a33 = matrix[10];
+ a43 = matrix[11];
+ x = matrix[12];
+ y = matrix[13];
+ z = matrix[14];
+ angle = _atan2(a32, a33);
+ rotationX = angle * _RAD2DEG;
+
+ if (angle) {
+ cos = Math.cos(-angle);
+ sin = Math.sin(-angle);
+ t1 = a12 * cos + a13 * sin;
+ t2 = a22 * cos + a23 * sin;
+ t3 = a32 * cos + a33 * sin;
+ a13 = a12 * -sin + a13 * cos;
+ a23 = a22 * -sin + a23 * cos;
+ a33 = a32 * -sin + a33 * cos;
+ a43 = a42 * -sin + a43 * cos;
+ a12 = t1;
+ a22 = t2;
+ a32 = t3;
+ }
+
+ angle = _atan2(-c, a33);
+ rotationY = angle * _RAD2DEG;
+
+ if (angle) {
+ cos = Math.cos(-angle);
+ sin = Math.sin(-angle);
+ t1 = a * cos - a13 * sin;
+ t2 = b * cos - a23 * sin;
+ t3 = c * cos - a33 * sin;
+ a43 = d * sin + a43 * cos;
+ a = t1;
+ b = t2;
+ c = t3;
+ }
+
+ angle = _atan2(b, a);
+ rotation = angle * _RAD2DEG;
+
+ if (angle) {
+ cos = Math.cos(angle);
+ sin = Math.sin(angle);
+ t1 = a * cos + b * sin;
+ t2 = a12 * cos + a22 * sin;
+ b = b * cos - a * sin;
+ a22 = a22 * cos - a12 * sin;
+ a = t1;
+ a12 = t2;
+ }
+
+ if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) {
+ rotationX = rotation = 0;
+ rotationY = 180 - rotationY;
+ }
+
+ scaleX = _round(Math.sqrt(a * a + b * b + c * c));
+ scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));
+ angle = _atan2(a12, a22);
+ skewX = Math.abs(angle) > 0.0002 ? angle * _RAD2DEG : 0;
+ perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0;
+ }
+
+ if (cache.svg) {
+ t1 = target.getAttribute("transform");
+ cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp));
+ t1 && target.setAttribute("transform", t1);
+ }
+ }
+
+ if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {
+ if (invertedScaleX) {
+ scaleX *= -1;
+ skewX += rotation <= 0 ? 180 : -180;
+ rotation += rotation <= 0 ? 180 : -180;
+ } else {
+ scaleY *= -1;
+ skewX += skewX <= 0 ? 180 : -180;
+ }
+ }
+
+ uncache = uncache || cache.uncache;
+ cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;
+ cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;
+ cache.z = z + px;
+ cache.scaleX = _round(scaleX);
+ cache.scaleY = _round(scaleY);
+ cache.rotation = _round(rotation) + deg;
+ cache.rotationX = _round(rotationX) + deg;
+ cache.rotationY = _round(rotationY) + deg;
+ cache.skewX = skewX + deg;
+ cache.skewY = skewY + deg;
+ cache.transformPerspective = perspective + px;
+
+ if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || !uncache && cache.zOrigin || 0) {
+ style[_transformOriginProp] = _firstTwoOnly(origin);
+ }
+
+ cache.xOffset = cache.yOffset = 0;
+ cache.force3D = _config.force3D;
+ cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;
+ cache.uncache = 0;
+ return cache;
+ },
+ _firstTwoOnly = function _firstTwoOnly(value) {
+ return (value = value.split(" "))[0] + " " + value[1];
+ },
+ _addPxTranslate = function _addPxTranslate(target, start, value) {
+ var unit = getUnit(start);
+ return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit;
+ },
+ _renderNon3DTransforms = function _renderNon3DTransforms(ratio, cache) {
+ cache.z = "0px";
+ cache.rotationY = cache.rotationX = "0deg";
+ cache.force3D = 0;
+
+ _renderCSSTransforms(ratio, cache);
+ },
+ _zeroDeg = "0deg",
+ _zeroPx = "0px",
+ _endParenthesis = ") ",
+ _renderCSSTransforms = function _renderCSSTransforms(ratio, cache) {
+ var _ref = cache || this,
+ xPercent = _ref.xPercent,
+ yPercent = _ref.yPercent,
+ x = _ref.x,
+ y = _ref.y,
+ z = _ref.z,
+ rotation = _ref.rotation,
+ rotationY = _ref.rotationY,
+ rotationX = _ref.rotationX,
+ skewX = _ref.skewX,
+ skewY = _ref.skewY,
+ scaleX = _ref.scaleX,
+ scaleY = _ref.scaleY,
+ transformPerspective = _ref.transformPerspective,
+ force3D = _ref.force3D,
+ target = _ref.target,
+ zOrigin = _ref.zOrigin,
+ transforms = "",
+ use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true;
+
+ if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {
+ var angle = parseFloat(rotationY) * _DEG2RAD,
+ a13 = Math.sin(angle),
+ a33 = Math.cos(angle),
+ cos;
+
+ angle = parseFloat(rotationX) * _DEG2RAD;
+ cos = Math.cos(angle);
+ x = _addPxTranslate(target, x, a13 * cos * -zOrigin);
+ y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);
+ z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);
+ }
+
+ if (transformPerspective !== _zeroPx) {
+ transforms += "perspective(" + transformPerspective + _endParenthesis;
+ }
+
+ if (xPercent || yPercent) {
+ transforms += "translate(" + xPercent + "%, " + yPercent + "%) ";
+ }
+
+ if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {
+ transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis;
+ }
+
+ if (rotation !== _zeroDeg) {
+ transforms += "rotate(" + rotation + _endParenthesis;
+ }
+
+ if (rotationY !== _zeroDeg) {
+ transforms += "rotateY(" + rotationY + _endParenthesis;
+ }
+
+ if (rotationX !== _zeroDeg) {
+ transforms += "rotateX(" + rotationX + _endParenthesis;
+ }
+
+ if (skewX !== _zeroDeg || skewY !== _zeroDeg) {
+ transforms += "skew(" + skewX + ", " + skewY + _endParenthesis;
+ }
+
+ if (scaleX !== 1 || scaleY !== 1) {
+ transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis;
+ }
+
+ target.style[_transformProp] = transforms || "translate(0, 0)";
+ },
+ _renderSVGTransforms = function _renderSVGTransforms(ratio, cache) {
+ var _ref2 = cache || this,
+ xPercent = _ref2.xPercent,
+ yPercent = _ref2.yPercent,
+ x = _ref2.x,
+ y = _ref2.y,
+ rotation = _ref2.rotation,
+ skewX = _ref2.skewX,
+ skewY = _ref2.skewY,
+ scaleX = _ref2.scaleX,
+ scaleY = _ref2.scaleY,
+ target = _ref2.target,
+ xOrigin = _ref2.xOrigin,
+ yOrigin = _ref2.yOrigin,
+ xOffset = _ref2.xOffset,
+ yOffset = _ref2.yOffset,
+ forceCSS = _ref2.forceCSS,
+ tx = parseFloat(x),
+ ty = parseFloat(y),
+ a11,
+ a21,
+ a12,
+ a22,
+ temp;
+
+ rotation = parseFloat(rotation);
+ skewX = parseFloat(skewX);
+ skewY = parseFloat(skewY);
+
+ if (skewY) {
+ skewY = parseFloat(skewY);
+ skewX += skewY;
+ rotation += skewY;
+ }
+
+ if (rotation || skewX) {
+ rotation *= _DEG2RAD;
+ skewX *= _DEG2RAD;
+ a11 = Math.cos(rotation) * scaleX;
+ a21 = Math.sin(rotation) * scaleX;
+ a12 = Math.sin(rotation - skewX) * -scaleY;
+ a22 = Math.cos(rotation - skewX) * scaleY;
+
+ if (skewX) {
+ skewY *= _DEG2RAD;
+ temp = Math.tan(skewX - skewY);
+ temp = Math.sqrt(1 + temp * temp);
+ a12 *= temp;
+ a22 *= temp;
+
+ if (skewY) {
+ temp = Math.tan(skewY);
+ temp = Math.sqrt(1 + temp * temp);
+ a11 *= temp;
+ a21 *= temp;
+ }
+ }
+
+ a11 = _round(a11);
+ a21 = _round(a21);
+ a12 = _round(a12);
+ a22 = _round(a22);
+ } else {
+ a11 = scaleX;
+ a22 = scaleY;
+ a21 = a12 = 0;
+ }
+
+ if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) {
+ tx = _convertToUnit(target, "x", x, "px");
+ ty = _convertToUnit(target, "y", y, "px");
+ }
+
+ if (xOrigin || yOrigin || xOffset || yOffset) {
+ tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);
+ ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);
+ }
+
+ if (xPercent || yPercent) {
+ temp = target.getBBox();
+ tx = _round(tx + xPercent / 100 * temp.width);
+ ty = _round(ty + yPercent / 100 * temp.height);
+ }
+
+ temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")";
+ target.setAttribute("transform", temp);
+ forceCSS && (target.style[_transformProp] = temp);
+ },
+ _addRotationalPropTween = function _addRotationalPropTween(plugin, target, property, startNum, endValue) {
+ var cap = 360,
+ isString = _isString(endValue),
+ endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1),
+ change = endNum - startNum,
+ finalValue = startNum + change + "deg",
+ direction,
+ pt;
+
+ if (isString) {
+ direction = endValue.split("_")[1];
+
+ if (direction === "short") {
+ change %= cap;
+
+ if (change !== change % (cap / 2)) {
+ change += change < 0 ? cap : -cap;
+ }
+ }
+
+ if (direction === "cw" && change < 0) {
+ change = (change + cap * _bigNum$1) % cap - ~~(change / cap) * cap;
+ } else if (direction === "ccw" && change > 0) {
+ change = (change - cap * _bigNum$1) % cap - ~~(change / cap) * cap;
+ }
+ }
+
+ plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);
+ pt.e = finalValue;
+ pt.u = "deg";
+
+ plugin._props.push(property);
+
+ return pt;
+ },
+ _assign = function _assign(target, source) {
+ for (var p in source) {
+ target[p] = source[p];
+ }
+
+ return target;
+ },
+ _addRawTransformPTs = function _addRawTransformPTs(plugin, transforms, target) {
+ var startCache = _assign({}, target._gsap),
+ exclude = "perspective,force3D,transformOrigin,svgOrigin",
+ style = target.style,
+ endCache,
+ p,
+ startValue,
+ endValue,
+ startNum,
+ endNum,
+ startUnit,
+ endUnit;
+
+ if (startCache.svg) {
+ startValue = target.getAttribute("transform");
+ target.setAttribute("transform", "");
+ style[_transformProp] = transforms;
+ endCache = _parseTransform(target, 1);
+
+ _removeProperty(target, _transformProp);
+
+ target.setAttribute("transform", startValue);
+ } else {
+ startValue = getComputedStyle(target)[_transformProp];
+ style[_transformProp] = transforms;
+ endCache = _parseTransform(target, 1);
+ style[_transformProp] = startValue;
+ }
+
+ for (p in _transformProps) {
+ startValue = startCache[p];
+ endValue = endCache[p];
+
+ if (startValue !== endValue && exclude.indexOf(p) < 0) {
+ startUnit = getUnit(startValue);
+ endUnit = getUnit(endValue);
+ startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);
+ endNum = parseFloat(endValue);
+ plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);
+ plugin._pt.u = endUnit || 0;
+
+ plugin._props.push(p);
+ }
+ }
+
+ _assign(endCache, startCache);
+ };
+
+ _forEachName("padding,margin,Width,Radius", function (name, index) {
+ var t = "Top",
+ r = "Right",
+ b = "Bottom",
+ l = "Left",
+ props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function (side) {
+ return index < 2 ? name + side : "border" + side + name;
+ });
+
+ _specialProps[index > 1 ? "border" + name : name] = function (plugin, target, property, endValue, tween) {
+ var a, vars;
+
+ if (arguments.length < 4) {
+ a = props.map(function (prop) {
+ return _get(plugin, prop, property);
+ });
+ vars = a.join(" ");
+ return vars.split(a[0]).length === 5 ? a[0] : vars;
+ }
+
+ a = (endValue + "").split(" ");
+ vars = {};
+ props.forEach(function (prop, i) {
+ return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0];
+ });
+ plugin.init(target, vars, tween);
+ };
+ });
+
+ var CSSPlugin = {
+ name: "css",
+ register: _initCore,
+ targetTest: function targetTest(target) {
+ return target.style && target.nodeType;
+ },
+ init: function init(target, vars, tween, index, targets) {
+ var props = this._props,
+ style = target.style,
+ startAt = tween.vars.startAt,
+ startValue,
+ endValue,
+ endNum,
+ startNum,
+ type,
+ specialProp,
+ p,
+ startUnit,
+ endUnit,
+ relative,
+ isTransformRelated,
+ transformPropTween,
+ cache,
+ smooth,
+ hasPriority,
+ inlineProps;
+ _pluginInitted || _initCore();
+ this.styles = this.styles || _getStyleSaver(target);
+ inlineProps = this.styles.props;
+ this.tween = tween;
+
+ for (p in vars) {
+ if (p === "autoRound") {
+ continue;
+ }
+
+ endValue = vars[p];
+
+ if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) {
+ continue;
+ }
+
+ type = typeof endValue;
+ specialProp = _specialProps[p];
+
+ if (type === "function") {
+ endValue = endValue.call(tween, index, target, targets);
+ type = typeof endValue;
+ }
+
+ if (type === "string" && ~endValue.indexOf("random(")) {
+ endValue = _replaceRandom(endValue);
+ }
+
+ if (specialProp) {
+ specialProp(this, target, p, endValue, tween) && (hasPriority = 1);
+ } else if (p.substr(0, 2) === "--") {
+ startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim();
+ endValue += "";
+ _colorExp.lastIndex = 0;
+
+ if (!_colorExp.test(startValue)) {
+ startUnit = getUnit(startValue);
+ endUnit = getUnit(endValue);
+ }
+
+ endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);
+ this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p);
+ props.push(p);
+ inlineProps.push(p, 0, style[p]);
+ } else if (type !== "undefined") {
+ if (startAt && p in startAt) {
+ startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p];
+ _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue));
+ getUnit(startValue + "") || startValue === "auto" || (startValue += _config.units[p] || getUnit(_get(target, p)) || "");
+ (startValue + "").charAt(1) === "=" && (startValue = _get(target, p));
+ } else {
+ startValue = _get(target, p);
+ }
+
+ startNum = parseFloat(startValue);
+ relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2);
+ relative && (endValue = endValue.substr(2));
+ endNum = parseFloat(endValue);
+
+ if (p in _propertyAliases) {
+ if (p === "autoAlpha") {
+ if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) {
+ startNum = 0;
+ }
+
+ inlineProps.push("visibility", 0, style.visibility);
+
+ _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum);
+ }
+
+ if (p !== "scale" && p !== "transform") {
+ p = _propertyAliases[p];
+ ~p.indexOf(",") && (p = p.split(",")[0]);
+ }
+ }
+
+ isTransformRelated = p in _transformProps;
+
+ if (isTransformRelated) {
+ this.styles.save(p);
+
+ if (!transformPropTween) {
+ cache = target._gsap;
+ cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform);
+ smooth = vars.smoothOrigin !== false && cache.smooth;
+ transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1);
+ transformPropTween.dep = 1;
+ }
+
+ if (p === "scale") {
+ this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp);
+ this._pt.u = 0;
+ props.push("scaleY", p);
+ p += "X";
+ } else if (p === "transformOrigin") {
+ inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);
+ endValue = _convertKeywordsToPercentages(endValue);
+
+ if (cache.svg) {
+ _applySVGOrigin(target, endValue, 0, smooth, 0, this);
+ } else {
+ endUnit = parseFloat(endValue.split(" ")[2]) || 0;
+ endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit);
+
+ _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));
+ }
+
+ continue;
+ } else if (p === "svgOrigin") {
+ _applySVGOrigin(target, endValue, 1, smooth, 0, this);
+
+ continue;
+ } else if (p in _rotationalProperties) {
+ _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);
+
+ continue;
+ } else if (p === "smoothOrigin") {
+ _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue);
+
+ continue;
+ } else if (p === "force3D") {
+ cache[p] = endValue;
+ continue;
+ } else if (p === "transform") {
+ _addRawTransformPTs(this, endValue, target);
+
+ continue;
+ }
+ } else if (!(p in style)) {
+ p = _checkPropPrefix(p) || p;
+ }
+
+ if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) {
+ startUnit = (startValue + "").substr((startNum + "").length);
+ endNum || (endNum = 0);
+ endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit);
+ startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));
+ this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp);
+ this._pt.u = endUnit || 0;
+
+ if (startUnit !== endUnit && endUnit !== "%") {
+ this._pt.b = startValue;
+ this._pt.r = _renderCSSPropWithBeginning;
+ }
+ } else if (!(p in style)) {
+ if (p in target) {
+ this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);
+ } else if (p !== "parseTransform") {
+ _missingPlugin(p, endValue);
+
+ continue;
+ }
+ } else {
+ _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);
+ }
+
+ isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));
+ props.push(p);
+ }
+ }
+
+ hasPriority && _sortPropTweensByPriority(this);
+ },
+ render: function render(ratio, data) {
+ if (data.tween._time || !_reverting$1()) {
+ var pt = data._pt;
+
+ while (pt) {
+ pt.r(ratio, pt.d);
+ pt = pt._next;
+ }
+ } else {
+ data.styles.revert();
+ }
+ },
+ get: _get,
+ aliases: _propertyAliases,
+ getSetter: function getSetter(target, property, plugin) {
+ var p = _propertyAliases[property];
+ p && p.indexOf(",") < 0 && (property = p);
+ return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property);
+ },
+ core: {
+ _removeProperty: _removeProperty,
+ _getMatrix: _getMatrix
+ }
+ };
+ gsap.utils.checkPrefix = _checkPropPrefix;
+ gsap.core.getStyleSaver = _getStyleSaver;
+
+ (function (positionAndScale, rotation, others, aliases) {
+ var all = _forEachName(positionAndScale + "," + rotation + "," + others, function (name) {
+ _transformProps[name] = 1;
+ });
+
+ _forEachName(rotation, function (name) {
+ _config.units[name] = "deg";
+ _rotationalProperties[name] = 1;
+ });
+
+ _propertyAliases[all[13]] = positionAndScale + "," + rotation;
+
+ _forEachName(aliases, function (name) {
+ var split = name.split(":");
+ _propertyAliases[split[1]] = all[split[0]];
+ });
+ })("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY");
+
+ _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function (name) {
+ _config.units[name] = "px";
+ });
+
+ gsap.registerPlugin(CSSPlugin);
+
+ var gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap,
+ TweenMaxWithCSS = gsapWithCSS.core.Tween;
+
+ exports.Back = Back;
+ exports.Bounce = Bounce;
+ exports.CSSPlugin = CSSPlugin;
+ exports.Circ = Circ;
+ exports.Cubic = Cubic;
+ exports.Elastic = Elastic;
+ exports.Expo = Expo;
+ exports.Linear = Linear;
+ exports.Power0 = Power0;
+ exports.Power1 = Power1;
+ exports.Power2 = Power2;
+ exports.Power3 = Power3;
+ exports.Power4 = Power4;
+ exports.Quad = Quad;
+ exports.Quart = Quart;
+ exports.Quint = Quint;
+ exports.Sine = Sine;
+ exports.SteppedEase = SteppedEase;
+ exports.Strong = Strong;
+ exports.TimelineLite = Timeline;
+ exports.TimelineMax = Timeline;
+ exports.TweenLite = Tween;
+ exports.TweenMax = TweenMaxWithCSS;
+ exports.default = gsapWithCSS;
+ exports.gsap = gsapWithCSS;
+
+ if (typeof(window) === 'undefined' || window !== exports) {Object.defineProperty(exports, '__esModule', { value: true });} else {delete window.default;}
+
+})));
diff --git a/test_tube_merchant/replace_flags.py b/test_tube_merchant/replace_flags.py
new file mode 100755
index 0000000..92ba63c
--- /dev/null
+++ b/test_tube_merchant/replace_flags.py
@@ -0,0 +1,23 @@
+import json
+import os
+
+def replace_flag_in_json(directory):
+ for root, dirs, files in os.walk(directory):
+ for file in files:
+ if file.endswith('.json'):
+ file_path = os.path.join(root, file)
+ try:
+ with open(file_path, 'r', encoding='utf-8') as f:
+ content = f.read()
+
+ if '"Test Tube Merchant":' in content:
+ content = content.replace('"Test Tube Merchant":', '"test_tube_merchant":')
+ with open(file_path, 'w', encoding='utf-8') as f:
+ f.write(content)
+ print(f'Updated: {file_path}')
+ except Exception as e:
+ print(f'Error processing {file_path}: {str(e)}')
+
+if __name__ == '__main__':
+ items_dir = 'f:/work/foundry/v13data/Data/modules/test_tube_merchant/items'
+ replace_flag_in_json(items_dir)
\ No newline at end of file
diff --git a/test_tube_merchant/templates/merchant.hbs b/test_tube_merchant/templates/merchant.hbs
new file mode 100755
index 0000000..844add5
--- /dev/null
+++ b/test_tube_merchant/templates/merchant.hbs
@@ -0,0 +1,70 @@
+
+
+