CustomMerchant
Custom API for processing merchant stocks.
Add Stock to Owner
void CustomMerchant.AddStock(cardId, stockId = "");When the given stockId is empty, cardId will be used as the default stockId. This has the same effect as CWL tag addStock_ID, multiple stockId can be assigned to the same cardId.
The stock file needs to be placed in LangMod/**/Data/ folder, with naming convention stock_ID.json.
This method can be tested in game using console command cwl.stock.add cardId stockId.
Get Stock Items
SerializableStockItem[] CustomChara.GetStockItems(string cardId);Returns an array of custom stock items of the given cardId, if any.
Get Stock Data
SerializableStockData? CustomChara.GetStockData(string stockId);Returns stock data with the given stockId, if it exists. The data is instantiated anew and does not affect current stock management.
Clear Stock from Owner
void CustomChara.ClearStock(string cardId);Clears all custom stocks for the given cardId.
This method can be tested in game using console command cwl.stock.clear cardId.
Custom OnBarter Event
You can give your character any custom Trait, and handle the _OnBarter event raised by CWL. This can be combined with tagging and/or API usage.
For example, you can give you custom character a custom trait TradableAdventurer, with tag addStock, and also handle the _OnBarter event:
class TraitTradableAdventurer : TraitAdventurer
{
// invoked by CWL
void _OnBarter()
{
// add/remove/modify the stocks here on your own
}
}This event is raised when game calls Trait.OnBarter and after CWL generates the stock for it(if any).