diff --git a/lib/bcdice/game_system/Warhammer4.rb b/lib/bcdice/game_system/Warhammer4.rb index eacb2c3f6..8e896785d 100644 --- a/lib/bcdice/game_system/Warhammer4.rb +++ b/lib/bcdice/game_system/Warhammer4.rb @@ -20,6 +20,12 @@ class Warhammer4 < Base 頑健ボーナスフラグは頑健ボーナス以下のダメージの時にUをつけます。 例)whctH whctAU WHCTL + ■ 『武器を掲げよ!』版クリティカル表 (bkctH, bkctA, bkctB, bkctL, bkctHx, bkctAx, bkctBx, bkctLx) + "BK部位 超過ダメージ"の形で指定します。 + 部位は「H(頭部)」「A(腕)」「B(胴体)」「L(足)」の4カ所です。 + 超過ダメージは耐久値を0にして余剰ダメージがある場合の値を入力します(省略可)。 + 例)bkctH bkctA4 BKCTL + ■ 命中部位表 (WHLT) 命中部位をランダムに決定します。(クリティカル用) @@ -33,9 +39,11 @@ class Warhammer4 < Base ■ 小誤発動表 (WHMIT) 小誤発動表をロールして、結果を表示します。 + ※Winds of Magic版(WOMMIT) ■ 大誤発動表 (WHMAT) 大誤発動表をロールして、結果を表示します。 + ※Winds of Magic版(WOMMAT) ■ 命中判定 (WHx) "WH(命中値)"の形で指定します。 @@ -43,7 +51,7 @@ class Warhammer4 < Base 例)wh60  wh(43-20) INFO_MESSAGE_TEXT - register_prefix('WH') + register_prefix('WH', 'WOM', 'BK') def initialize(command) super(command) @@ -130,14 +138,29 @@ def result_detail(sl, total, target) # クリティカル表 def roll_critical_table(command) m = /^WHCT([HABTL])(U)?$/.match(command) - return nil unless m + n = /^BKCT([HABTL])(\d*)?$/.match(command) + return nil unless m || n - part = m[1] - part = "B" if part == "T" + case command + when /^WHCT([HABTL])(U)?$/ + part = m[1] + part = "B" if part == "T" - under_ganken_bonus = !m[2].nil? + under_ganken_bonus = !m[2].nil? - CRITICAL_TABLES[part].roll(@randomizer, under_ganken_bonus) + CRITICAL_TABLES[part].roll(@randomizer, under_ganken_bonus) + when /^BKCT([HABTL])(\d*)?$/ + part = n[1] + part = "B" if part == "T" + + if n[2].nil? + over_damage = 0 + else + over_damage = n[2].to_i + end + + CRITICAL_TABLES_UIA[part].roll(@randomizer, over_damage) + end end class CriticalTable @@ -261,6 +284,127 @@ def roll(randomizer, under_ganken_bonus) ), }.freeze + class CriticalTable_UIA + def initialize(name, items) + @name = name + @items = items + end + + def roll(randomizer, over_damage) + dice = randomizer.roll_once(100) + if over_damage + dice = (dice + (over_damage * 10)).clamp(1, 1000) + end + + chosen = @items.find { |key, _| key >= dice }[1] + + "#{@name}(#{dice}) > #{chosen}" + end + end + + CRITICAL_TABLES_UIA = { + "H" => CriticalTable_UIA.new( + "頭部CT表(武器を掲げよ)", + [ + [3, '勲章となる傷:浅手:「出血状態」1つを得る。社交系テストSL+1(累積なし)。'], + [6, '朦朧化打撃:耐久値-1:「朦朧状態」1つを得る。'], + [9, '眼窩の負傷:耐久値-1:「目がくらんだ状態」1つを得る。'], + [15, '耳朶への強打:耐久値-1:「耳鳴り状態」1つを得る。'], + [20, '小さな裂傷:耐久値-1:「出血状態」1つを得る。'], + [25, '眼の周りの青あざ:耐久値-2:「目がくらんだ状態」2つを得る。'], + [30, '耳朶の裂傷:耐久値-2:「出血状態」2つに加えて、「耳鳴り状態」1つを得る。'], + [35, '額への一打:耐久値-2:「出血状態」2つに加えて「目がくらんだ状態」1つを得る。なお後者は「出血状態」を取り除いた後でなければ取り除けない。'], + [40, '顎骨折:耐久値-2:「朦朧状態」2つを得る。さらに「骨折(軽度)」の負傷を得る。'], + [45, '眼窩の大怪我:耐久値-3:「出血状態」2つを得る。さらに「目がくらんだ状態」1つも得て、こちらは「治療行為」を受けない限り回復できない。'], + [50, '耳朶の大怪我:耐久値-3:片耳の聴力を失う。聴覚に関するテストに-20。この効果をもう一度受けた場合、永続的な聴覚喪失者となる。これは魔法でしか治療できない。'], + [55, '鼻砕き:耐久値-3:「出血状態」2つを得る。「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したら「朦朧状態」1つも得る。社交系テストに+1/-1。'], + [60, '顎粉砕:耐久値-3:「朦朧状態」3つを得る。「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したら「気絶状態」を得る。「骨折(重度)」の負傷を得る。'], + [65, '耳が屑肉に:耐久値-4:「耳鳴り状態」3つに加えて「出血状態」2つを得る。片耳の機能を失う。「身体欠損(普通)」を被る。'], + [75, '口粉砕:耐久値-4:「出血状態」2つを得る。1d10本の歯が失われる。「身体欠損(容易)」を被る。'], + [80, '脳震盪:耐久値-4:「出血状態」2つと「耳鳴り状態」1つに加えて1d10の「朦朧状態」を得る。さらに1d10日間継続する「疲労状態」1つも得る。この「疲労状態」継続中に頭部への「致命的負傷」を再度得たなら、「普通(+20)」の〈肉体抵抗〉テストを行い、失敗したなら追加で「気絶状態」になる。'], + [85, '眼球破裂:耐久値-5:「目がくらんだ状態」3つと、「出血状態」2つ、「朦朧状態」1つを得る。片目の機能を失う。「身体欠損(難しい)」を被る。'], + [94, '顔が化け物のように:耐久値-5:「出血状態」3つ「目がくらんだ状態」3つ、「朦朧状態」2つを得る。片目の機能を失い、鼻梁も失う。「身体欠損(多難)」を被る。'], + [99, '顎が屑肉に:耐久値-5:「出血状態」4つと「朦朧状態」3つを得る。「超多難(-30)」な〈肉体抵抗〉テストを行い、失敗したら「気絶状態」になる。「骨折(重度)」の負傷を得て、舌と1d10本の歯を失う。「身体欠損(多難)」を被る。'], + [1000, '頭蓋骨粉砕:即死:'], + ] + ), + "A" => CriticalTable_UIA.new( + "腕部CT表(武器を掲げよ)", + [ + [10, '手首が揺さぶられる:浅手:手に持っているものを落としてしまう。'], + [20, '腕痺れ:浅手:手に持っているものを落としてしまう。その腕は1d10-【頑健力】ボーナスのラウンド(最低1)に渡り使えない。その期間中、その手は失われたものとして扱う。'], + [25, '小さな裂傷:耐久値-1:「出血状態」1つを得る。'], + [40, '捻挫:耐久値-1:「筋断裂(軽度)」の負傷を得る。'], + [45, '筋断裂:耐久値-1:「出血状態」1つと、「筋断裂(軽度)」の負傷を得る。'], + [50, '手の出血:耐久値-1:「出血状態」1つを得る。その手で何かを握る「アクション」を行う場合、先立って「普通(+20)」の【器用度】テストを行い、失敗したら取り落としてしまう。'], + [55, '肩の捻挫:耐久値-2:手に持っているものを落としてしまい、その腕は1d10ラウンドに渡って使えなくなる。'], + [60, '大きな傷口:耐久値-2:「出血状態」2つを得る。傷口を縫う「手術」を受ける前に同じ腕にダメージを受けた場合、傷口が開き「出血状態」1つを追加で得る。'], + [75, '単純骨折:耐久値-2:手に持っているものを落としてしまい、「骨折(軽度)」の負傷を得る。「難しい(-10)」〈肉体抵抗〉テストを行い、失敗したなら「朦朧状態」1つを得る。'], + [80, '靱帯断裂:耐久値-2:手に持っているものを落としてしまい、「筋断裂(重度)」の負傷を得る。'], + [85, '深手:耐久値-3:「出血状態」2つを得る。「朦朧状態」1つを得て、「筋断裂(軽度)」の負傷を得る。「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「気絶状態」になる。'], + [90, '肘粉砕:耐久値-3:手に持っているものを落としてしまい、「筋断裂(重度)」の負傷を得る。'], + [95, '動脈破損:耐久値-3:「出血状態」4つを得る。「手術」を受ける前に同じ腕にダメージを受けるたびに「出血状態」2つを得る。'], + [109, '肩の脱臼:耐久値-4:「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「朦朧状態」1つを得て「伏せ状態」になる。手に持っているものを落としてしまう。その腕を使うことはできず、欠損したものとして扱う。さらに「治療行為」を受けるまでの間「朦朧状態」1つを得る。'], + [115, '指切断:耐久値-4:「身体欠損(普通)」を被る。「出血状態」1つを得る。'], + [120, '手の半切断:耐久値-4:指一本を失い、「身体欠損(多難)」を被る。「出血状態」2つと「朦朧状態」1つを得る。君が「治療行為」を受けるまでの以降の各ラウンドに指を一本ずつ失う。すべての指を失ったら、その手の機能を失い「身体欠損(難しい)」を得る。'], + [125, '力こぶがズタズタに:耐久値-5:手に持っていたものを落とすとともに「筋断裂(重度)」の負傷を得て、「出血状態」2つと「朦朧状態」1つを得る。'], + [130, '片手が屑肉同然に:耐久値-5:その手の機能を失い、「身体欠損(多難)」を被る。「出血状態」2つを得る。「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「気絶状態」になる。'], + [135, '靱帯断裂:耐久値-5:腕は無用の長物と化す―「身体欠損(超多難)」を被る。「出血状態」3つ、「朦朧状態」1つを得て、「伏せ状態」になる。「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「気絶状態」になる。'], + [1000, '残酷な腕の喪失:即死:'], + ] + ), + "B" => CriticalTable_UIA.new( + "胴体CT表(武器を掲げよ)", + [ + [10, '息ができない:浅手:「朦朧状態」1つを得る。「普通(+20)」の〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」になる。また、1d10ラウンドに渡って「移動力」が半分になる。'], + [20, 'ただのかすり傷だって!:耐久値-1:「出血状態」1つを得る。'], + [25, 'みぞおちへの一打:耐久値-1:「朦朧状態」1つを得る。「容易(+40)」な〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」になる。'], + [30, '下腹部に直撃!:耐久値-1:「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「朦朧状態」3つを得る。'], + [35, '背中を捻じる:耐久値-1:「筋断裂(軽度)」の負傷を得る。'], + [40, '肋骨に青あざ:耐久値-2:1d10日間に渡って【敏捷力】に関連するテストに-10。'], + [45, '鎖骨捻じれ:耐久値-2:左右どちらの鎖骨かランダムに決定する。そちらの手に持っている物を落としてしまい、1d10ラウンドに渡ってその腕は使用できない。'], + [50, '裂傷:耐久値-2:「出血状態」2つを得る。'], + [55, '肋骨にひびが:耐久値-3:「朦朧状態」1つを得る。また、「骨折(軽度)」の負傷を得る。'], + [60, '大きな傷口:耐久値-3:「出血状態」3つを得る。「手術」を受けるまでの間、胴体に命中を受けるたびに追加で1つの「出血状態」を得る。'], + [65, '激痛を伴う裂傷:耐久値-3:「出血状態」2つと「朦朧状態」1つを得る。「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「気絶状態」になる。またSL+4以上でテストに成功していない限り、金切り声を上げてしまう。'], + [70, '動脈損傷:耐久値-3:「出血状態」4つを得る。「手術」を受けるまでの間、胴体に攻撃を受けるたびに追加で2つの「出血状態」を得る。'], + [75, '背筋断裂:耐久値-4:「筋断裂(重度)」の負傷を得る。'], + [80, '股関節骨折:耐久値-4:「朦朧状態」1つを得る。「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」にもなる。「骨折(軽度)」の負傷を得る。'], + [85, '胸郭の大怪我:耐久値-4:「出血状態」4つを得る。「手術」を受けるまでの間、胴体に命中を受けるたびに追加で2つの「出血状態」を得る。'], + [90, '内臓の損傷:耐久値-4:「膿み傷」に罹患し、「出血状態」2つを得る。'], + [95, '胸郭粉砕:耐久値-5:「朦朧状態」1つを得る。これは「治療行為」を受けない限り取り除くことは出来ない。さらに「骨折(重度)」の負傷を得る。'], + [110, '鎖骨粉砕:耐久値-5:「気絶状態」になる。これは「治療行為」を受けない限り取り除くことは出来ない。さらに「骨折(重度)」の負傷を得る。'], + [115, '内臓出血:耐久値-5:「出血状態」1つを得る。これは「手術」を受けない限り取り除くことは出来ない。さらに「血液腐れ病」に罹患する。'], + [1000, '胴部両断:即死:'], + ] + ), + "L" => CriticalTable_UIA.new( + "脚部CT表(武器を掲げよ)", + [ + [10, '爪先をぶつける:浅手:「普通(+20)」の〈肉体抵抗〉テストを行い、失敗したなら次のターンの終了時まで【敏捷力】に関するテストに-10。'], + [20, '足がかりを失う:浅手:「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」になる。'], + [25, '足首の捻挫:耐久値-1:以降1d10ラウンドに渡って【敏捷力】に関連するテストに-10。'], + [40, '小さな裂傷:耐久値-1:「出血状態」1つを得る。'], + [45, '太腿への打撃:耐久値-1:「出血状態」1つを得て「普通(+20)」の〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」になる。'], + [50, '足首の筋断裂:耐久値-1:「筋断裂(軽度)」の負傷を得る。'], + [55, '膝の捻挫:耐久値-2:以降1d10ラウンドに渡って【敏捷力】に関連するテストに-20。'], + [60, '爪先のひどい裂傷:耐久値-2:「出血状態」1つを得る。「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したなら片方の爪先を失う―「身体欠損(普通)」を被る。'], + [65, 'ひどい裂傷:耐久値-2:「出血状態」2つを得る。「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」になる。'], + [70, '膝のひどい捻挫:耐久値-3:「筋断裂(重度)」の負傷を得る。'], + [80, '太腿への深手:耐久値-3:「出血状態」3つを得る。「手強い(+0)」〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」になる。「手術」を受けるまでの間、この脚に命中を受けるたびに、追加で1つの「出血状態」を得る。'], + [75, '脚への痛打:耐久値-3:「伏せ状態」に加えて「出血状態」2つを得て、「骨折(軽度)」の負傷を得る。さらに「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「朦朧状態」1つを追加で得る。'], + [85, '靱帯断裂:耐久値-3:「伏せ状態」に加えて「朦朧状態」1つを得る。「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「気絶状態」になる。君のその脚は使えなくなる。'], + [90, '脛への深手:耐久値-4:敵の武器が君の膝下に当たり、骨に食い込んで腱を切断する。「朦朧状態」1つを得て、「伏せ状態」になる。さらに「筋断裂(重度)」と「骨折(軽度)」の負傷を得る。'], + [95, '膝粉砕:耐久値-4:「出血状態」1つと「朦朧状態」1つを得ることに加えて、「伏せ状態」になる。「骨折(重度)」の負傷を得る。'], + [105, '膝関節脱臼:耐久値-4:「伏せ状態」になる。「多難(-20)」な〈肉体抵抗〉テストを行い、失敗したなら「朦朧状態」1つを得る。これは「治療行為」を受けない限り取り除くことができない。'], + [115, '脚粉砕:耐久値-4:「普通(+20)」の〈肉体抵抗〉テストを行い、失敗したなら「伏せ状態」を得て、足の指1本を失う。さら、SLが-1あるごとに追加で1つの足指を失う―「身体欠損(普通)」を被る。「出血状態」2つを得る。'], + [120, '足切断:耐久値-5:「身体欠損(多難)」を被る。「出血状態」3つと「朦朧状態」2つを得て「伏せ状態」になる。'], + [125, 'アキレス腱切断:耐久値-5:苦痛に金切り声を上げながら倒れる。「出血状態」2つと「朦朧状態」2つを得て「伏せ状態」になる。「身体欠損(超多難)」を被る。'], + [1000, '骨盤粉砕:即死:'], + ] + ), + }.freeze + # 命中判定 def roll_attack(command) m = /^WH(\d+)$/.match(command) @@ -449,6 +593,58 @@ def roll_wrath_of_god_table(command) [96..100, 'エーテルの逆流:君の【意志力】ボーナス×1ヤード以内にいるすべての者は──敵も味方も同様に──(【頑健力】ボーナスとアーマー・ポイント〔AP〕を無視して)1d10点の「耐久値」を失い、さらに「伏せ状態」になる。射程内に目標が存在しなければ、魔法は行き場を失い、君の頭は爆発し、君は即死する。'], ] ), + "WOMMIT" => DiceTable::RangeTable.new( + "小誤発動表(Winds of Magic)", + "1D100", + [ + [1..5, '魔女の印:1マイル以内で次に新たに生まれたクリーチャー1体が混沌変異する。'], + [6..10, '酸っぱいミルク:1d100ヤード以内のすべてのミルクが即座に酸っぱくなる。'], + [11..15, '立ち枯れ:君の【意志力】ボーナス×1 マイル以内の農場が立ち枯れの病にかかり、すべての穀物が一夜のうちに腐れてしまう。'], + [16..20, '耳垢閉塞:君の耳が即座に分厚い耳垢で詰まってしまう。「耳鳴り状態」1つを得る。誰かが君に耳掃除してくれない限りこれを取り除くことはできない(〈治療〉技能を用いてテストに成功しなければならない)。'], + [21..25, '凍える吐息:君の周囲の気温が急降下し、人の吐息が白くなる。君から【意志力】ボーナス×1 マイル以内の者は全員手強い (+0) 〈肉体抵抗〉テストに成功しなければ急激な寒さにより、その場を離れない限り【射撃技術度】、【敏捷力】、【器用度】テストに–10の修正を受ける。この効果は1分間継続する。'], + [26..30, '結び目ほどき:君の「所持品」のあらゆる留め金が外れ、あらゆる紐の結び目がほどけてしまう。ベルトはずり落ち、ポーチは開き、バッグは落ち、鎧も外れてしまうのだ。'], + [31..35, '気まぐれな装い:君の衣服が自分の意志を持っているかのように振る舞う。「組み付かれた状態」1つを得る。これに抵抗するための【筋力】は1d10×5となる。'], + [36..40, '節制の呪い:1d100ヤード以内のすべての酒が苦くて臭いひどい味になる。オールド・ワールドの酒場の多くでなぜ呪文詠唱が好まれないのか、その理由の一助である。'], + [41..45, '鼻につく言葉:1d10ラウンドにわたって、すべての〈言語〉テスト(発動テストも含む)に-10のペナルティを被る。'], + [46..50, '困惑する:戦闘に参加しているなら、「不意を討たれた状態」になる。それ以外の場合、君は完全にびくついてしまい、心はあたふたとし、ほんの片時も集中することができなくなる。'], + [51..55, '不浄なる幻視:穢らわしく不浄な行為の幻視が浮かび上がり君を悩ませる。「目がくらんだ状態」1つを得る。「手強い」(+0)〈冷静さ〉テストを行ない、失敗したなら、さらに1つの同「状態」を得る。'], + [56..60, '魔女の目:君の目が1d10時間にわたって、自分の「魔法体系」に関連した不自然な色に変わる。目の色が変わっている間、君はいかなる手段でも取り除くことができない「目がくらんだ状態」1つを得る。君はこの期間、《魔法感知》と《第二の視覚》異能を使用できなくなる。'], + [61..65, '破裂:君の鼻、目、耳からおびただしく出血する。1d10個の「出血状態」を得る。'], + [66..70, '地獄の囁き:GMは印表(p.45)から反転の印を二つ選んでもよい。「普通」(+20)の【意志力】テストを行ない、失敗したなら「堕落ポイント」1点を得る。'], + [71..75, '恐怖!:君は混沌の領域を忌まわしき瞬く間にいくつも幻視し、それに苛まれる。GMは反転の印を「印表」(p.45)から1つ選んでもよい。「多難」(-20)な〈冷静さ〉テストを行ない、失敗したなら「戦意喪失状態」1つを得る。'], + [76..80, '堕落の呪い:「堕落ポイント」1点を得る。'], + [81..85, '腸内大暴動:君はお腹の不調を抑えきれず、粗相してしまう。「疲労状態」1つを得るが、これは君が衣服を取り替え、身体を綺麗にするまで取り除くことができない。'], + [86..90, '魔法の刻印:君は自身が扱う魔力の風の物理的な印を具現する。ハイシュの印ならp.58、シャモンの印ならp.70、グューランの印ならp.82、アズィルの印ならp.94、ウルグの印ならp.106、シャイシュの印ならp.118、アキュシーの印ならp.130、ガウルの印ならp.142を参照せよ。魔法印表のいずれも君の魔法的な背景に合わないか、すでに具現した印を得るなら、『大誤発動表』でもう一度ロールすること。'], + [91..95, '倍増する不幸:この表を2回ロールする。91〜100が出た場合には再ロールをすること。'], + [96..100, 'ほとばしる混沌:『大誤発動表』でもう一度ロールすること。'], + ] + ), + "WOMMAT" => DiceTable::RangeTable.new( + "大誤発動表(Winds of Magic)", + "1D100", + [ + [1..5, '亡霊の声:【意志力】×1ヤード以内のすべての者が“混沌の領域”から現れた暗く誘惑的な囁き声を耳にする。知性のあるクリーチャーは皆、「普通」(+20)の〈冷静さ〉テストを行ない、失敗したなら、「堕落ポイント」1点を得る。'], + [6..10, 'エーテルの衝撃:君は、【頑健力】ボーナスとアーマー・ポイント〔AP〕による修正値を無視して、1d10点の「耐久値」を失う。さらに、「普通」(+20)の〈肉体抵抗〉テストを行ない、失敗したなら、「朦朧状態」1つも得る。'], + [11..15, '死の歩み:君の足跡はその行く手に死を残していく。次の1d10時間にわたって、君の周囲のあらゆる植物は枯れ死に果てる。'], + [16..20, '二重の災難:君が発動した呪文の効果は1d10マイル以内の他の場所で発生する。そこでどのような結果が起こるかはGMの裁定によるが、可能な限り影響があるべきだ。'], + [21..25, '魂の火:君は自分の「魔法体系」に関連した色の不浄な炎に取り巻かれ、「炎上状態」1つを得る。'], + [26..30, '抑えの効かぬ舌:君は1d10ラウンドにわたって、わけのわからないことを喋りまくる。この間、君は言葉による意思疏通ができず、あらゆる発動テストを行なうこともできないが、それ以外は通常通り行動してもよい。'], + [31..35, '群れの襲撃:君はエーテル体のラット、ジャイアント・スパイダー、スネーク、その他(GM の任意)の群れに囲まれる。関連するクリーチャー種別の通常プロフィールに「群れ」の「クリーチャー特徴」を加えて用いること。1d10ラウンドの終了後に、まだ倒されていなければその群れは撤退する。'], + [36..40, '布人形:君はランダムな方向に1d10ヤード空中に投げ飛ばされ、地面に落ちて1d10点の「耐久値」を失い(アーマー・ポイント〔AP〕は無視する)、さらに「伏せ状態」になる。'], + [41..45, '凍りつく四肢:四肢のひとつ(ランダムに決定する)が1d10ラウンドにわたって動かなくなる。この四肢はまるで「身体欠損」(P.180を参照)になったかのように使い物にならない。'], + [46..50, '闇の目:君は1d10時間にわたって、《第二の視覚》の異能の利益を失う。この時間中、君は〈魔風交信〉テストにも-20のペナルティを被る。'], + [51..55, '混沌の先見:1d10点ぶんの「幸運ポイント」の余剰プールを得る(これは通常の上限を超えても構わない)。君が「幸運ポイント」を1点消費するたびに、「堕落ポイント」を1点獲得する。なお、セッションの終了時に残存している追加で得たポイントはすべて失われる。GMは君の【意志力】ボーナスと等しい数の反転の印(p.45)を君に与える。'], + [56..60, '浮遊:君は“魔力の風”に乗り、1d10分にわたって地上から1d10ヤードの高さに浮かび上がる。他のキャラクターたちが君を無理やり動かすこともできるし、君も呪文や翼などを使って移動することもできるが、そのままにしておくと君が浮かんだ位置に常に戻ってくる。「浮遊」が終了した後に何が起こるかについては、「落下」(P.166)を参照のこと。'], + [61..65, '吐き気:君は吐き気が抑えきれなくなり、君の体内にあった量以上の、悪臭を放つ汚物を吐きちらす。「朦朧状態」1つを得る。これは1d10ラウンドにわたって持続する。'], + [66..70, '混沌の地震:1d100ヤード以内にいるすべてのクリーチャーは「普通」(+20)の〈運動〉テストを行ない、失敗したなら、「伏せ状態」になる。'], + [71..75, '忘却:発動しようとした呪文が君の記憶から喪失する。君がもしその呪文を記憶していたなら、思い出すことができず、再度記憶せねばならない。魔導書から発動していたなら、呪文が書かれていたページが発火する。呪文は失われ、適切な処置をすぐに行わなければ、魔導書が「炎上状態」1つを得る。'], + [76..80, '裏切り:暗黒の神々が恐るべき背信を行なうよう君を誘惑する。君が味方の1人に対する攻撃か、その他何らかの裏切り行為に全力を尽くしたなら、「幸運ポイント」をすべて回復できる。君が他のキャラクターに「運命点」1点を失わせたなら、君がその1点の「運命点」を得る。'], + [81..85, '穢らわしい弱体化:1点の「堕落ポイント」に加えて、「疲労状態」1つを獲得し、さらに「伏せ状態」にもなる。'], + [86..90, '凄まじき悪臭:いまや君は鼻が曲がりそうなまでに臭い!君は「攪乱」の「クリーチャー特徴」(P.338)を獲得し、おそらく嗅覚を持つ誰彼すべてからの敵意にさらされる。この効果は1d10時間持続する。'], + [91..95, '力の流出:君は1d10分にわたって、呪文を発動するために使う異能を使用することができない(通常は《秘術魔術》だが、《混沌魔術》や同種の異能ということもありえる)。'], + [96..100, 'エーテルの逆流:君の【意志力】ボーナス×1ヤード以内にいるすべての者は──敵も味方も同様に──(【頑健力】ボーナスとアーマー・ポイント〔AP〕を無視して)1d10点の「耐久値」を失い、さらに「伏せ状態」になる。射程内に目標が存在しなければ、魔法は行き場を失い、君の頭は爆発し、君は即死する。'], + ] + ), }.freeze end end diff --git a/test/data/Warhammer4.toml b/test/data/Warhammer4.toml index fdc5beebe..def179963 100644 --- a/test/data/Warhammer4.toml +++ b/test/data/Warhammer4.toml @@ -1748,6 +1748,102 @@ rands = [ { sides = 100, value = 100 } ] +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH # クリティカル表(武器掲)境界値テスト" +output = "頭部CT表(武器を掲げよ)(1) > 勲章となる傷:浅手:「出血状態」1つを得る。社交系テストSL+1(累積なし)。" +rands = [ + { sides = 100, value = 1 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(3) > 勲章となる傷:浅手:「出血状態」1つを得る。社交系テストSL+1(累積なし)。" +rands = [ + { sides = 100, value = 3 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(4) > 朦朧化打撃:耐久値-1:「朦朧状態」1つを得る。" +rands = [ + { sides = 100, value = 4 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(6) > 朦朧化打撃:耐久値-1:「朦朧状態」1つを得る。" +rands = [ + { sides = 100, value = 6 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(7) > 眼窩の負傷:耐久値-1:「目がくらんだ状態」1つを得る。" +rands = [ + { sides = 100, value = 7 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(9) > 眼窩の負傷:耐久値-1:「目がくらんだ状態」1つを得る。" +rands = [ + { sides = 100, value = 9 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(10) > 耳朶への強打:耐久値-1:「耳鳴り状態」1つを得る。" +rands = [ + { sides = 100, value = 10 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH" +output = "頭部CT表(武器を掲げよ)(15) > 耳朶への強打:耐久値-1:「耳鳴り状態」1つを得る。" +rands = [ + { sides = 100, value = 15 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTL3" +output = "脚部CT表(武器を掲げよ)(126) > 骨盤粉砕:即死:" +rands = [ + { sides = 100, value = 96 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH1 # クリティカル表(武器掲)超過ダメージテスト" +output = "頭部CT表(武器を掲げよ)(11) > 耳朶への強打:耐久値-1:「耳鳴り状態」1つを得る。" +rands = [ + { sides = 100, value = 1 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTH1" +output = "頭部CT表(武器を掲げよ)(15) > 耳朶への強打:耐久値-1:「耳鳴り状態」1つを得る。" +rands = [ + { sides = 100, value = 5 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "bkCTL100" +output = "脚部CT表(武器を掲げよ)(1000) > 骨盤粉砕:即死:" +rands = [ + { sides = 100, value = 100 } +] + [[ test ]] game_system = "Warhammer4" input = "whWGT" @@ -1836,6 +1932,53 @@ rands = [ { sides = 100, value = 100 } ] +[[ test ]] +game_system = "Warhammer4" +input = "womMIT" +output = "小誤発動表(Winds of Magic)(25) > 凍える吐息:君の周囲の気温が急降下し、人の吐息が白くなる。君から【意志力】ボーナス×1 マイル以内の者は全員手強い (+0) 〈肉体抵抗〉テストに成功しなければ急激な寒さにより、その場を離れない限り【射撃技術度】、【敏捷力】、【器用度】テストに–10の修正を受ける。この効果は1分間継続する。" +rands = [ + { sides = 100, value = 25 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "womMIT" +output = "小誤発動表(Winds of Magic)(50) > 困惑する:戦闘に参加しているなら、「不意を討たれた状態」になる。それ以外の場合、君は完全にびくついてしまい、心はあたふたとし、ほんの片時も集中することができなくなる。" +rands = [ + { sides = 100, value = 50 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "womMIT" +output = "小誤発動表(Winds of Magic)(100) > ほとばしる混沌:『大誤発動表』でもう一度ロールすること。" +rands = [ + { sides = 100, value = 100 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "womMAT" +output = "大誤発動表(Winds of Magic)(1) > 亡霊の声:【意志力】×1ヤード以内のすべての者が“混沌の領域”から現れた暗く誘惑的な囁き声を耳にする。知性のあるクリーチャーは皆、「普通」(+20)の〈冷静さ〉テストを行ない、失敗したなら、「堕落ポイント」1点を得る。" +rands = [ + { sides = 100, value = 1 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "womMAT" +output = "大誤発動表(Winds of Magic)(50) > 闇の目:君は1d10時間にわたって、《第二の視覚》の異能の利益を失う。この時間中、君は〈魔風交信〉テストにも-20のペナルティを被る。" +rands = [ + { sides = 100, value = 50 } +] + +[[ test ]] +game_system = "Warhammer4" +input = "womMAT" +output = "大誤発動表(Winds of Magic)(100) > エーテルの逆流:君の【意志力】ボーナス×1ヤード以内にいるすべての者は──敵も味方も同様に──(【頑健力】ボーナスとアーマー・ポイント〔AP〕を無視して)1d10点の「耐久値」を失い、さらに「伏せ状態」になる。射程内に目標が存在しなければ、魔法は行き場を失い、君の頭は爆発し、君は即死する。" +rands = [ + { sides = 100, value = 100 } +] [[ test ]] game_system = "Warhammer4"