CustomMerchant
商人在库存管理中使用的自定义API。
商人にカスタムストックを追加する
cs
void CustomMerchant.AddStock(cardId, stockId = "");
指定された stockId
が空の場合、 cardId
がデフォルトの stockId
として使用されます。これはCWLタグ addStock_ID
と同様の効果があり、複数の stockId
を同じ cardId
に割り当てることができます。
在庫ファイルは LangMod/**/Data/
フォルダーに配置し、 stock_ID.json
という名前で保存する必要があります。
ゲーム内でこのメソッドをテストするには、コンソールコマンド cwl.stock.add cardId stockId
を使用できます。
カスタムストックアイテムを取得する
cs
SerializableStockItem[] CustomChara.GetStockItems(string cardId);
指定された cardId
のカスタムストックアイテムの配列を返します(存在する場合)。
ストックデータを取得する
cs
SerializableStockData? CustomChara.GetStockData(string stockId);
指定された stockId
のストックデータを返します(存在する場合)。データは新たにインスタンス化され、現在の在庫管理には影響しません。
商人からカスタムストックをクリアする
cs
void CustomChara.ClearStock(string cardId);
指定された cardId
のすべてのカスタムストックをクリアします。
ゲーム内でこのメソッドをテストするには、コンソールコマンド cwl.stock.clear cardId
を使用できます。
カスタム OnBarter
イベント
キャラクターに任意のカスタム Trait
(特性)を付与し、CWLの _OnBarter
イベントを処理できます。これはタグやAPIの使用と組み合わせることができます。
例えば、カスタムキャラクターにカスタム特性 TradableAdventurer
を付与し、タグ addStock
を追加し、同時に _OnBarter
イベントを処理することができます:
cs
class TraitTradableAdventurer : TraitAdventurer
{
// CWLによって呼び出される
void _OnBarter()
{
// ここでストックを追加/削除/変更します
}
}
このイベントは、ゲームが Trait.OnBarter
を呼び出した後、CWLが在庫を生成した後(存在する場合)にトリガーされます。