アイテムの作成と種類
Note
このページは現在作成中であり、最近 JSON INFO から分割されました。
汎用アイテム
"type": "GENERIC", // 汎用アイテムとして定義します
"id": "socks", // 固有のID。スペースを含まない一単語である必要があります(必要ならアンダースコアを使用)
"name": {
"ctxt": "clothing", // (任意) 翻訳の文脈。同じ単語でも状況によって訳し分けが必要な場合に有用です
"str": "pair of socks", // アイテム詳細画面に表示される名前です。スペースで区切られた複数の単語(例:pair of socks)も使用可能です。
"str_pl": "pairs of socks" // (任意) 不規則な複数形を持つ場合に指定します(単に末尾に "s" を付けるだけでは不適切な場合など)。単数形と複数形が同じ(単複同形)である場合は、"str_sp" を使用することもできます。
},
"conditional_names": [ { // 任意) 特定の条件下で適用される名前のリストです。指定された条件を満たした場合、既定名の代わりに(あるいは組み合わせて)表示されます(詳細は「条件付き命名セクションを参照してください)。
"type": "COMPONENT_ID", // 条件のタイプ
"condition": "leather", // 判定する条件
"name": { "str": "pair of leather socks", "str_pl": "pairs of leather socks" } // 名前フィールド。ルールは上記と同様
} ],
"container": "null", // このアイテムが生成される際に、どの容器に入っているかを指定します(必要なければ "null" を指定)。
"repairs_like": "scarf", // 製作レシピがない場合、修理時にどのアイテムのレシピを参照するか
"color": "blue", // アイテム記号の色
"symbol": "[", // マップ上での表示記号。全角1マス分のUnicode文字列である必要があります
"looks_like": "rag", // タイルセット用。専用タイルがない場合に参照するタイルのID
"description": "Socks. Put 'em on your feet.", // アイテムの説明文
"ascii_picture": "ascii_socks", // 使用するASCIIアートのID
"phase": "solid", // (任意、既定値は "solid") 物質の状態(固形、液体など)
"weight": "350 g", // 重量。g、mg、kgの単位が使用可能です(例:"50 mg"、"5 g"、"5 kg")。スタック可能なアイテム(弾薬や飲食物など)の場合、これは「1個(1チャージ)」あたりの重量を指します。
"volume": "250 ml", // 容積。ml、Lの単位が使用可能です(例:"50 ml"、"2 L")。スタック可能なアイテム(弾薬や飲食物など)の場合、これは後述の stack_size で定義された個数分の合計容積を指します。
"integral_volume": 0, // アイテムが別のアイテムに組み込まれた際(例:銃器カスタムパーツを銃に取り付けた場合など)、ベースとなるアイテムに追加される容積です。ml、Lの単位が使用可能です(例:"50 ml"、"2 L")。
"integral_weight": 0, // アイティムが別のアイテムに組み込まれた際(例:銃器カスタムパーツを銃に取り付けた場合など)、ベースとなるアイテムに追加される重量です。
"rigid": false, // (false)に設定されたアイテムは、中身の量に応じて容積が増加します(装備品の場合は「動作制限」も同様に、中身に比例して増加します)。
"insulation": 1, // (任意、既定値は1) アイテムが容器や車載パーツである場合、その中身に対して提供される断熱性の高さを指定します。
"price": 100, // NPCとの物々交換(バーター)の際に使用される価格です。スタック可能なアイテム(弾薬や飲食物など)の場合、これは stack_size で定義された個数あたりの価格を指します。単位として "cent"、"USD"、"kUSD" の文字列を使用することも可能です。
"price_postapoc": "1 USD", // priceと同様ですが、こちらは大災厄後の価値を表します。単位として "cent"、"USD"、"kUSD" の文字列を使用可能です。
"material": ["COTTON"], // 素材の種類です。任意の数だけ指定できます。選択可能なオプションについては materials.json を参照してください。
"weapon_category": [ "WEAPON_CAT1" ], // (任意) このアイテムが格闘術においてどの武器カテゴリに分類されるかを指定します。
"cutting": 0, // (任意、既定値は0) 近接武器として使用した際の斬撃ダメージです。負の値を設定することはできません。
"bashing": 0, // (任意、既定値は0) 近接武器として使用した際の打撃ダメージです。負の値を設定することはできません。
"to_hit": 0, // (任意、既定値は0) 近接武器として使用した際の命中ボーナスです(一体何のためにあるんでしょうね?)。
"attacks": [ // (任意) 新しい攻撃ステータスブロックです。現在開発中の機能(WIP)となります。
{ "id": "BASH", // 攻撃のIDです。IDに"DEFAULT" を指定した攻撃は、(基本ステータスから)算出されたデータによって上書きされます。これは「copy-from」元のアイテムに設定されているカスタム攻撃を削除したい場合などに利用できます。
"to_hit": 1, // この攻撃における命中ボーナスです。
"damage": { "values": [ { "damage_type": "bash", "amount": 50 } ] } }, // この攻撃のダメージ設定です。後述の「damage_instance」構文を使用して記述します。
{ "id": "THRUST", "damage": { "values": [ { "damage_type": "stab", "amount": 45 } ] } }
],
"flags": ["VARSIZE"], // アイテムの特殊効果を指定します。詳細は json_flags.md を参照してください。
"environmental_protection_with_filter": 6, // アイテムの動作にフィルターが必要な場合(例:ガスマスク)、そのフィルターが装着されている時に発揮される環境防護能力です。use_action の "GASMASK"(ガスマスク)や "DIVE_TANK"(潜水用タンク)と組み合わせて使用されます。
"magazine_well": 0, // この容積を超えると、マガジンがアイテム本体からはみ出し、追加の容積として加算され始めます。
"magazines": [ // このアイテムのリロードに使用できる、弾薬タイプごとのマガジン指定です。
[ "9mm", [ "glockmag" ] ] // 各弾薬タイプにおいて、最初に記述されたマガジンが標準として扱われます。
[ "45", [ "m1911mag", "m1911bigmag" ] ],
],
"milling": { // (任意) この項目が設定されている場合、そのアイテムは水車小屋や風車小屋で製粉することができます。
"into": "flour", // 生成されるアイテムのIDです。生成物は必ず「チャージ」を使用するアイテムである必要があります。
"conversion_rate": 4 // 消費される原材料1つあたりに対する生成物の量です。例えば、この値が4の場合、原材料1つにつき4つの成果物が生成されます。整数のみ指定可能です。
},
"explode_in_fire": true, // アイテムが火に投げ込まれたり、火災に巻き込まれたりした際に爆発するかどうかを指定します。
"explosion": { // 爆発に関する物理データです。
"damage": 10, // 爆心地にいるプレイヤーに与えるダメージ量です。爆発半径の50%を超えた地点では、ダメージは半分に軽減されます。
"radius": 8, // 爆発の半径です。0を指定した場合は、爆心地のみが影響を受けます。
"fire": true, // 爆発の後に火を発生させるかどうかを指定します。
"fragment": { // 「破片」の飛散物データです。この飛散物は、射程内かつ視界内にいるすべてのターゲットに対して、正確に一度ずつ命中判定を行います。
"damage": { // 破片のダメージデータです。後述の「damage_instance」構文(ダメージインスタンス)を使用して記述します。
"damage_type": "acid", // 与えるダメージの種類(属性)を指定します。
"amount": 10, // 与えるダメージの基本量です。
"armor_penetration": 4, // 貫通する装甲の数値です。この値は装甲の総計に対してではなく、装備している防具の各パーツごとに個別に適用されます。
"armor_multiplier": 2.5 // 装甲貫通を適用した後に残った装甲の防御力を乗算します。数値が高いほど、この爆発の破片を装甲で防ぐ効果が高くなり、数値が低いほど、残った装甲値を割合で減少させたものとして扱います。
}
}
},
damage_instance
{
"damage_type": "acid", // 与えるダメージの種類(属性)です。
"amount": 10, // 与えるダメージの基本量です。
"armor_penetration": 4, // 貫通する装甲の数値です。装甲の総計ではなく、防具の各パーツごとに個別に適用されます。
"armor_multiplier": 2.5 // 装甲貫通を適用した後に残った装甲値を乗算します。数値が高いほど、この攻撃に対して装甲がより効果的に機能し、低い数値は残った装甲値を割合で減少させるように作用します。
}
弾薬
"type" : "AMMO", // これが弾薬であることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
// 以下は弾薬固有の項目です:
"ammo_type" : "shot", // どの武器に装填できるかを決定します(弾薬タイプ)。
"damage" : 18, // 発射時の遠距離ダメージです。
"prop_damage": 2, // 武器のダメージにこの倍率を乗算します("damage" フィールドより優先されます)。
"pierce" : 0, // 発射時の装甲貫通能力です。
"range" : 5, // 発射時の射程距離です。
"dispersion" : 0, // 弾薬の命中精度(拡散率)です。0.25度(1/4度)単位で測定されます。
"recoil" : 18, // 発射時に発生する反動です。
"count" : 25, // アイテム生成時にスタックとして現れる弾数です。
"stack_size" : 50, // (任意) 定義された容積内に何発入るかを指定します。省略時は 'count' と同じになります。
"show_stats" : true, // (任意) ダメージと prop_damage の両方が欠けている投射体などでも、強制的に戦闘ステータスを表示させます。
"dont_recover_one_in": 1 // (任意) 弾薬を回収できない確率を「1/x」で指定します(100なら99%の確率で回収可能)。
"drop": "nail", // (任意) 投射体の着弾地点に100%の確率でドロップするアイテムを指定します。
"drop_active": false // (任意) ドロップしたアイテムがアクティブ状態(タイマー作動中など)で始まるか。既定値は true です。
"drop_count": 1, // (任意) ドロップするアイテムの数。ツールの場合はチャージ数になります。
// 省略した場合、ドロップ量はそのアイテム(itype)で定義されている 'count' に従います。
"effects" : ["COOKOFF", "SHOT"] // 弾薬の特殊効果(延焼による暴発、散弾など)を指定します。
マガジン
"type": "MAGAZINE", // これがマガジンであることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
// 以下はマガジン固有の項目です:
"ammo_type": [ "40", "357sig" ], // このマガジンに装填可能な弾薬のタイプを指定します。
"capacity" : 15, // マガジンの容量です(弾薬のチャージ単位に準拠します)。
"count" : 0, // 生成時の既定値の弾数です(主に給弾ベルト等で使用されます)。
"default_ammo": "556", // 特定の弾種を指定して既定値の弾薬を上書きします(給弾ベルト等で有効です)。
"reliability" : 8, // このマガジンの信頼性を0から10の範囲で指定します(詳細は GAME_BALANCE.md 参照)。
"reload_time" : 100, // 弾薬を1発(1ユニット)マガジンに込めるのにかかる時間(行動点数)です。
"linkage" : "ammolink" // 設定されている場合、弾が消費されるごとに指定されたアイテム(リンク)を1つドロップします(分離式給弾ベルト用)。
防具
防具は以下のように定義できます:
"type" : "ARMOR", // これが防具(ARMOR)であることを定義します。
... // 一般的なアイテム(generic item)と共通の項目がここに入ります。
// 以下は防具固有の項目です:
"covers" : ["FEET"], // 保護部位を指定します。選択肢:TORSO(胴体), HEAD(頭部), EYES(眼部), MOUTH(口部), ARMS(腕部), HANDS(手), LEGS(脚部), FEET(足)
"storage" : 0, // (任意、既定値=0) 追加される収納容量(スロット数)です。
"warmth" : 10, // (任意、既定値=0) 衣類が提供する保温性です。
"environmental_protection" : 0, // (任意、既定値=0) 環境保護性能(ガスや酸などに対する耐性)です。
"encumbrance" : 0, // 基本的な動作制限(フィットしていない状態の数値)です。
"max_encumbrance" : 0, // 非リジッド(柔軟な素材の)収納容器において、容量がいっぱいになった際の動作制限値です。中身が満載でない場合は、以下の計算式に基づきencumbrance(最小値)と max_encumbrance(最大値)の間の値をとります: encumbrance + (max_encumbrance - encumbrance) * character volume.
"weight_capacity_bonus": "20 kg", // (任意、既定値 = 0) 所持重量制限(持ち運べる重さの限界)へのボーナス値です。負の値を指定することも可能です。設定には "5000 g" や "5 kg" といった単位を含む文字列を使用する必要があります。
"weight_capacity_modifier": 1.5, // (任意、既定値 = 1) 基本的な所持重量制限に対する乗算補正値(係数)です。
"coverage" : 80, // 指定した部位を覆う面積の割合(%)です。
"material_thickness" : 1, // 素材の厚さ(およそミリ単位)です。通常は1〜5、特殊な防具では10以上になることもあります。
"power_armor" : false, // パワードアーマーかどうかを指定します(特殊な扱いとなります)。
"valid_mods" : ["steel_padded"] // 適用可能な衣類改造のリストです。なお、衣類改造側のデータに「制限」の項目が含まれていない場合は、このリストに記述する必要はありません。
"resistance": { "cut": 0, "bullet": 1000 } // 設定されている場合、素材と厚みから算出される通常の防御力計算を上書きします。数値は無傷状態のアイテムのものです。厚み(thickness)はダメージに伴う性能低下の度合いに影響します - 厚み 1: ダメージを受けても防御力が低下しません。 厚み 2: 最初の損傷(1段階のダメージ)で防御力が半分になります。 厚み 10: 損傷1段階ごとに、防御力が10%ずつ減少します。
もしくは、すべてのアイテム(本、道具、銃、さらには食料でさえも)は、armor_data を持たせることで防具として使用することができます:
"type" : "TOOL", // または他の任意のアイテムタイプ
... // そのタイプ(例:ツールなど)に応じた共通の項目
"armor_data" : { // 加えて、上述の防具データと同様の項目を設定します
"covers" : ["FEET"],
"storage" : 0,
"warmth" : 10,
"environmental_protection" : 0,
"encumbrance" : 0,
"coverage" : 80,
"material_thickness" : 1,
"power_armor" : false
}
ペット用防具
ペット用防具のデータは、仲間にしたモンスターや動物に装備させる際の防御性能や、装着可能なサイズ制限を決定します:
"type" : "PET_ARMOR", // これがペット用防具(PET_ARMOR)であることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
// 以下はペット用防具固有の項目です:
"storage" : 0, // (任意、既定値=0) 追加される収納容量です。
"environmental_protection" : 0, // (任意、既定値=0) 環境保護性能(ガスや酸などへの耐性)です。
"material_thickness" : 1, // 素材の厚さ(およそミリ単位)です。通常は1〜5、特殊な防具では10以上になることもあります。
"pet_bodytype": // この防具が適合するペットの体型を指定します。詳細は MONSTERS.md を参照してください。
"max_pet_vol": // この防具を装着できるペットの最大サイズ(体積)です。"50 ml" や "2 L" といった単位付きの文字列で指定します。
"min_pet_vol": // この防具を装着できるペットの最小サイズ(体積)です。"50 ml" や "2 L" といった単位付きの文字列で指定します。
"power_armor" : false, // パワードアーマーかどうかを指定します(特殊な扱いとなります)。
また、armor_data を定義することで、あらゆるアイテム(本、ツール、銃、さらには食料でさえも)を「防具」として機能させることが可能です:
"type" : "TOOL", // または他の任意のアイテムタイプ
... // そのタイプ(例:ツールなど)に応じた共通の項目
"pet_armor_data" : { // 加えて、上述のペット用防具(PET_ARMOR)と同様の項目を設定します
"storage" : 0,
"environmental_protection" : 0,
"pet_bodytype": "dog",
"max_pet_vol": "35000 ml",
"min_pet_vol": "25000 ml",
"material_thickness" : 1,
"power_armor" : false
}
本
本のデータは、それを読むことで得られるスキル経験値、必要な知能、精神的な影響(楽しさ)などを決定します:
"type" : "BOOK", // これが本であることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
// 以下は本固有の項目です:
"max_level" : 5, // この本を読んで到達できるスキルの最大レベルです。
"intelligence" : 11, // ペナルティなしでこの本を理解するために必要な知力です。
"time" : "35 m", // 1回の読書セッションにかかる時間です。整数(分単位)または時間指定の文字列が使用可能です。
"fun" : -2, // 読書による意欲へのボーナス、またはペナルティです。
"skill" : "computer", // この本で上昇するスキルを指定します。
"chapters" : 4, // 章の数です(主に娯楽本用)。1回読むごとに1章を「消費」します。すべての章を読み終えると楽しさが減少します。
"required_level" : 2 // この本から学び始めるために必要な最低限のスキルレベルです。
また、book_data を定義することで、あらゆるアイテム(ツール、銃、さらには食料でさえも)を「本」として機能させることが可能です:
"type" : "TOOL", // または他の任意のアイテムタイプ
... // そのタイプ(例:ツールなど)に応じた共通の項目
"book_data" : { // 加えて、上述の本(BOOK)と同様の項目を設定します
"max_level" : 5,
"intelligence" : 11,
"time" : 35,
"fun" : -2,
"skill" : "computer",
"chapters" : 4,
"use_action" : "MA_MANUAL", // book_data 内には、読了時にトリガーされる使用アクション(USE ACTIONS 参照)を設定できます。これらの関数は、単にアイテムを「起動(a)」した時(通常のツールとしての使用時)には発動しません。
"required_level" : 2
}
本の名前の多くは固有名詞であるため、複数形を明示的に指定する必要があるケースが多々あります。 ゲーム内における本の複数形表記の慣例は以下の通りです:
- 非定期刊行物(教科書、マニュアル、魔術書など)
- 単数名が固有名詞の場合: 複数形は
copies of (単数名)とします。 例:Lessons for the Novice Bowhunterはcopies of Lessons for the Novice Bowhunter。 - それ以外(一般名詞的)の場合: 通常の複数形ルールに従います。
例:
tactical baton defense manualはtactical baton defense manuals。
- 単数名が固有名詞の場合: 複数形は
- 定期刊行物(雑誌、ジャーナルなど)
- 単数名が固有名詞で、かつ末尾が "Magazine", "Weekly", "Monthly" などで終わらない場合: 複数形は
issues of (単数名)とします。 例:Archery for Kidsはissues of Archery for Kids。 - それ以外の場合: 通常の複数形ルールに従います。
例:
Crafty Crafter's QuarterlyはCrafty Crafter's Quarterlies。
- 単数名が固有名詞で、かつ末尾が "Magazine", "Weekly", "Monthly" などで終わらない場合: 複数形は
- ボードゲーム(内部的に本として扱われるアイテム)
- 単数名が固有名詞の場合: 複数形は
sets of (単数名)とします。 例:Picturesqueはsets of Picturesque。 - それ以外の場合: 通常の複数形ルールに従います。
例:
decks of cardsはdeck of cards。
- 単数名が固有名詞の場合: 複数形は
条件付き命名
conditional_namesフィールドを使用すると、特定の条件が満たされたときに、既定の名前の代わりに(あるいは追加で)表示される代替名を定義できます。
構文の例として、以下の sausage(ソーセージ)の(不完全な)定義を確認してください:
{
"name": "sausage",
"conditional_names": [
{
"type": "FLAG",
"condition": "CANNIBALISM",
"name": "Mannwurst"
},
{
"type": "COMPONENT_ID",
"condition": "mutant",
"name": { "str_sp": "sinister %s" }
}
]
}
1つのアイテムに対して、必要な数だけ条件付きの名前をリストアップできます。 各条件付き名称は、以下の3つの要素で構成されている必要があります:
- 条件タイプ:
COMPONENT_IDアイテムのすべての構成材料(およびその材料の材料…と続くすべての階層)を検索し、IDの中に指定した文字列が含まれているかチェックします。IDが条件を含んでいれば(完全一致でなくても)一致とみなされます(大文字小文字は区別されます)。例えば、条件にmutantと指定すればmutant_meatに一致します。FLAGアイテムが指定されたフラグを持っているかチェックします(こちらは完全一致が必要です)。
- 探したい条件:検索対象とする文字列やフラグ名です。
- 一致した場合に使用する名前: 標準的な
nameフィールドのルールに従い、str(単数形)、str_pl(複数形)、ctxt(文脈)といったキーが使用可能です。ここで %s を使用すると、その時点でのアイテム名に置き換えられます。この際、リスト内でそれ以前に定義された条件付き名称の結果も考慮されます。
もしソーセージが「変異した人間(mutant humanoid)」の肉で作られており、CANNIBALISM(人肉食)フラグを持ち、かつIDに mutant を含む材料で構成されている場合、以下のように変化します:
- まず、最初の条件によりアイテム名が丸ごと "Mannwurst" (生マンヴォルスト) 複数形なら "Mannwursts" に置き換わります。
- 次に、別の条件により名前が "sinister %s"(不吉な)に置き換わります。この
%sには直前のステップの名前が入るため、最終的に "sinister Mannwurst" (不吉な生マンヴォルスト)または "sinister Mannwursts"となります。
注意: もし複数形を"str_sp": "sinister %s""str": "sinister %s"`` と指定せず、自動生成に任せて"str": "sinister %s"だけを指定した場合、複数形は自動的に「sinister %ss」となり、結果として「sinister Mannwurstss」という "s" が一つ多い名前になってしまいます。 鉄則: 名前の中で %s を使用する場合は、挙動を完全に把握していない限り、常に単数形と同一の形式で複数形も明示的に指定するようにしてください。
Color Key
新しい本を追加する際は、以下のカラーキー(表示色)に従ってください:
- 雑誌:
pink - 「ペーパーバック」: 短時間で読める娯楽本(小説を含む):
light_cyan - 「ハードカバー」: 長編の娯楽本(小説を含む):
light_blue - 「小教本」: 初級レベルの教科書、ガイド、武術書:
green - 「大教本」: 上級レベルの教科書、高度なガイド:
blue - 宗教書:
dark_gray - 「プリント」: (スパイラル綴じ、バインダー等を含む)技術文書、プロトコル、実験日誌、個人の日記など:
light_green - その他の読み物/非書籍: (上記のどのカテゴリーにも当てはまらない場合のみ使用):
light_gray
外見と中身が異なる本など、一部例外が適用される場合もあります。なお、yellow(黄色)と red(赤色)は絶対に指定しないでください。 これらの色は、ゲーム内で「音」や「赤外線視覚」の表示用に予約されています。
CBM
CBMの定義:
"type" : "BIONIC_ITEM", // これがCBMであることを定義します。
... // 一般的なアイテム(generic item)と共通の項目がここに入ります。
// 以下はCBM固有の項目です:
"bionic_id" : "bio_advreactor", // 埋め込んだ際に付与される義体のIDです。
"difficulty" : 11, // このCBMをインストール(手術)する際の難易度です。
"is_upgrade" : true // 他の義体をアップグレードするためのものかどうかを指定します
"installation_data" : "AID_bio_advreactor" // 対応する義体のインストールをほぼ確実(保証)にするための専用アイテムのIDを指定します。
消耗品
"type" : "COMESTIBLE", // これが消耗品であることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
// 以下は消耗品固有の項目です:
"addiction_type" : "crack", // 中毒のタイプを指定します。
"spoils_in" : 0, // 賞味期限(時間単位)。0 は腐敗しないことを意味します。
"use_action" : "CRACK", // 使用時の特殊効果を指定します(後述の特殊定義を参照)。
"stim" : 40, // 刺激物としての効果量です。
"fatigue_mod": 3, // 疲労の回復量です(負の値は疲労を増加させます)。
"radiation": 8, // 摂取時に受ける放射線量です。
"comestible_type" : "MED", // 消耗品の分類。インベントリのソートに使用されます。
"quench" : 0, // 喉の渇きを癒やす量です。
"heal" : -2, // 健康値への影響(病気へのなりやすさに影響)。
"addiction_potential" : 80, // 中毒の引き起こしやすさです。
"monotony_penalty" : 0, // (任意、既定値: 2) 直近48時間以内に同じものを食べるごとに減少する「楽しさ」の数値です。
// "NEGATIVE_MONOTONY_OK" フラグがない限り、楽しさが0を下回ることはありません。
"calories" : 0, // 摂取エネルギー量(単位:kcal)。
"nutrition" : 0, // 栄養価(旧仕様:現在は廃止されています)。
"tool" : "apparatus", // 摂取(飲食)に必要な道具を指定します。
"charges" : 4, // 生成時の使用回数です。
"stack_size" : 8, // (任意) 定義された「体積」の中に含まれる使用回数です。省略時は 'charges' と同等になります。
"fun" : 50 // 使用時の意欲への影響です。
"cooks_like": "meat_cooked" // (任意) 調理レシピにおいて、このアイテムを別のアイテム(例:焼いた肉)として扱わせます。
"parasites": 10, // (任意) 摂取時に寄生虫に感染する確率です。
"contamination": [ { "disease": "bad_food", "probability": 5 } ], // (任意) この消耗品が媒介する病気と、その発生確率(0〜100)のリストです。
容器
"type": "CONTAINER", // これが容器であることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
"contains": 200, // この容器に収容可能な容量を指定します。
"seals": false, // 再密封が可能かどうか。液体を長期間保存するために必要です。(任意、既定値: false)
"watertight": false, // 水密性があるかどうか。液体を入れるために必須の項目です。(任意、既定値: false)
"preserves": false, // 中身が腐敗しないように保護するかどうか。保存食の缶詰などに使用されます。(任意、既定値: false)
また、container_data を定義することで、あらゆるアイテムを「容器」として機能させることが可能です:
"type": "ARMOR", // ここには任意のタイプを指定できます
... // そのタイプに応じた共通の項目
"container_data" : { // 容器固有のデータをここに記述します
"contains": 200,
}
これは(防具固有の全項目を追加することで)防具として定義されますが、同時に「容器」としても使用できるようになります。また、同様のアイテムは GENERIC タイプのアイテムに armor_data と container_data の両方のエントリを追加することでも作成可能です。
近接武器
"id": "hatchet", // 固有のID。スペースを含まず、必要に応じてアンダースコアを使用します。
"symbol": ";", // ゲーム内で表示されるASCII文字(シンボル)です。
"color": "light_gray", // シンボルの表示色です。
"name": "hatchet", // ゲーム内で表示される名前(手斧)です。
"description": "A one-handed hatchet. Makes a great melee weapon, and is useful both for cutting wood, and for use as a hammer.", // ゲーム内の説明です
"price": 95, // NPCとの取引価格です。"cent", "USD", "kUSD" といった文字列単位も使用可能です。
"material": ["iron", "wood"], // 素材のタイプです。詳細は materials.json を参照してください。
"weight": 907, // 重量(グラム単位)です。
"volume": "1500 ml", // 体積です。"50 ml" や "2 L" といった単位指定が可能です。
"bashing": 12, // 近接武器として使用した際の打撃ダメージです。
"cutting": 12, // 近接武器として使用した際の斬撃ダメージです。
"flags" : ["CHOP"], // 特殊な効果や性質を示すフラグです(CHOPは木などを叩き切るのに適していることを示します)。
"to_hit": 1 // 近接武器として使用した際の命中率ボーナスです。
近接武器 Weapon_category
| 武器カテゴリー | 説明 |
|---|---|
| FIST_WEAPONS | 格闘術において拳を補強するために使用される手持ち武器。 |
| --- | --- |
| STILETTOS | ハンドルに固定された、鋭く細長い「刃(錐)」状の武器。切断用の刃は持たない。 |
| KNIVES | 切断や戦闘用にハンドルに固定された短い刃。 |
| SHORT_SWORDS | 大型ナイフと「本格的な」剣の中間の長さを持つ片手剣。 |
| 1H_SWORDS | 片手で振るうことを想定した剣。 |
| 2H_SWORDS | 両手で振るうことを想定した剣。 |
| DUELING_SWORDS | 主に刺突を目的とした、刀身が細い剣。 |
| BIONIC_SWORDS | CBMによって身体に内蔵された剣。 |
| --- | --- |
| SAPS | 一般的に柔軟な素材の先端に重りをつけた、非常に短い武器(ブラックジャックなど)。 |
| BATONS | 丈夫な素材で作られた、細くバランスの良い棒状の武器。 |
| TONFAS | 中国発祥とされる、特徴的なT字型のバトン。 |
| CLUBS | 打撃部が太くなっている棒状の武器。片手用または両手用がある。 |
| QUARTERSTAVES | 両手で振るう長い棒(クォータースタッフ)。 |
| MACES | 短いハンドルの先に打撃頭がしっかりと固定された片手武器。 |
| MORNINGSTARS | 長いハンドルの先に打撃頭がしっかりと固定された、主に両手用の武器。 |
| FLAILS | 柔軟な紐やチェーンによって打撃部がハンドルに接続された武器。 |
| 1H_HAMMERS | 片手で振るうことを想定したハンマー。 |
| 2H_HAMMERS | 両手で振るうことを想定したハンマー。 |
| --- | --- |
| HAND_AXES | 短い柄を持つ斧。通常は片手で使い、時には投擲される。 |
| 1H_AXES | 片手用の斧。通常、ハンドアックスよりも柄が長い。 |
| 2H_AXES | 両手で振るうことを想定した斧。 |
| --- | --- |
| WHIPS | 離れた場所を攻撃するために使用される柔軟な道具。 |
| --- | --- |
| 1H_HOOKED | 敵を「引っ掛ける」能力を持つ片手武器(斧やハンマー以外)。 |
| --- | --- |
| HOOKED_POLES | 先端がフック状になっている長柄武器(羊飼いの杖など)。 |
| SPEARS | 長いシャフトの先端に硬い素材の鋭い穂先がついた長柄武器。 |
| PIKES | 非常に長い槍。両手でしか扱えず、非常に取り回しが難しい。 |
| GLAIVES | 長柄の先端に片刃の刀身が取り付けられた武器(長巻やグレイブ)。 |
| 武器スタイル | 説明 |
|---|---|
| MEDIEVAL_SWORDS | ヨーロッパ文化に関連する剣(ロングソード、アームドソードなど)。 |
| JAPANESE_SWORDS | 日本文化に関連する剣(刀、脇差、太刀など)。 |
| BIONIC_WEAPONRY | CBMを介して身体に統合された武器。 |
銃器
銃器は射撃スキル、使用弾薬、精度、反動、および銃器改造パーツ(Mod)のスロットなどを定義します:
"type": "GUN", // これが銃器(GUN)であることを定義します。
... // 一般的なアイテムと共通の項目がここに入ります。
// 以下は銃器固有の項目です:
"skill": "pistol", // 発射に使用されるスキル(例:拳銃、小銃など)です。
"ammo": [ "357", "38" ], // リロードに使用可能な弾薬タイプのリストです。
"ranged_damage": 0, // 銃自体の遠距離ダメージ補正です。
"range": 0, // 銃自体の射程補正です。
"dispersion": 32, // 銃の固有散布界(不正確さ)。単位は1/4度です。
// 銃のModに sight_dispersion(照準器の散布界)と aim_speed(照準速度)の設定がある場合、照準システムは各照準アクションにおいて「最適な」照準器を自動的に選択します。
// 各照準アクションにおいて使用すべき照準器を選択します。それは、「現在の照準しきい値(aim threshold)を下回る散布界を持つ照準器の中で、最も速いものが選ばれます。
"sight_dispersion": 10, // 照準機構(サイト)に由来する不正確さ。単位は1/4度。quarter-degrees
"aim_speed": 3, // 照準の速さ。散布界を1下げるのに必要な移動コスト(moves)。
"recoil": 0, // 発射時に発生する反動。散布界に加算される1/4度単位の数値。
"durability": 8, // 耐久性。ダメージや錆への耐性に加え、不発(ジャム)率も決定します。
"blackpowder_tolerance": 8,// 黒色火薬弾を使用した際の目詰まり耐性。1/Xの確率で発生(数値が高いほど高性能)。デフォルトは8。
"min_cycle_recoil": 0, // 1回のアクションで連射を行うために必要な最小の「弾薬反動」値。
"burst": 5, // バースト(点射)モード時の発射弾数。
"handling": 15, // 銃が反動からどれだけ素早く回復するかを示す修正値。20が基準値(ベースライン)であり、それ未満は悪化、それを上回ると改善を意味します。デフォルトでは 2 - (handling / 10) という計算式でスケールします。例えば 操作性が 15 の場合: 2 - 1.5 = 0.5 となり、反動が増加します。操作性が 30 の場合: 2 - 3.0 = -1 となり、反動が軽減されます。
"clip_size": 100, // 最大装弾数。
"ups_charges": 0, // 通常の弾薬に加えて、銃はUPSから電力を要求することができます。これはModにも適用されます。ups_charges が設定されたModを取り付けると、その武器のUPS消費量が追加または増加します。
"ammo_to_fire" 1, // 1射あたりの弾薬消費量。UPSコストとは別に計算されます。
// 古い形式のアイテムフラグである FIRE_20、FIRE_50、および FIRE_100 は引き続き使用可能であり、これらが存在する場合は ammo_to_fire の設定よりも優先(上書き)されます。
"reload": 450, // リロードにかかる時間。100 = 1秒 = 1「ターン」に相当します。デフォルトは100。
"built_in_mods": ["m203"], // 武器に統合されるModの配列。これらには自動的に「取り外し不可(IRREMOVABLE)」タグが付与されます。
"default_mods": ["m203"] // アイテム生成時に装着されるModの配列。
"barrel_volume": "30 mL", // 銃身を切り詰めた際に減少する体積。現実の1インチあたり約250mlを目安にすると良いでしょう。
"barrel_length": "30 mL", // barrel_volumeの非推奨な別名。明確化のため、今後はbarrel_volumeを使用してください。
"valid_mod_locations": [ [ "accessories", 4 ], [ "grip", 1 ] ], // 銃器Modを装着可能な部位と、その部位のスロット数。
また、gun_data を定義することで、あらゆるアイテム(本、ツール、防具、さらには食料でさえも)を「銃器」として機能させることが可能です:
"type": "TOOL", // または他の任意のアイテムタイプ
... // そのタイプに応じた共通の項目(例:ツールとしてのデータ)
"gun_data" : { // 加えて、前述した銃器用のデータを記述します
"skill": ...,
"recoil": ...,
...
}
Ranged Weapon_category
| 武器カテゴリー | 説明 |
|---|---|
| BOWS | 長い矢を弾性によって発射する装置。いわゆる弓。 |
| S_XBOWS | フレームに固定された弾性発射装置。拳銃サイズのクロスボウ。 |
| M_XBOWS | フレームに固定された弾性発射装置。標準的なサイズのクロスボウ。 |
| SLINGSHOTS | 手持ち式の弾性発射装置。通常、小さな丸い礫などを撃ち出す。 |
| SLINGS | 2本の紐の先に保持部を設けた投石具。打撃を与える投射物を振り回して放つ。 |
| --- | --- |
| PISTOLS | 銃身と薬室が一体化したハンドガン。ゲーム内ではリボルバー以外の拳銃が分類される。 |
| REVOLVERS | 複数の薬室を持つ回転式シリンダーを備えた連発式のハンドガン。 |
| SUBMACHINE_GUNS | 拳銃弾を使用する、弾倉装填式の自動火器(サブマシンガン)。 |
| RIFLES | 正確な射撃を目的として設計された、長い銃身を持つ火器(ライフル)。 |
| MACHINE_GUNS | 持続的な射撃を目的として設計された、全自動式の自動火器(マシンガン)。 |
| GATLING_GUNS | 複数の銃身を回転させて高速連射を行う火器。 |
| SHOTGUNS | 通常、散弾(ショットシェル)を発射するために設計された長銃身の火器。 |
| --- | --- |
| GRENADE_LAUNCHERS | 大口径の投射物(煙幕、ガス、爆薬などの弾頭)を射出するための火器。 |
| ROCKET_LAUNCHERS | 無誘導のロケット推進弾を射出する火器。 |
| --- | --- |
| FLAMETHROWERS | 制御された火炎を噴射するように設計された、遠距離焼夷装置(火炎放射器)。 |
| WATER_CANNONS | 敵に向かって水を噴射します。 |
| SPRAY_GUNS | 敵に向かって化学物質を撒き散らします。 |
| 動作カテゴリー | 説明 |
|---|---|
| 1SHOT | 少なくとも1本の銃身を持つが、装填機構や弾倉を持たない遠距離武器。 |
| AUTOLOADING | ブローバック、ガス圧利用、反動利用などの自動装填機構を持つ遠距離武器 |
| MANUAL_ACTION | ボルト、ポンプ、レバー操作などの手動機構を用いる遠距離武器。 |
| ENERGY_WEAPONS | 収束されたエネルギー(音波、電磁波、粒子ビーム等)を利用する武器。近接・遠距離の両方。 |
| MAGNETIC | 電磁誘導によって弾体を加速・射出する武器。 |
| PNEUMATIC | 圧縮空気によって弾体を射出する遠距離武器。 |
| ELASTIC | ゴムなどの弾性体によって弾体を射出する遠距離武器。 |
Gunmod
Gun mods can be defined like this:
"type": "GUNMOD", // これが銃器改造パーツであることを定義します。
... // 汎用アイテムと共通の項目がここに入ります。
// 以下は銃器改造パーツ固有の項目です:
"location": "stock", // (必須) このパーツが装着される部位(ストック、銃口など)を指定します。
"mod_targets": [ "crossbow" ], // (任意) このパーツを装着できる特定の武器のリスト。
"mod_target_category": [ [ "BOWS" ] ], // (任意) このパーツを装着できる武器カテゴリーのリスト。
"mod_exclusions": [ "laser_rifle" ], // (任意) このパーツを装着「できない」特定の武器のリスト。
"mod_exclusion_category": [ [ "ENERGY_WEAPONS" ] ], // (任意) このパーツを装着「できない」カテゴリーのリスト。
"acceptable_ammo": [ "9mm" ], // (任意) 改造前のベース武器が特定の弾種である場合のみ装着可能にするフィルター。
"install_time": "30 s", // (任意) 装着にかかる時間。指定しない場合は即座に装着されます。
"ammo_modifier": [ "57" ], // (任意) 指定した場合、ベース武器の使用弾薬をこれらのタイプに変更します。
"magazine_adaptor": [ [ "223", [ "stanag30" ] ] ], // (任意) ベース武器が受け付けるマガジンの種類を変更します。
"mode_modifier": [ [ "AUTO", "auto", 5 ] ] // (任意) 武器に新しい射撃モードを追加します。
"damage_modifier": -1, // (任意) 銃の基本ダメージを増減させます。
"dispersion_modifier": 15, // (任意) 銃の基本散布界を増減させます。
"loudness_modifier": 4, // (任意) 銃の射撃音の大きさを増減させます。
"range_modifier": 2, // (任意) 銃の基本射程を増減させます。
"recoil_modifier": -100, // (任意) 銃の基本反動を増減させます。
"ups_charges_modifier": 200, // (任意) 1発あたりのUPS消費量を加算/減算します。
"ups_charges_multiplier": 2.5, // (任意) 1発あたりのUPS消費量を乗算して変更します。
"ammo_to_fire_modifier": 200, // (任意) 1発あたりに消費されるメイン弾薬の量を加算/減算します。
"ammo_to_fire_multiplier": 2.5, // (任意) 1発あたりに消費されるメイン弾薬の量を乗算して変更します。
"reload_modifier": -10, // (任意) 銃の基本リロード時間をパーセント単位で増減させます。
"min_str_required_mod": 14, // (任意) 銃を使用するために必要な最小筋力を増減させます。
また、gunmod_data を定義することで、あらゆるアイテム(本、ツール、防具、食料など)を「銃器改造パーツ」として機能させることが可能です:
"type": "TOOL", // または他の任意のアイテムタイプ(例:防具や本など)
... // そのタイプに応じた共通の項目(例:ツールとしての基本データ)
"gunmod_data" : {
"location": ...,
"mod_targets": ...,
...
}
バッテリー
"type": "BATTERY", // これが電池(BATTERY)であることを定義します。
... // 汎用アイテムと共通の項目がここに入ります。
// 以下は電池固有の項目です::
"max_energy": "30 kJ" // (必須) 電池が保持できる最大エネルギー量。
Tools
"id": "torch_lit", // 固有のID。スペースを含まない一単語である必要があります。
"type": "TOOL", // これが道具(TOOL)であることを定義します。
"symbol": "/", // マップ上での表示記号。
"color": "brown", // シンボルの表示色。
"name": "torch (lit)", // ゲーム内での名称(火のついた松明)。
"description": "A large stick, wrapped in gasoline soaked rags. This is burning, producing plenty of light", // ゲーム内での説明
"price": 0, // NPCとの物々交換(バーター)に使用される価格です。"cent" "USD" "kUSD" といった単位指定も可能です。
"material": "wood", // 素材の種類。詳細は materials.json を参照してください。
"techniques": [ "FLAMING" ], // この道具を武器として使用した際に発動する戦闘技術です。
"flags": "FIRE", // 特殊な性質や効果を示すフラグです(ここでは「火」に関連する性質を示します)。
"weight": 831, // 重量。グラム(g)単位で指定します。
"volume": "1500 ml", // 容積。"50 ml" や "2 L" といった単位付きの文字列で指定可能です。
"bashing": 12, // 近接武器として使用した際の打撃ダメージです。
"cutting": 0, // 近接武器として使用した際の斬撃ダメージです。
"to_hit": 3, // 近接武器として使用した際の命中ボーナスです。
"max_charges": 75, // この道具が保持できる最大充填数(チャージ)です。
"initial_charges": 75, // アイテム生成時にあらかじめ充填されている数です。
"rand_charges": [10, 15, 25], // 生成時のチャージ量をランダム化します。この例では、50%の確率で 10~15、残りの50%の確率で 15~25 の範囲になります(境界値を含みます)。
"sub": "hotplate", // (任意) この道具が別の道具(例: 電熱器)と全く同じ機能を備えていることを定義します。
"charge_factor": 5, // レシピで要求されるチャージ数に対する倍率です。「sub」で指定した道具とは異なる弾薬/エネルギーを使用する道具に設定します。
"charges_per_use": 1, // 道具を1回使用するごとに消費されるチャージ数です。
"turns_per_charge": 20, // 時間経過で消費されるチャージ量(ターン数)です。現在は power_draw への移行により非推奨となっています。
"power_draw": 50, // 消費電力(単位:mW)です。
"ups_eff_mult": 2, // UPS(携帯型電源装置)使用時のエネルギー効率補正倍率です。
"ups_recharge_rate": 10, // アイテムをUPSで再充電する際の出力強度です。
"ammo": [ "NULL" ], // リロードに使用する弾薬のタイプです。
"revert_to": "torch_done", // チャージを使い果たした際、自動的にこのアイテムIDに変化します(例:燃え尽きた松明)。
"use_action": "firestarter" // 道具を「使用(a)」した際に発動するアクションです。詳細は後述の特殊定義を参照してください。
種子データ
あらゆるアイテムタイプに、任意で種子データを設定できます。このデータが定義されているアイテムは「種子」として扱われ、地面や家具に植えることが可能になります:
"seed_data" : {
"fruit": "weed", // 収穫時に生成される果実のIDです。
"seeds": false, // (任意、既定値は true) trueの場合、収穫時に(植えたものと同じ)種子も手に入ります。falseの場合は果実のみが生成されます。
"fruit_div": 2, // (任意、既定値は 1) 生成される果実の最終的なチャージ数をこの数値で割ります。果実が「チャージ」で数えられるアイテムの場合のみ機能します。
"byproducts": ["withered", "straw_pile"], // 収穫時に追加で生成される副産物アイテムのリストです。
"plant_name": "sunflower", // 成長中の植物の名前です。プレイヤーへの情報表示にのみ使用されます。
"grow" : 91 // 植物が完全に成熟するまでの期間です。シーズン設定が長い場合でも正確に計算できるよう、91日をベースにした値になっています。
// ※この値はゲーム内の「シーズン長」オプションに基づいて変換されます。
// 値「91」は「3フルシーズン」分、値「30」は「1シーズン」分の期間を意味します。
"required_terrain_flag": "PLANTABLE" // 種子を植えるために、地形や家具が持っている必要があるフラグです。
// 既定値は "PLANTABLE" です。これを使用すると、家具以外に植えた場合、その場所の地形は自動的に「土(dirt)」に変化します。
// 他のフラグを指定した場合は、地形が「土」に変化することはありません。
}
醸造データ
あらゆるアイテムタイプに、任意で醸造データを設定できます。醸造データが定義されているアイテムは、醸造樽に入れることで発酵させ、別のアイテムへと変化させることが可能です。
現時点では、醸造樽に投入できるもの、および醸造されるものは液体アイテムのみに制限されています。
"brewable" : {
"time": 3600, // 発酵にかかる時間(期間)です。
"result": "beer" // 発酵の結果として生成されるアイテムのIDです。
}
レリックデータ
アイテムに付与される、様々な(半)魔法的な特性を定義します。詳細は RELICS.md を参照してください。
アーティファクト・データ
アーティファクトは現在、**レリック(Relic)システムへの移行に伴い非推奨(デプロイ中)**となっています。新規に作成する場合は使用を避けてください。
所持効果 (Effects_carried)
(任意、既定値:空リスト)
プレイヤーのインベントリ内に存在する場合(メインインベントリ、手に持っている状態、あるいは装備中)に発動するアーティファクトの効果です。
設定可能な値は以下の通りです (最新のリストについては src/enums.h を確認してください):
AEP_STR_UP筋力 +4AEP_DEX_UP器用 + 4AEP_PER_UP感覚+ 4AEP_INT_UP知力 + 4AEP_ALL_UP全能力値 + 2AEP_SPEED_UP速度 +20AEP_IODINE放射能汚染を低減します。AEP_SNAKES被弾時に味方のヘビを召喚します。AEP_INVISIBLE姿を透明にします。AEP_CLAIRVOYANCE壁を透視できるようになります。AEP_SUPER_CLAIRVOYANCE壁を広範囲にわたって透視できるようになります。AEP_STEALTH足音を抑えます(隠密)。AEP_EXTINGUISH周囲の火を消し止めることがあります。AEP_GLOW周囲4マスの光源となります。AEP_PSYSHIELD恐怖による麻痺攻撃を防ぎます。AEP_RESIST_ELECTRICITY電気耐性を得ます。AEP_CARRY_MORE所持重量制限を200増加させます。AEP_SAP_LIFEゾンビ以外の怪物を殺害した際、体力が回復することがあります。AEP_HUNGER空腹の進行が早まります。AEP_THIRST喉の渇きの進行が早まります。AEP_SMOKE時折、煙を放出します。AEP_EVILその力への「依存症」を引き起こします。AEP_SCHIZO統合失調症に似た幻覚症状を引き起こします。AEP_RADIOACTIVE自身の放射線量が増加します。AEP_MUTAGENIC徐々に身体の変異を引き起こします。AEP_ATTENTION異次元からの注目を徐々に集めます。AEP_STR_DOWN筋力 - 3AEP_DEX_DOWN器用 - 3AEP_PER_DOWN感覚 - 3AEP_INT_DOWN知力 - 3AEP_ALL_DOWN全能力値 - 2AEP_SPEED_DOWN速度 -20AEP_FORCE_TELEPORT時折、強制的にテレポートさせられます。AEP_MOVEMENT_NOISE移動時に音を立てるようになります。AEP_BAD_WEATHER悪天候に見舞われる確率が上がります。AEP_SICK時間経過とともに健康値が減少します。
装備時効果 (effects_worn)
(任意、既定値:空リスト)
アーティファクトを装備している際(防具アイテムとして身に着けている際)に発動する効果です。
設定可能な値は、前述の effects_carried(所持効果)と同様です。
effects_wielded
(任意、既定値:空リスト)
アーティファクトを手に持っている(手に構えている)際に発動する効果です。
設定可能な値は、前述の effects_carried(所持効果)と同様です。
effects_activated
(任意、既定値:空リスト)
アーティファクトを「使用(a)」して発動させた際に生じる効果です。 ※この効果を機能させるには、アイテムに "use_action": "ARTIFACT" が設定されており、かつ max_charges(最大充填数)が0より大きい必要があります。
設定可能な値は以下の通りです(最新のリストについては src/artifact.h を確認してください):
AEA_STORM電撃フィールドを放出します。AEA_FIREBALL指定した地点に火炎球を放ちます。AEA_ADRENALINEアドレナリン・ラッシュを引き起こします。AEA_MAP周囲の地図を明らかにします。AEA_BLOODあたり一面に血を撒き散らします。AEA_FATIGUE異次元由来の疲労を引き起こします。AEA_ACIDBALL指定した地点に酸を放ちます。AEA_PULSE隣接する地形を破壊します。AEA_HEAL軽微なダメージを回復します。AEA_CONFUSED視界内のすべての怪物を混乱させます。AEA_ENTRANCE周囲の怪物を味方にする可能性があります。AEA_BUGS味方となる昆虫を召喚する可能性があります。AEA_TELEPORT自身をテレポートさせます。AEA_LIGHT一時的な光源となります。AEA_GROWTHトリフィド・クイーンのように植物を成長させます。AEA_HURTALLすべての怪物を傷つけます!AEA_FUN一時的な意欲ボーナスを得ます。AEA_SPLIT良い効果と悪い効果を同時に引き起こします。AEA_RADIATION放射性ガスを噴出します。AEA_PAINプレイヤーの痛みを増加させます。AEA_MUTATE変異を引き起こす可能性があります。AEA_PARALYZE数ターンの間、行動不能になります。AEA_FIRESTORM周囲に小規模な火災を撒き散らします。AEA_ATTENTION下位次元の住人からの注目を集めます。AEA_TELEGLOWテレポート後遺症(テログロウ)を発症させます。AEA_NOISE大きな騒音を発生させます。AEA_SCREAM叫び声を上げ、騒音の発生と意欲の低下を引き起こします。AEA_DIM空を徐々に暗くします。AEA_FLASH閃光を放ちます。AEA_VOMIT使用者が嘔吐します。AEA_SHADOWS影のクリーチャーを召喚します。AEA_STAMINA_EMPTYプレイヤーのスタミナゲージの大部分を空にします。
ソフトウェアデータ
あらゆるアイテムタイプにソフトウェアデータを持たせることができますが、これには何の動作も設定されていません:
"software_data" : {
"type": "USELESS", // 未使用
"power" : 91 // 未使用
}
燃料データ
すべてのアイテムタイプに、消費量あたりの出力を決定する燃料データを持たせることができます。現在、気体(ガス)やプラズマを燃料として扱うことはできません。
燃料に PERPETUAL(永久)フラグが設定されている場合、その燃料を動力源とするエンジンは燃料を一切消費しません。これは主に「人力(筋肉)」という擬似燃料を想定したものですが、永久機関を作成するMODなどで活用することも可能です。
"fuel" : {
"energy": 34.2, // 燃料1mlあたりのバッテリーチャージ量に相当します(バッテリーのエネルギーを1とした場合)。
// この数値は https://en.wikipedia.org/wiki/Energy_densityに基づく MJ/L(メガジュール/リットル)でもあります。
// 容積1(250ml)あたりのスタックサイズを250と仮定しています。他のスタックサイズや容積の場合は、
// 250 / (スタックサイズ) * (容積) を乗算して計算してください。
"pump_terrain": "t_gas_pump", // (任意) この燃料を供給するポンプの地形IDです。
"explosion_data": { // (任意) 爆発の可能性がある燃料に設定します。
"chance_hot": 2, // HEAT(成形炸薬)武器で攻撃された際、1/2の確率で爆発します。
"chance_cold": 5, // その他の武器で攻撃された際、1/5の確率で爆発します。
"factor": 1.0, // 爆発係数。数値が大きいほど強力な爆発になります。
"fiery": true, // trueに設定すると、炎を伴う爆発になります。
"size_factor": 0.1 // サイズ係数。数値が大きいほど、残存燃料による爆発威力の増加率が高くなります。
}
}
使用アクション
use_actionフィールドの内容には、アイテムが起動された際に呼び出される組み込み関数 (iuse.cpp で定義されているもの)を指定する文字列か、あるいは、より構造化された機能を呼び出すための**特殊定義(iuse_actor)**のいずれかを記述できます。
"use_action": {
"type": "transform", // 動作タイプ。この場合はアイテムを別のIDへ変換(変身)させます。
"target": "gasoline_lantern_on", // 変換後のアイテムID。
"active": true, // 変換後、アイテムを「起動状態(タイマー作動等)」にするかどうか。
"msg": "You turn the lamp on.", // 起動時に表示されるメッセージ。
"need_fire": 1, //起動に火源(ライター等)が必要かどうか。
"need_fire_msg": "You need a lighter!", // 火源がない場合に表示されるメッセージ。
"transform_charges": 1, // 変換時に消費されるチャージ数。
"need_charges": 1, // 変換に必要な最低チャージ数(チェックのみで消費はしません)。
"need_charges_msg": "The lamp is empty.", // チャージ不足時に表示されるメッセージ。
"need_worn": true, // 装備中(着用中)である必要があるか(既定値:false)。
"need_wielding": false, // 手に持っている必要があるか(既定値:false)。
"need_dry": false, // 水中では変換不能にするか(既定値:false)。
"target_charges" : 3, // 変換後のアイテムが持つチャージ数。
"rand_target_charges": [10, 15, 25], // 変換後のチャージ数をランダム化します。 この例では、50%の確率で 10~15 チャージ、残りの50%の確率で 15~25 チャージの範囲でランダムに決定されます(境界値である 10, 15, 25 も含まれます)。
"container" : "jar", // 変換後のアイテムを入れる容器。
"moves" : 500 // 変換アクションに要する追加移動コスト。
},
"use_action": {
"type": "explosion", // チャージ終了時などに爆発するアイテム。
"sound_volume": 0, // 毎ターンアイテムが発する音の大きさ。
"sound_msg": "Tick.", // 毎ターン表示される作動音のメッセージ。
"no_deactivate_msg": "You've already pulled the %s's pin, try throwing it instead.", // プレイヤーがそのアイテムを(再度)起動しようとした際に表示されるメッセージです。これが定義されている場合、そのアイテムの起動アクションは成功しなくなります(解除や再起動を防止します)。
"explosion": { // (任意) 物理的な爆発データです。
// 汎用アイテム(generic items)セクションにある「explosion」フィールドと同様の形式で記述します。
},
"draw_explosion_radius" : 5, // 描画される爆発エフェクトの半径です。
"draw_explosion_color" : "ltblue", // 爆発エフェクトを描画する際に使用する色です。
"do_flashbang" : true, // スタングレネード(閃光音響)効果を発生させるかどうか。
"flashbang_player_immune" : true, // プレイヤーがこのスタングレネード効果を無効化できるかどうか。
"fields_radius": 3, // 生成されるフィールド(ガス等)が広がる半径です。
"fields_type": "fd_tear_gas", // 生成されるフィールドの種類です(例:催涙ガス)。
"fields_min_density": 3, // フィールドの最小濃度。
"fields_max_density": 3, // フィールドの最大濃度。
"emp_blast_radius": 4, // EMP(電磁パルス)爆風の有効半径です。
"scrambler_blast_radius": 4 // スクランブラー(ロボット混乱)爆風の有効半径です。
},
"use_action": {
"type": "change_scent", // 使用者の「臭いの種類」を変更します。
"scent_typeid": "sc_fetid", // 変更後の新しい臭いのID(scenttype_id)です。
"charges_to_use": 2, // アイテム使用時に消費されるチャージ数です。(既定値: 1)
"scent_mod": 150, // 臭いの強さ(強度)に加算される修正値です。(既定値: 0)
"duration": "6 m", // この効果が持続する期間です。
"effects": [ { "id": "fetid_goop", "duration": 360, "bp": "TORSO" } ], // 付与される「状態異常」のリスト。ID、持続時間、対象部位を指定します。
"waterproof": true, // この効果が防水(水に濡れても消えない)かどうかです。(既定値: false)
"moves": 500 // このプロセスに要する移動コストです。
},
"use_action": {
"type": "unfold_vehicle", // アイテムを車両へと変換します。
"vehicle_name": "bicycle", // 生成される車両の名前です。
"unfold_msg": "You painstakingly unfold the bicycle and make it ready to ride.", // 展開時に表示されるメッセージです。
"moves": 500 // このプロセスに要する移動コストです。
},
"use_action" : {
"type" : "consume_drug", // プレイヤーが摂取可能なドラッグ(薬物)です。
"activation_message" : "You smoke your crack rocks. Mother would be proud.", // 使用時に表示されるメッセージです。
"effects" : { "high": 15 }, // 付与される状態異常とその持続時間です。
"stat_adjustments": {"hunger" : -10}, // プレイヤーのステータス(この場合は空腹度)への修正値です。
"fields_produced" : {"cracksmoke" : 2}, // 使用時に発生するフィールド(主に煙など)です。
"charges_needed" : { "fire" : 1 }, // 摂取プロセスで消費されるチャージ(例:火源)です。
"tools_needed" : { "apparatus" : -1 }, // 使用に必要な道具(例:パイプなど)です。
"fake_item" : "fake_ecig", // 中毒症状や他の摂取エフェクトを模倣するために参照するダミーアイテムです。
"lightweight_mod" : 1.2, // 特性「下戸(LIGHTWEIGHT)」を持つ場合の持続時間修正係数です。
"tolerance_mod" : 0.8, // 「耐性」を持つ場合の持続時間修正係数です。
"tolerance_lightweight_effected": true, // 耐性や下戸特性による持続時間の変動を適用するかどうか。
"too_much_threshold": 10, // 「過剰摂取(摂りすぎ)」判定に使用する時間(分)です。
"addiction_type_too_much": [["cig", "nicotine"]], // エフェクトと中毒を関連付けます。「気分が悪い…摂りすぎだ」等のメッセージに使用されます。
"lit_item": "cigar_lit", // smoking_duration の間、このアイテム(火のついた状態)に変化します。
"smoking_duration": 12, // lit_item が燃え続ける時間(分)です。終了後は「消火されたアイテム」に変化します。
"used_up_item": "", // 使用後に与えられるアイテムです。lit_item や smoking_duration と組み合わせて使用します。
"do_weed_msg": false, // 使用後にマリファナ専用の特殊メッセージを表示するかどうか。
"snippet_category": "killer_withdrawal", // 使用時に 1/5 の確率で表示されるランダムな台詞のカテゴリです。
"snippet_chance": 5, // プレイヤーが台詞(スニペット)を思い浮かべる確率(1/snippet_chance)です。
"moves": 50 // このプロセスに要する移動コストです(既定値は100)。
},
"use_action": {
"type": "place_monster", // タレットやマンハックなどの怪物をマップ上に配置します。
"monster_id": "mon_manhack", // 配置する怪物のIDです(monsters.jsonを参照)。
"difficulty": 4, // プログラミングの難易度です(マンハックは4、タレットは6など)。
"hostile_msg": "It's hostile!", // (任意) プログラミングに失敗し、怪物が敵対状態で出現した時のメッセージ。
"friendly_msg": "Good!", // (任意) プログラミングに成功し、怪物が味方状態で出現した時のメッセージ。
"place_randomly": true, // trueの場合、プレイヤーの周囲にランダムに配置されます。falseの場合、プレイヤーが場所を指定します(既定値: false)。
"skill1": "throw", // 判定に使用するスキルID。スキルのレベルが高いほど、味方として配置できる確率が上がります。
"skill2": "unarmed", // 判定に使用する2つ目のスキルID。skill1と同様です(どちらも任意項目)。
"moves": 60 // このアクションに要する移動コストです。
},
"use_action": {
"type": "place_npc", // 特定のクラスのNPCをマップ上に配置(召喚)します。
"npc_class_id": "true_foodperson", // NPCのクラスIDです(npcs/classes.jsonを参照)。
"summon_msg": "You summon a food hero!", // (任意) NPC召喚時に表示されるメッセージです。
"place_randomly": true, // trueの場合、プレイヤーの周囲にランダムに配置されます。falseの場合、プレイヤーが配置場所を指定します(既定値: false)。
"moves": 50 // このアクションに要する移動コストです。
},
"use_action": {
"type": "ups_based_armor", // UPSの電力を消費して稼働する防具です(動作には追加のJSONコードが必要です)。
"activate_msg": "You activate your foo.", // アイテムを起動した際に表示されるメッセージ。
"deactive_msg": "You deactivate your foo.", // アイテムを停止させた際に表示されるメッセージ。
"out_of_power_msg": "Your foo runs out of power and deactivates itself." // UPSの電力が切れて、アイテムが強制終了した際に表示されるメッセージ。
}
"use_action" : {
"type" : "delayed_transform", // transformと似ていますが、アイテムが特定の経過時間(齢)に達した時にのみ変換されます。
"transform_age" : 600, // 変換に必要な最小経過時間です。これより新しいアイテムは変換されません。単位はターンです(60ターン = 1分)。
"not_ready_msg" : "The yeast has not been done The yeast isn't done culturing yet." // アイテムが十分に経過していない(準備ができていない)時に表示されるメッセージです。
}
"use_action": {
"type": "firestarter", // ライターなどのように火を熾します。
"moves_cost": 15 // 火を熾すのに要する移動コストです。
},
"use_action": {
"type": "unpack", // このアイテムを開封します。
"group": "gobag_contents", // 開封した際に出現するアイテムグループのIDです。
"items_fit": true, // 出現した防具アイテムがフィットしているかどうか。既定値はfalseです。
},
"use_action": {
"type": "extended_firestarter", // 火を熾します(虫眼鏡や火揉み棒など)。このアクションは通常のfirestarter(数アクションで完了)とは異なり、完了までに多くのターンを要します。また、途中でキャンセルすることも可能です(通常のfirestarterはキャンセル不可)。
"need_sunlight": true // 虫眼鏡のように、キャラクターが直射日光の下にいる必要があるかどうか。
},
"use_action": {
"type": "inscribe", // アイテムや地面にメッセージを刻みます。
"on_items": true, // アイテムに刻印できるかどうか。
"on_terrain": false, // 地面に刻印できるかどうか。
"material_restricted": true, // 特定のアイテム素材に対してのみ刻印可能にするかどうか。地面への刻印には適用されません。
"material_whitelist": [ // 刻印可能な素材ID(アイテムIDではない点に注意!)のリスト。
"wood", // アイテムへの刻印、かつmaterial_restrictedがtrueの場合のみ参照されます。
"plastic", // リストが明示されていない場合は、ここに記載されている素材がデフォルトとして使用されます。
"glass",
"chitin",
"iron",
"steel",
"silver"
]
},
"use_action": {
"type": "cauterize", // キャラクターの傷口を焼灼(止血・消毒)します。
"flame": true // trueの場合、実行に4チャージ分の火源(ライター等)を必要とします。falseの場合、アイテム自体のチャージを消費します。
},
"use_action": {
"type": "enzlave" // ゾンビ奴隷(zlave)を作成します。
},
"use_action": {
"type": "fireweapon_off", // 発火型武器を起動します。
"target_id": "firemachete_on", // 起動後のアイテムID。
"success_message": "Your No. 9 glows!", // 起動に成功した際に表示されるメッセージ。
"failure_message": "", // 何らかの理由で失敗した際のメッセージ(任意。指定しない場合は何も表示されません)。
"lacks_fuel_message": "Out of fuel", // アイテムのチャージが不足している際のメッセージ。
"noise": 0, // 起動時に発生する騒音の大きさ(任意。0は無音)。
"moves": 0, // 成否に関わらず、このアクションを試みるのに要する移動コスト。
"success_chance": 0 // 成功率。既定値は常に成功です。0〜10の範囲で数値を調整します。
},
"use_action": {
"type": "fireweapon_on", // 起動中(燃焼状態)の発火型武器用の機能です。
"noise_chance": 1, // 毎ターン、このアイテムが音を発する確率(1/X)です。
"noise": 0, // 発生する音の大きさです。0の場合、音は発生しませんが「音のメッセージ」は表示されます。
"noise_message": "Your No. 9 hisses.", // アイテムが音を発した際に表示されるメッセージ(音の描写)です。
"voluntary_extinguish_message": "Your No. 9 goes dark.", // プレイヤーが手動でスイッチを切った際に表示されるメッセージ。
"charges_extinguish_message": "Out of ammo!", // 燃料が切れた際に表示されるメッセージ。
"water_extinguish_message": "Your No. 9 hisses in the water and goes out.", // キャラクターが水に入り、アイテムの火が消された際に表示されるメッセージ。
"auto_extinguish_chance": 0, // 0より大きい場合、アイテムが勝手に消える確率(1/X)を指定します。
"auto_extinguish_message": "Your No. 9 cuts out!" // アイテムが自然に消えた際に表示されるメッセージ(auto_extinguish_chanceが0より大きい場合のみ必要)。
},
"use_action": {
"type": "musical_instrument", // キャラクターが移動しながらこの楽器を演奏します。
"speed_penalty": 10, // 演奏中、キャラクターの移動速度からこの値が差し引かれます。
"volume": 12, // 楽器が奏でる音の大きさです。
"fun": -5, // fun_bonusと組み合わせて、演奏で得られる士気(Morale)を決定します。 計算式:`fun + fun_bonus * <キャラクターの感覚値(PER)>`各数値および計算結果はマイナスになることもあります。
"fun_bonus": 2,
"description_frequency": 20, // Nターンごとに一度、player_descriptionsの中からランダムにメッセージが表示されます。
"player_descriptions": [
"You play a little tune on your flute.",
"You play a beautiful piece on your flute.",
"You play a piece on your flute that sounds harmonious with nature."
]
},
"use_action": {
"type": "holster", // 武器をホルスターに収める、または取り出します。
"holster_prompt": "Holster item", // アイテム選択時に表示されるプロンプト。
"holster_msg": "You holster your %s", // アイテム収納時に表示されるメッセージ。
"max_volume": "1500 ml", // 収納可能な各アイテムの最大容積。「50 ml」や「2 L」といった単位が使用可能です。
"min_volume": "750 ml", //収納可能な各アイテムの最小容積。未指定の場合は最大容積の1/3になります。
"max_weight": 2000, // 収納可能な各アイテムの最大重量。未指定の場合は重量制限なしとなります。
"multi": 1, // このホルスターに収納できるアイテムの総数。
"draw_cost": 10, // 収納されたアイテムを取り出す際の、容積単位あたりの基本移動コスト。
"skills": ["pistol", "shotgun"], // 指定されたこれらのスキルを使用する銃器が収納可能になります。
"flags": ["SHEATH_KNIFE", "SHEATH_SWORD"] // これらのフラグを持つアイテム(ナイフや剣など)が収納可能になります。
},
"use_action": {
"type": "bandolier", // 弾薬を保管し、後でそこからリロードできるようにします。
"capacity": 10, // 保管できる弾薬の最大弾数。
"ammo": [ "shot", "9mm" ], // 保管可能な弾薬の種類(ID)。
},
"use_action": {
"type": "reveal_map", // オーバーマップ上の特定の地形を明らかにします。
"radius": 180, // プレイヤーを中心とした探索半径。オーバーマップ1枚は180x180タイルです。
"terrain": ["s_gun", "hiway", "road"], // 明らかにする地形タイプのID(複数指定可能)。
"terrain_view": ["s_gun"], // (任意) 地図の使用後に表示されるダイアログで、報告対象とするオーバーマップ地形のIDリストです(数は任意ですが、基本的には terrain の部分集合にすることを推奨します)。
"terrain_view_exclude": ["hiway", "road"], // (任意) 地図の使用後に表示されるダイアログで、報告対象から除外するオーバーマップ地形のIDリストです(数は任意ですが、基本的には terrain_view の部分集合にすることを推奨します)。
"message": "You add roads and tourist attractions to your map." // 地図情報の開放が完了した後に表示されるメッセージです。
},
"use_action": {
"type" : "heal", // ダメージを回復し、場合によっては状態異常も治療します。
"limb_power" : 10, // 手足を治療した際のHP回復量。必須項目です。
"head_power" : 7, // 頭部を治療した際のHP回復量。未指定なら limb_power の 0.8 倍になります。
"torso_power" : 15, // 胴体を治療した際のHP回復量。未指定なら limb_power の 1.5 倍になります。
"bleed" : 0.4, // 出血状態を治療できる確率(0.0〜1.0)。
"bite" : 0.95, // 噛み傷(感染前)を治療できる確率。
"infect" : 0.1, // 感染症を治療できる確率。
"move_cost" : 250, // アイテム使用に要する移動コスト。
"long_action" : true, // これをtrueにすると「長時間アクション」となり、移動コストが(応急処置スキル + 1)で除算されます。
"limb_scaling" : 1.2, // 応急処置スキルが1レベル上がるごとに、追加で回復する手足のHP量です。未指定の場合、既定値は 0.25 * limb_power になります。
"head_scaling" : 1.0, // 応急処置スキルが1上がるごとに加算される、頭部の追加回復量です。 未指定時の既定値: (limb_scaling / limb_power) * head_power
"torso_scaling" : 2.0, // 応急処置スキルが1上がるごとに加算される、胴体の追加回復量です。 未指定時の既定値: (limb_scaling / limb_power) * torso_power
"effects" : [ // 治療完了時に患者へ付与される状態変化のリストです。 記述形式はドラッグ摂取(consume_drug)のエフェクトと同じです。
{ "id" : "pkill1", "duration" : 120 }
],
"used_up_item" : "rag_bloody" // 治療に成功した際に生成されるアイテムです。使用した医療アイテムが「ツール(tool)」タイプであれば、そのアイテム自体がこの新しいタイプへと変化します。それ以外のタイプ(「消耗品」など)であれば、元のアイテムは消費され、新たにこのアイテムが生成されます。
},
"use_action": {
"type": "place_trap", // 罠を設置します。
"allow_underwater": false, // (任意) キャラクターが水中にいる状態での設置を許可するかどうか。
"allow_under_player": false, // (任意) キャラクターと同じマスへの設置を許可するか(無害な罠などの場合)。
"needs_solid_neighbor": false, // (任意) 2つの通行不能なタイル(壁など)の間に設置する必要があるか(例:トリップワイヤー)。
"needs_neighbor_terrain": "t_tree", // (任意) 指定した場合、その地形(例:木)に隣接した場所でなければ設置できません。
"outer_layer_trap": "tr_blade", // (任意、既定値は空) IDが指定されている場合、3x3の範囲に罠を配置します。中心のマスには "trap" で定義された罠が、その周囲の8マスにはこの項目で定義された罠が配置されます(例:ブレードトラップなら tr_blade など)。
"bury_question": "", // (任意) 指定されている場合、キャラクターが掘削道具(シャベル等)を持っており、かつ設置対象の場所が掘削可能な場合に、この質問が表示されます。これにより、罠を「埋めた状態」で設置できるようになります。プレイヤーが質問(例:「罠を埋めますか?」)に「はい」と答えた場合、"bury" オブジェクト内のデータが使用されます。
"bury": { // 埋設の質問に「はい」と答えた場合、外側のデータの代わりにこのエントリー内のデータが使用されます。
// このJSONオブジェクト内には、後述の項目と同じ意味を持つ "trap", "done_message", "practice"、および(任意で)"moves" を含める必要があります。
},
"trap": "tr_engine", // 設置される罠のID。
"done_message": "Place the beartrap on the %s.", // 罠の設置が完了したときに表示されるメッセージ。%sは設置場所の地形名に置き換わります。
"practice": 4, // 罠を設置することで得られる罠スキルの経験値。
"moves": 10 // (任意、既定値は100): 罠の設置に費やす移動コスト。
},
"use_action": {
{
"type": "repair_item", // アイテムを修理します。使用者のスキル、道具の性能、器用が、そのアイテムの製作/解体難易度(repairs_likeで修正可能)に照らして判定されます。
"item_action_type": "repair_fabric", // 使用メニュー内でのアクション名を決定する item_action JSON エントリを指定します。バニラの例では repair_fabric(布を修理)や repair_metal(金属を修理)があります。
"materials": [ //このアイテムで修理可能な素材のリスト。その素材のアイテムを修理する際にどの消費アイテムが必要かは、materials.json で定義されます。
"cotton",
"leather",
"nylon",
"wool",
"fur",
"faux_fur",
"nomex",
"kevlar",
"neoprene",
"gutskin"
],
"skill": "tailor", // 修理の成功率、および失敗時にアイテムをさらに損傷させるリスクを決定するスキルです。
"tool_quality": 3, // 道具によるボーナスです。スキルの値を 1.<X> 倍します(例:3なら1.3倍)。器用が8の場合、スキル10とtool_quality 2以上があれば、ゲーム内のあらゆるアイテムを「完全強化」することが可能になります。
"cost_scaling": 0.1, // 1回の修理成功につき、原材料がどれくらい必要かを増減させます。アイテムの容積(Volume)によっても変動します。
"move_cost": 800 // 成否判定が1回行われるまでの所要時間です。100 moves で 1ターン(1秒)に相当します。
}
},
"use_action": {
"type": "sew_advanced", // 衣類の改造(補強など)を行います。
"materials": [ // 改造に使用、または対象となる素材のリスト
"cotton",
"leather"
],
"skill": "tailor", // 使用されるスキル(裁縫)。
"clothing_mods": [ // 適用可能な衣類改造のリスト。
"leather_padded", // レザーパッド補強
"kevlar_padded" // ケブラーパッド補強
]
},
"use_action": {
"type": "multicooker", // プレイヤーが監視し続けることなく、時間経過でアイテムを自動製作します。
"do_hallu": false, // インタラクトした際に幻覚を見せたり、邪悪なマルチクッカーを出現させたりするかどうか。
"charges_to_start": 50, // 1アイテム製作ごとに消費される固定チャージ量。
"charges_per_minute": 1, // 製作時間1分あたりの消費チャージ量。
"time_mult": 1, // 製作時間の倍率。2なら2倍、0.5なら半分、0なら即時完了となります。
"recipes": [ "water_clean" ], // ここにリストされた特定のアイテムID(itype)が製作可能です。
"subcategories": [ "CSC_FOOD_MEAT", "CSC_FOOD_VEGGI", "CSC_FOOD_PASTA" ], // これらのサブカテゴリに含まれるアイテムなら製作可能です。
"temporary_tools": [ "hotplate", "tongs", "toolset", "pot" ] // 製作中に「内蔵道具」として一時的に生成される道具(コンロ、トング、道具セット、鍋など)。
},
"use_action": {
"type": "cast_spell", // 指定されたIDの呪文を唱えます。アイテムの「チャージ」を消費しますが、アイテムに USE_PLAYER_ENERGY フラグがある場合は、呪文自体で定義されたエネルギー源(マナや気など)を消費します。
"spell_id": "magus_escape", // 詠唱される呪文のID。
"no_fail": true, // 詠唱に失敗(不発)することがあるかどうか。
"level": 10, // その呪文が実行されるレベル。
"need_worn": true, // そのアイテムを「装備(着用)」していないと発動できないかどうか。
"need_wielding": true // そのアイテムを「手に持っていない(構えていない)」と発動できないかどうか。
}
ランダム説明文
"snippet_category" エントリを持つアイテムは、そのカテゴリに基づいたランダムな説明文を持つようになります:
"snippet_category": "newspaper",
アイテムの説明文はスニペットから取得されます。以下のように指定します(category の値は、アイテム定義の snippet_category と一致させる必要があります):
{
"type": "snippet",
"category": "newspaper",
"id": "snippet-id", // IDは任意です。職業のアイテムリストなどで特定の断片を参照する場合に使用します。
"text": "your flavor text"
}
一度に複数のスニペットを定義することも可能です:
{
"type": "snippet",
"category": "newspaper",
"text": [
"your flavor text",
"more flavor",
// この形式で記述すれば、特定の断片に参照用のIDを振ることもできます。
{ "id": "snippet-id", "text": "another flavor text" }
],
"text": ["your flavor text", "another flavor text", "more flavor"]
}
同じカテゴリに対して複数のスニペットを用意することが可能であり、むしろ推奨されます。ゲーム側でそのタイプのアイテムごとにランダムに1つが選択されます。
また、アイテム定義の中に直接スニペットを記述することもできます:
"snippet_category": [ "text 1", "text 2", "text 3" ],
この場合、そのアイテム専用のスニペットカテゴリが自動的に作成され、指定したテキストが登録されます。この形式でも上記のようにID付きの記述がサポートされています。