ModernUO/Projects/UOContent/Mobiles/Vendors
Robert Dickey 865a8cf218
fix: sell Bushido and Ninjitsu books through Tokuno scribes (#2622)
Tokuno scribes currently load only `SBScribe`, so the existing Zento scribe does not offer the Book of Bushido or Book of Ninjitsu. Add the existing `SBSamurai` and `SBNinja` inventories when `Core.SE && IsTokunoVendor`.

This reuses the existing book prices and default stock quantities. It does not change NPC placement, trainer behavior, or inventories outside Tokuno.

### Sources and reasoning

- The [official UO Ninjitsu guide](https://uo.com/wiki/ultima-online-wiki/skills/ninjitsu/) identifies the scribe at Rokuon Cultural Center in Zento as a seller of the Book of Ninjitsu.
- [UOGuide: Bushido](https://www.uoguide.com/Bushido), documenting standard UO, explicitly lists Tokuno Islands scribe NPCs as a source for the Book of Bushido. This supports adding both book inventories to Tokuno scribes.
- Documentation distinction: the [official UO Bushido guide](https://uo.com/wiki/ultima-online-wiki/skills/bushido/) describes the Zento seller as a samurai trainer, rather than a scribe. The Bushido scribe change follows the explicit UOGuide description. These references do not independently establish the exact historical introduction date or original prices.

### Validation

- Built the change in a customized ModernUO 0.15.6.145 deployment: Release, linux-x64, zero warnings or errors.
- In-game with Mondain's Legacy enabled: both books appeared on the existing Zento scribe, and a player successfully purchased both.
- Reviewed the expansion/location guard for pre-SE and non-Tokuno behavior; those cases were not gameplay-tested. This exact patch has not been built against current upstream main.
2026-09-09 23:07:32 -07:00
..
Barkeeper refactor: fold hand-written serializable property setters into field hooks (#2587) 2026-08-22 18:20:39 -07:00
NPC fix: sell Bushido and Ninjitsu books through Tokuno scribes (#2622) 2026-09-09 23:07:32 -07:00
SBInfo fix: Fixes arbitrage by adjusting prices. (#1500) 2023-09-15 19:22:35 -07:00
AnimalBuy.cs Formats UO Content (#201) 2020-08-27 18:30:38 -07:00
BaseVendor.cs fix: sell Bushido and Ninjitsu books through Tokuno scribes (#2622) 2026-09-09 23:07:32 -07:00
BeverageBuy.cs fix: Consolidates Color/Center html (#1762) 2024-05-07 23:56:32 -07:00
GenericBuy.cs fix: Moves containers/bods/traps/etc to serialization generator (#2310) 2026-01-07 21:55:55 -08:00
GenericSell.cs chore(content): Updates to C# 9 syntax (#373) 2020-12-30 12:50:10 -08:00
PlayerVendor.cs fix: Fixes dirty-tracking gaps in generated content: setters, sub-object owners, BaseVendor (#2609) 2026-09-06 09:43:44 -07:00
PlayerVendorPlaceholder.cs fix: Codegens house/vendors (#1767) 2024-05-08 22:45:59 -07:00
PresetMapBuy.cs Formats UO Content (#201) 2020-08-27 18:30:38 -07:00
RentedVendor.cs feat: convert all delta-time serialization to anchored time (#2589) 2026-08-22 19:34:43 -07:00
VendorBackpack.cs fix: Optimizes items to use default weights. (Part 4) (#2243) 2025-07-24 23:29:29 -07:00
VendorInventory.cs feat: convert all delta-time serialization to anchored time (#2589) 2026-08-22 19:34:43 -07:00
VendorItem.cs fix: Fixes dirty-tracking gaps in generated content: setters, sub-object owners, BaseVendor (#2609) 2026-09-06 09:43:44 -07:00