Class: BCDice::GameSystem::OneWayHeroics
- Defined in:
- lib/bcdice/game_system/OneWayHeroics.rb,
lib/bcdice/game_system/one_way_heroics/tables.rb,
lib/bcdice/game_system/one_way_heroics/dungeon_table.rb,
lib/bcdice/game_system/one_way_heroics/random_event_table.rb
Defined Under Namespace
Classes: BranchByDay, BranchByDayParity, BranchByElapsedDays, DungeonTable, GoldFlow, MoveToTable, MoveToTableWithDay, RandomEventTable, StatusDown
Constant Summary collapse
- ID =
ゲームシステムの識別子
'OneWayHeroics'
- NAME =
ゲームシステム名
'片道勇者TRPG'
- SORT_KEY =
ゲームシステム名の読みがな
'かたみちゆうしやTRPG'
- HELP_MESSAGE =
ダイスボットの使い方
<<~MESSAGETEXT ・判定 aJDx+y,z a:ダイス数(省略時2個)、x:能力値、 y:修正値(省略可。「+」のみなら+1)、z:目標値(省略可) 例1)JD2+1,8 or JD2+,8 :能力値2、修正+1、目標値8 例2)JD3,10 能力値3、修正なし、目標値10 例3)3JD4+ ダイス3個から2個選択、能力値4、修正なし、目標値なし ・ファンブル表 FT/魔王追撃表 DC/進行ルート表 PR/会話テーマ表 TT 逃走判定表 EC/ランダムNPC特徴表 RNPC/偵察表 SCT 施設表 FCLT/施設表プラス FCLTP/希少動物表 RANI/王特徴表プラス KNGFTP 野外遭遇表 OUTENC/野外遭遇表プラス OUTENCP モンスター特徴表 MONFT/モンスター特徴表プラス MONFTP ドロップアイテム表 DROP/ドロップアイテム表プラス DROPP 武器ドロップ表 DROPWP/武器ドロップ表2 DROPWP2 防具ドロップ表 DROPAR/防具ドロップ表2 DROPAR2 聖武具ドロップ表 DROPHW/聖武具ドロップ表プラス DROPHWP 食品ドロップ表 DROPFD/食品ドロップ表2 DROPFD2 巻物ドロップ表 DROPSC/巻物ドロップ表2 DROPSC2 その他ドロップ表 DROPOT/その他 ドロップ表2 DROPOT2 薬品ドロップ表プラス DROPDRP/珍しい箱ドロップ表2 DROPRAREBOX2 ・ランダムイベント表 RETx(x:現在の日数)、ランダムイベント表プラス RETPx 例)RET3、RETP4 ・ダンジョン表 DNGNx(x:現在の日数)、ダンジョン表プラス DNGNPx 例)DNGN3、DNGNP4 MESSAGETEXT
- TABLES =
{ "FT" => DiceTable::ChainTable.new( "ファンブル表", "1D6", [ "装備以外のアイテムのうちプレイヤー指定の1つを失う", "装備のうちプレイヤー指定の1つを失う", GoldFlow.new(1, "失う"), # "1D6に100を掛け、それだけの【所持金】を失う", GoldFlow.new(1, "拾う"), # "1D6に100を掛け、それだけの【所持金】を拾う", "【経験値】2を獲得する", "【経験値】4を獲得する", ] ), "DC" => DiceTable::ChainTable.new( "魔王追撃表", "1D6", [ "装備以外のアイテムのうちGM指定の1つを失う", "装備のうちGM指定の1つを失う", GoldFlow.new(2, "失う"), # "2D6に100を掛け、それだけの【所持金】を失う", StatusDown.new("【LIFE】", 1), # 【LIFE】が1D6減少する StatusDown.new("【ST】", 1), # 【ST】が1D6減少する StatusDown.new("【LIFE】", 2) # 【LIFE】が2D6減少する ] ), "PR" => DiceTable::Table.new( "進行ルート表", "1D6", [ "少し荒れた地形が続く。【日数】から【筋力】を引いただけ【ST】が減少する(最低0)", "穏やかな地形が続く。【日数】から【敏捷】を引いただけ【ST】が減少する(最低0)", "険しい岩山だ。【日数】に1を足して【生命】を引いただけ【ST】が減少する(最低0)「登山」", "山で迷った。【日数】に2を足して【知力】を引いただけ【ST】が減少する(最低0)「登山」", "川を泳ぐ。【日数】に1を足して【意志】を引いただけ【ST】が減少する(最低0)「水泳」", "広い川を船で渡る。【日数】に2を足して【魅力】を引いただけ【ST】が減少する(最低0)「水泳」" ] ), "TT" => DiceTable::Table.new( "会話テーマ表", "1D6", [ "身体の悩みごとについて話す。【筋力】で判定。", "仕事の悩みごとについて話す。【敏捷】で判定。", "家族の悩みごとについて話す。【生命】で判定。", "勇者としてこれでいいのか的悩みごとを話す。【知力】で判定。", "友人関係の悩みごとを話す。【意志】で判定。", "恋の悩みごとを話す。【魅力】で判定。" ] ), "EC" => DiceTable::Table.new( "逃走判定表", "1D6", [ "崖を登れば逃げられそうだ。【筋力】を使用する。", "障害物はない。走るしかない。【敏捷】を使用する。", "しつこく追われる。【生命】を使用する。", "隠れられる地形がある。【知力】を使用する。", "背中を向ける勇気が出るか? 【意志】を使用す", "もう人徳しか頼れない。【魅力】を使用する。" ] ), "RNPC" => DiceTable::Table.new( "ランダムNPC特徴表", "2D6", [ "【物持ちの】", "【目のいい】", "【弱そうな】", "【宝石好きな】", "【エッチな】", "【ケチな】", "【変態の】", "【金持ちの】", "【強そうな】", "【目の悪い】", "【すばやい】" ] ), "SCT" => DiceTable::Table.new( "偵察表", "1D6", [ "山に突き当たる。「登山」判定:【筋力】 ジャッジ:山を登る描写。", "川を流れ下る。「水泳」判定:【敏捷】 ジャッジ:川でピンチに陥る描写。", "広い湖だ……。「水泳」判定:【生命】 ジャッジ:湖面を泳ぐ描写。", "山の楽なルートを探そう。「登山」判定:【知力】 ジャッジ:山の豆知識。", "迫る闇から恐怖のあまり目を離せない。判定:【意志】 ジャッジ:勇者としての決意。", "任意のNPCに会って情報を聞く。判定:【魅力】 ジャッジ:相手を立てる会話。" ] ), "FCLT" => DiceTable::Table.new( "施設表", "2D6", [ "聖なる神殿(152ページ)。", "魔王の力を封じた神殿(152ページ)。", "耳長たちの村(152ページ)。", "「村遭遇表」へ移動。大きな街なので村遭遇表を2回使用し、好きな結果を選べる。", "「村遭遇表」へ移動。小さな村だ。", "エリアの地形が「雪原」なら雪国の小屋(152ページ)。エリアの地形が「山岳」なら山小屋(152ページ)。それ以外の地形なら「村遭遇表」へ移動。この村は「石の小屋」だ。", "村遭遇表」へ移動。小さな村だ。", "村遭遇表」へ移動。大きな街なので村遭遇表を2回使用し、好きな結果を選べる。", "滅びた石の小屋(152ページ)。", "滅びた小さな村(152ページ)。", "闇ギルド(152ページ)。" ] ), "FCLTP" => DiceTable::D66Table.new( "施設表プラス", D66SortType::ASC, { 11 => "聖なる神殿(基本152ページ)", 12 => "魔王の力を封じた神殿(基本152ページ)", 13 => "耳長たちの村(基本152ページ)判定成功時に【耳長の軽い弓】【耳長の杖】を購入可能", 14 => "村遭遇表へ移動(基本151ページ)大きな街なので村遭遇表を2回振り、好きな結果を選べる", 15 => "村遭遇表へ移動(基本151ページ)小さな村", 16 => "エリアの地形が雪原なら雪国の小屋(基本152ページ)エリアの地形が山岳なら山小屋(基本152ページ)それ以外の地形なら石の小屋、村遭遇表へ移動(基本151ページ)", 22 => "村遭遇表へ移動(基本151ページ)小さな村", 23 => "村遭遇表へ移動(基本151ページ)大きな街なので村遭遇表を2回振り、好きな結果を選べる", 24 => "滅びた石の小屋(基本152ページ)", 25 => "滅びた小さな村(基本152ページ)", 26 => "闇ギルド(基本152ページ)判定成功時に一度だけ【闇ギルド袋屋】に3000シルバ支払い【所持重量】を1増加することができる。", 33 => "小さな店遭遇表プラスへ移動(023ページ)", 34 => "酒場遭遇表プラスへ移動", 35 => "酒場遭遇表プラスへ移動", 36 => "錬金おばばの家(024ページ)", 44 => "鍛冶屋の家(024ページ)", 45 => "半獣人の隠れ家(024ページ)", 46 => "罪人の街(024ページ)", 55 => "封印の街(024ページ)", 56 => "水上の街(024ページ)", 66 => "人魚の集落(024ページ)", } ), "OUTENC" => DiceTable::ChainTable.new( "野外遭遇表", "1D6", [ MoveToTable.new("エリアの地形ごとの野外モンスター表へ移動。モンスターのうち1体にランダムな特徴がつく。モンスター特徴表(156ページ)を使用する。", "MONFT"), "エリアの地形ごとの野外モンスター表へ移動", "エリアの地形ごとの野外モンスター表へ移動", "アンデッドの群れ(156ページ)", "盗賊の群れ(156ページ)", MoveToTable.new("希少動物表(基本156ページ)へ移動", "RANI"), ] ), "OUTENCP" => DiceTable::ChainTable.new( "野外遭遇表プラス", "1D6", [ MoveToTable.new("エリアの地形ごとの野外モンスター表プラスへ移動。モンスターのうち1体にランダムな特徴がつく。モンスター特徴表プラス(027ページ)を使用する。", "MONFTP"), "エリアの地形ごとの野外モンスター表プラスへ移動し、出現したモンスターとの戦闘が発生する", "スライムモンスター表プラス(027ページ)へ移動", "アンデッドの群れ(基本156ページ)", "盗賊の群れ(基本156ページ)", MoveToTable.new("希少動物表(基本156ページ)へ移動", "RANI"), ] ), "MONFT" => DiceTable::D66Table.new( "モンスター特徴表", D66SortType::ASC, { 11 => "【エッチな】", 12 => "【変態の】", 13 => "【弱そうな】", 14 => "【目のいい】", 15 => "【目の悪い】", 16 => "【強そうな】", 22 => "【強そうな】", 23 => "【宝石好きな】", 24 => "【幻の】", 25 => "【違法な】", 26 => "【イカした】", 33 => "【物持ちの】", 34 => "【炎を吐く】", 35 => "【必中の】", 36 => "【すばやい】", 44 => "【やたら硬い】", 45 => "【名の知れた】", 46 => "【凶悪な】", 55 => "【賞金首の】", 56 => "【古代種の】", 66 => "【最強の】", } ), "MONFTP" => DiceTable::D66Table.new( "モンスター特徴表プラス", D66SortType::ASC, { 11 => "【エッチな】(基本178ページ)", 12 => "【変態の】(基本178ページ)", 13 => "【目のいい】(基本178ページ)", 14 => "【目の悪い】(基本178ページ)", 15 => "【強そうな】(基本178ページ)", 16 => "【宝石好きな】(基本178ページ)", 22 => "【幻の】(基本178ページ)", 23 => "【違法な】(基本178ページ)", 24 => "【イカした】(基本178ページ)", 25 => "【物持ちの】(基本178ページ)", 26 => "【炎を吐く】(基本178ページ)", 33 => "【やたら硬い】(基本178ページ)", 34 => "【古代種の】(基本178ページ)", 35 => "【最強の】(基本178ページ)", 36 => "【異国風の】(047ページ)", 44 => "【毛深い】(047ページ)", 45 => "【耐火の】(047ページ)", 46 => "【耐雷の】(047ページ) ", 55 => "【浮遊の】(047ページ)", 56 => "【臭い】(047ページ)", 66 => "【恐怖の】(047ページ)", } ), "RANI" => DiceTable::RangeTable.new( "希少動物表", "1D6", [ [1, "【『緑の森』隊長】1体と遭遇する。今回のセッションで【雪ウサギ】【山岳ゴート】【遺跡白馬】【草原カワウソ】【砂漠キツネ】のいずれかを倒したことがあれば、戦闘が発生する。戦闘にならなかった場合はなごやかに別れる。"], [2..3, "【『緑の森』団員】1体と遭遇する。今回のセッションで【雪ウサギ】【山岳ゴート】【遺跡白馬】【草原カワウソ】【砂漠キツネ】のいずれかを倒したことがあれば、戦闘が発生する。戦闘にならなかった場合はなごやかに別れる。"], [4..6, "地形によって異なる希少動物が1体出現する。雪原なら【雪ウサギ】、山岳なら【山岳ゴート】、遺跡なら【遺跡白馬】、草原なら【草原カワウソ】、砂漠と荒野は【砂漠キツネ】。それ以外は【緑の森団員】となる。戦闘を挑んでもいいし、見送ってもいい。"] ] ), "DROP" => DiceTable::ChainTable.new( "ドロップアイテム表", "1D6", [ MoveToTable.new("武器ドロップ表へ移動", "DROPWP"), MoveToTable.new("武器ドロップ表へ移動", "DROPWP"), MoveToTable.new("防具ドロップ表へ移動", "DROPAR"), MoveToTable.new("食品ドロップ表へ移動", "DROPFD"), MoveToTable.new("巻物ドロップ表へ移動", "DROPSC"), MoveToTable.new("その他ドロップ表へ移動", "DROPOT"), ] ), "DROPWP" => DiceTable::D66Table.new( "武器ドロップ表", D66SortType::ASC, { 11 => "【さびた小剣】", 12 => "【さびた長剣】", 13 => "【さびた大剣】", 14 => "【長い棒】", 15 => "【ダガー】", 16 => "【木こりの大斧】", 22 => "【ショートブレイド】", 23 => "【木の杖】", 24 => "【狩人の弓】", 25 => "【レイピア】", 26 => "【携帯弓】", 33 => "【ロングブレイド】", 34 => "【スレンドスピア】", 35 => "【バトルアックス】", 36 => "【軍用剛弓】", 44 => "【グランドブレイド】", 45 => "【祈りの杖】", 46 => "【ヘビィボウガン】", 55 => "【シルバーランス】", 56 => "【イーグルブレイド】", 66 => "【クレセントアクス】" } ), "DROPAR" => DiceTable::D66Table.new( "防具ドロップ表", D66SortType::ASC, { 11 => "【旅人の服】", 12 => "【旅人の服】", 13 => "【旅人の服】", 14 => "【レザーシールド】", 15 => "【レザーシールド】", 16 => "【騎士のコート】", 22 => "【騎士のコート】", 23 => "【スケイルシールド】", 24 => "【スケイルシールド】", 25 => "【レザーベスト】", 26 => "【レザーベスト】", 33 => "【ヘビィシールド】", 34 => "【チェインクロス】", 35 => "【チェインクロス】", 36 => "【試練の腕輪】", 44 => "【精霊のローブ】", 45 => "【必殺の腕輪】", 46 => "【ギガントプレート】", 55 => "【破壊の腕輪】", 56 => "【理力の腕輪】", 66 => "【加速の腕輪】" } ), "DROPHW" => DiceTable::Table.new( "聖武具ドロップ表", "2D6", [ "【紅き太陽の剣】", "【紅き太陽の剣】", "【聖剣カレドヴルフ】 ", "【聖斧エルサーベス】 ", "【水霊のマント】", "【大地の鎧】", "【大気の盾】", "【聖弓ル・アルシャ】", "【聖槍ヴァルキウス】", "【聖なる月の剣】", "【聖なる月の剣】" ] ), "DROPFD" => DiceTable::D66Table.new( "食品ドロップ表", D66SortType::ASC, { 11 => "【枯れた草】", 12 => "【こげた草】", 13 => "【サボテンの肉】", 14 => "【動物の肉】", 15 => "【癒しの草】、地形が火山なら【こげた草】", 16 => "【癒しの草】、地形が火山なら【こげた草】、地形が雪原なら【スノークリスタ草】", 22 => "【スタミナ草】、地形が火山なら【こげた草】", 23 => "【スタミナ草】、地形が火山なら【こげた草】、地形が雪原なら【スノークリスタ草】", 24 => "【触手の草】、地形が火山なら【こげた草】", 25 => "【触手の草】、地形が火山なら【こげた草】、地形が雪原なら【スノークリスタ草】", 26 => "【スタミナのアンプル】", 33 => "【癒しのアンプル】", 34 => "【癒しのアンプル】", 35 => "【ナユタの実】、地形が火山なら【こげた草】", 36 => "【ナユタの実】、地形が火山なら【こげた草】", 44 => "【火炎のアンプル】", 45 => "【強酸のアンプル】", 46 => "【とぶクスリ】", 55 => "【竜炎のアンプル】", 56 => "【おいしいお弁当】", 66 => "【自然治癒のアンプル】" } ), "DROPSC" => DiceTable::D66Table.new( "巻物ドロップ表", D66SortType::ASC, { 11 => "【石壁の巻物】", 12 => "【石壁の巻物】", 13 => "【周辺の地図】", 14 => "【周辺の地図】", 15 => "【周辺の地図】", 16 => "【火炎付与の巻物】", 22 => "【混乱の巻物】", 23 => "【剣の巻物】", 24 => "【剣の巻物】", 25 => "【鎧の巻物】", 26 => "【鎧の巻物】", 33 => "【応急修理の巻物】", 34 => "【応急修理の巻物】", 35 => "【移動不能付与の巻物】", 36 => "【移動不能付与の巻物】", 44 => "【宝の地図】", 45 => "【宝の地図】", 46 => "【召喚の巻物】", 55 => "【剣の王の巻物】", 56 => "【守りの神の巻物】", 66 => "【高度修復の巻物】" } ), "DROPOT" => DiceTable::D66Table.new( "その他ドロップ表", D66SortType::ASC, { 11 => "【大きな石】、地形が火山なら【くすんだ宝石】", 12 => "【大きな石】、地形が火山なら【くすんだ宝石】", 13 => "【大きな石】、地形が火山なら【美しい宝石】", 14 => "【木製の矢】", 15 => "【理力の矢】", 16 => "【鉄製の矢】", 22 => "【投げナイフ】", 23 => "【爆弾矢】", 24 => "【くすんだ宝石】", 25 => "【盾修復キット】", 26 => "【上質の研ぎ石】", 33 => "【エルザイト爆弾】", 34 => "【セーブクリスタル】", 35 => "【試練の腕輪】", 36 => "【必殺の腕輪】", 44 => "【破壊の腕輪】", 45 => "【理力の腕輪】", 46 => "【加速の腕輪】", 55 => "【美しい宝石】", 56 => "【封印のカギ】", 66 => "【闇ギルド会員証】" } ), "DROPP" => DiceTable::D66Table.new( "ドロップアイテム表プラス", D66SortType::ASC, { 11 => MoveToTable.new("武器ドロップ表", "DROPWP"), 12 => MoveToTable.new("武器ドロップ表", "DROPWP"), 13 => MoveToTable.new("武器ドロップ表2", "DROPWP2"), 14 => MoveToTable.new("武器ドロップ表2", "DROPWP2"), 15 => MoveToTable.new("防具ドロップ表", "DROPAR"), 16 => MoveToTable.new("防具ドロップ表", "DROPAR"), 22 => MoveToTable.new("防具ドロップ表2", "DROPAR2"), 23 => MoveToTable.new("防具ドロップ表2", "DROPAR2"), 24 => MoveToTable.new("食品ドロップ表", "DROPFD"), 25 => MoveToTable.new("食品ドロップ表", "DROPFD"), 26 => MoveToTable.new("食品ドロップ表2", "DROPFD2"), 33 => MoveToTable.new("食品ドロップ表2", "DROPFD2"), 34 => MoveToTable.new("薬品ドロップ表プラス", "DROPDRP"), 35 => MoveToTable.new("薬品ドロップ表プラス", "DROPDRP"), 36 => MoveToTable.new("巻物ドロップ表", "DROPSC"), 44 => MoveToTable.new("巻物ドロップ表", "DROPSC"), 45 => MoveToTable.new("巻物ドロップ表2", "DROPSC2"), 46 => MoveToTable.new("巻物ドロップ表2", "DROPSC2"), 55 => MoveToTable.new("その他ドロップ表", "DROPOT"), 56 => MoveToTable.new("その他ドロップ表", "DROPOT"), 66 => MoveToTable.new("その他ドロップ表2", "DROPOT2") } ), "DROPDRP" => DiceTable::D66Table.new( "薬品ドロップ表プラス", D66SortType::ASC, { 11 => "【燃料油のビン】", 12 => "【燃料油のビン】", 13 => "【燃料油のビン】", 14 => "【弱体の薬】", 15 => "【弱体の薬】", 16 => "【弱体の薬】", 22 => "【成長の薬】", 23 => "【ベルセルクアンプル】", 24 => "【ベルセルクアンプル】", 25 => "【浮遊の薬】", 26 => "【浮遊の薬】", 33 => "【反動解消の薬】", 34 => "【反動解消の薬】", 35 => "【癒しの大ボトル】", 36 => "【癒しの大ボトル】", 44 => "【超元気のアンプル】", 45 => "【超元気のアンプル】", 46 => "【薬命酒】", 55 => "【薬命酒】", 56 => "【洗脳のクスリ】", 66 => "【洗脳のクスリ】" } ), "DROPSC2" => DiceTable::D66Table.new( "巻物ドロップ表2", D66SortType::ASC, { 11 => "【火炎波の巻物】", 12 => "【悟りの巻物】", 13 => "【理盾の巻物】", 14 => "【泉の巻物】", 15 => "【雷神の巻物】", 16 => "【超激震の巻物】", 22 => "【闇を阻む巻物】", 23 => "【引きこもりの巻物】", 24 => "【鋼鉄の巻物】", 25 => "【回廊の巻物】", 26 => "【騎士団の巻物】", 33 => "【水泳能力の巻物】", 34 => "【浮遊能力の巻物】", 35 => "【治癒の書】", 36 => "【浮遊の書】", 44 => "【突風の書】", 45 => "【睡眠の書】", 46 => "【火炎の書】", 55 => "【鋼鉄の書】", 56 => "【加速の書】", 66 => "【闇払いの書】" } ), "DROPWP2" => DiceTable::D66Table.new( "武器ドロップ表2", D66SortType::ASC, { 11 => "【さびた巨大斧】", 12 => "【さびた巨大斧】", 13 => "【モコモコのバトン】", 14 => "【モコモコのバトン】", 15 => "【ベルセルクアクス】", 16 => "【ベルセルクアクス】", 22 => "【クナイ】", 23 => "【クナイ】", 24 => "【術殺槍】", 25 => "【ウィンドスピア】", 26 => "【ウィンドスピア】", 33 => "【つるはし】", 34 => "【つるはし】", 35 => "【理力の剣】", 36 => "【蒼い短刀】", 44 => "【クリムゾンクロウ】", 45 => "【ナユタの杖】", 46 => "【ナユタの杖】", 55 => "【一撃斧】", 56 => "【ファイアブランド】", 66 => "【ソードクロスボウ】" } ), "DROPAR2" => DiceTable::D66Table.new( "防具ドロップ表2", D66SortType::ASC, { 11 => "【ボロボロの服】", 12 => "【ボロボロの服】", 13 => "【穴だらけの鎧】", 14 => "【穴だらけの鎧】", 15 => "【木製の追加装甲】", 16 => "【木製の追加装甲】", 22 => "【ガラスの鎧】", 23 => "【ガラスの鎧】", 24 => "【鉄板の追加装甲】", 25 => "【鉄板の追加装甲】", 26 => "【太陽のランタン】", 33 => "【耐火服】", 34 => "【獣の革のバッグ】", 35 => "【重量ブーツ】", 36 => "【冒険者のブーツ】", 44 => "【ラバーブーツ】", 45 => "【風のマント】", 46 => "【狩人の服】", 55 => "【ドラゴンスケイル】", 56 => "【不育の腕輪】", 66 => "【竜革の大きなバッグ】" } ), "DROPHWP" => DiceTable::D66Table.new( "聖武具ドロップ表プラス", D66SortType::ASC, { 11 => "【大気の盾】", 23 => "【聖剣カレドヴルフ】", 36 => "【紅蓮の書】", 12 => "【大気の盾】", 24 => "【聖斧エルサーベス】", 44 => "【聖弓ル・アルシャ】", 13 => "【大地の鎧】", 25 => "【聖斧エルサーベス】", 45 => "【聖弓ル・アルシャ】", 14 => "【大地の鎧】", 26 => "【聖槍ヴァルキウス】", 46 => "【聖なる月の剣】", 15 => "【水霊のマント】", 33 => "【聖槍ヴァルキウス】", 55 => "【紅き太陽の剣】", 16 => "【水霊のマント】", 34 => "【聖槍ヴァルキウス】", 56 => "【嵐の聖剣】", 22 => "【聖剣カレドヴルフ】", 35 => "【紅蓮の書】", 66 => "【超重の聖斧】" } ), "DROPFD2" => DiceTable::Table.new( "食品ドロップ表2", "1D6", [ "【解毒の草】、地形が火 山なら【こげた草】、地 形が海岸なら【おいし い海藻】", "【気付けの草】、地形が 火山なら【こげた草】、 地形が海岸なら【おい しい海藻】", "【夜目の草】", "【力が湧く草】", "【集中の草】", "【牛乳】" ] ), "DROPOT2" => DiceTable::Table.new( "その他 ドロップ表2", "2D6", [ "【五連の矢】", "【炎の矢】", "【聖なる投げ刃】", "【物体破壊爆弾】", "【閃光弾】", "【聖なる短剣の破片】", "【閃光弾】", "【旋風の投げ刃】", "【スーパーエルザイト 爆弾】", "【炎の矢】", "【五連の矢】" ] ), "DROPRAREBOX2" => DiceTable::Table.new( "珍しい箱ドロップ表2", "2D6", [ "聖武具ドロップ表プラ スへ", "【耐久力の結晶】", "【偉大な筋力の結晶】", "【偉大な敏捷の結晶】", "【偉大な生命の結晶】", "【竜鱗の追加装甲】", "【偉大な魅力の結晶】", "【偉大な意志の結晶】", "【偉大な知力の結晶】", "【スタミナの結晶】", "【闇払いの書】" ] ), "KNGFTP" => DiceTable::Table.new( "王特徴表プラス", "1D6", [ "【力の王の】(047ページ)", "【力の王の】(047ページ)", "【疾風の王の】(047ページ)", "【疾風の王の】(047ページ)", "【炎の王の】(047ページ)", "【絶望の王の】(047ページ)" ] ), }.freeze
- DUNGEON_TABLE =
DungeonTable.new( "ダンジョン表", "DNGN", "1D6", [ "犬小屋(155ページ)", "犬小屋(155ページ)", "「ダンジョン遭遇表」(153ページ)へ移動。小型ダンジョンだ。", "「ダンジョン遭遇表」(153ページ)へ移動。小型ダンジョンだ。", "「ダンジョン遭遇表」(153ページ)へ移動。ここは中型ダンジョンなので、モンスターが出現した場合、数が1体増加する。さらにイベントの経験値が1増加する。", "「ダンジョン遭遇表」(153ページ)へ移動。ここは大型ダンジョンなので、モンスターが出現した場合、数が2体増加する。さらにイベントの経験値が2増加する。", "牢獄遭遇表へ移動(154ページ)。牢獄つきダンジョン。", ] )
- DUNGEON_TABLE_PLUS =
DungeonTable.new( "ダンジョン表プラス", "DNGNP", "2D6", [ "犬小屋(基本155ページ)", "犬小屋(基本155ページ)", "犬小屋(基本155ページ)", "犬小屋(基本155ページ)", "「ダンジョン遭遇表」(基本153ページ)へ移動。小型ダンジョンだ。", "「ダンジョン遭遇表」(基本153ページ)へ移動。小型ダンジョンだ。", "「ダンジョン遭遇表」(基本153ページ)へ移動。ここは中型ダンジョンのため、モンスターが出現した場合、数が1体増加する。またイベントの【経験値】が1増加する。", "「ダンジョン遭遇表」(基本153ページ)へ移動。ここは大型ダンジョンのため、モンスターが出現した場合、数が2体増加する。またイベントの【経験値】が2増加する。", "「ダンジョン遭遇表」(基本153ページ)へ移動。近くに寄っただけで吸い込まれる罠のダンジョンだ。「ダンジョン遭遇表」を使用したあと、中央にあるモニュメントに触れて転移して出るか、【鉄格子】と戦闘して出るか選択する。転移した場合は闇の目の前に出てしまい、全力ダッシュで【ST】を1D6消費する。【鉄格子】との戦闘では逃走を選択できない。", "「ダンジョン遭遇表」(基本153ページ)へ移動。水浸しのダンジョンで、「ダンジョン遭遇表」を使用した直後に【ST】が3減少する。「水泳」", "水路に囲まれた水上遺跡だ。なかに入るなら【ST】を4消費(「水泳」)してから「ダンジョン遭遇表」(基本153ページ)へ移動。イベントの判定に成功すると追加で【豪華な宝箱】が1つ出現し、戦闘か開錠を試みられる。", "「牢獄遭遇表」(基本154ページ)へ移動。牢獄つきダンジョンだ。", "砂の遺跡にたどりつき、「牢獄遭遇表」(基本154ページ)へ移動。モンスターが出現した場合、数が2体増加する。またイベントの【経験値】が2増加する。イベントの判定に成功すると追加で【珍しい箱】が1つ出現し、戦闘か開錠を試みられる。", ] )
- RANDOM_EVENT_TABLE =
RandomEventTable.new( "ランダムイベント表", "1D6", [ BranchByElapsedDays.new( "さらに1D6を振る。現在PCがいるエリアの【日数】以下なら「施設表」へ移動。【日数】を超えていれば「ダンジョン表」(153ページ)へ移動。", "FCLT", DUNGEON_TABLE ), BranchByElapsedDays.new( "さらに1D6を振る。現在PCがいるエリアの【日数】以下なら「世界の旅表」(157ページ)へ移動。【日数】を超えていれば「野外遭遇表(OUTENC)」(155ページ)へ移動。", "「世界の旅表」(157ページ)へ。", "OUTENC" ), MoveToTable.new("「施設表」へ移動。", "FCLT"), "「世界の旅表」(157ページ)へ移動。", MoveToTable.new("「野外遭遇表」(155ページ)へ移動。", "OUTENC"), MoveToTableWithDay.new("「ダンジョン表」(152ページ)へ移動。", DUNGEON_TABLE), ] )
- RANDOM_EVENT_TABLE_PLUS =
RandomEventTable.new( "ランダムイベント表プラス", "1D6", [ BranchByElapsedDays.new( "さらに1D6を振る。現在PCがいるエリアの【日数】以下なら施設表プラス(022ページ)へ移動。【経過日数】を超えていればダンジョン表プラス(025ページ)へ移動", "FCLTP", DUNGEON_TABLE_PLUS ), BranchByElapsedDays.new( "さらに1D6を振る。現在PCがいるエリアの【日数】以下なら世界の旅表(基本157ページ)へ移動。【経過日数】を超えていれば野外遭遇表(基本155ページ)へ移動", "「世界の旅表」(157ページ)へ。", "OUTENC" ), BranchByElapsedDays.new( "さらに1D6を振る。現在PCがいるエリアの【日数】以下なら世界の旅表2(028ページ)へ移動。【経過日数】を超えていれば野外遭遇表プラス(025ページ)へ移動", "世界の旅表2(028ページ)へ。", "OUTENCP" ), BranchByDayParity.new( "さらに1D6を振る。奇数なら世界の旅表(基本157ページ)へ移動。偶数なら世界の旅表2(028ページ)へ移動", "世界の旅表(基本157ページ)へ。", "世界の旅表2(028ページ)へ。" ), MoveToTable.new("施設表プラスへ移動(022ページ)", "FCLTP"), MoveToTableWithDay.new("ダンジョン表プラスへ移動(025ページ)", DUNGEON_TABLE_PLUS) ] )
Instance Attribute Summary
Attributes inherited from Base
#d66_sort_type, #default_cmp_op, #default_target_number, #randomizer, #reroll_dice_reroll_threshold, #round_type, #sides_implicit_d, #upper_dice_reroll_threshold
Instance Method Summary collapse
- #eval_game_system_specific_command(command) ⇒ Object
- #getJudgeReusltText(dice, total, target) ⇒ Object
- #getRollDiceCommandResult(command) ⇒ Object
-
#initialize(command) ⇒ OneWayHeroics
constructor
A new instance of OneWayHeroics.
- #rollJudgeDice(diceCount) ⇒ Object
Methods inherited from Base
#change_text, #check_result, command_pattern, #enable_debug, #enabled_d9?, #eval, eval, #grich_text, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?
Methods included from Translate
Constructor Details
#initialize(command) ⇒ OneWayHeroics
Returns a new instance of OneWayHeroics.
46 47 48 49 |
# File 'lib/bcdice/game_system/OneWayHeroics.rb', line 46 def initialize(command) super(command) @d66_sort_type = D66SortType::ASC end |
Instance Method Details
#eval_game_system_specific_command(command) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/bcdice/game_system/OneWayHeroics.rb', line 51 def eval_game_system_specific_command(command) case command when /^RET(\d+)$/ day = Regexp.last_match(1).to_i RANDOM_EVENT_TABLE.roll_with_day(day, @randomizer) when /^RETP(\d+)$/ day = Regexp.last_match(1).to_i RANDOM_EVENT_TABLE_PLUS.roll_with_day(day, @randomizer) when /^DNGN(\d+)$/ day = Regexp.last_match(1).to_i DUNGEON_TABLE.roll_with_day(day, @randomizer) when /^DNGNP(\d+)$/ day = Regexp.last_match(1).to_i DUNGEON_TABLE_PLUS.roll_with_day(day, @randomizer) when /^\d*JD/ getRollDiceCommandResult(command) else roll_tables(command, TABLES) end end |
#getJudgeReusltText(dice, total, target) ⇒ Object
119 120 121 122 123 124 125 126 127 128 |
# File 'lib/bcdice/game_system/OneWayHeroics.rb', line 119 def getJudgeReusltText(dice, total, target) return "ファンブル" if dice == 2 return "スペシャル" if dice == 12 return "" if target.nil? return "成功" if total >= target return "失敗" end |
#getRollDiceCommandResult(command) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/bcdice/game_system/OneWayHeroics.rb', line 72 def getRollDiceCommandResult(command) return nil unless command =~ /^(\d*)JD(\d*)(\+(\d*))?(,(\d+))?$/ diceCount = Regexp.last_match(1) diceCount = 2 if diceCount.empty? diceCount = diceCount.to_i return nil if diceCount < 2 ability = Regexp.last_match(2).to_i target = Regexp.last_match(6) target = target.to_i unless target.nil? modifyText = Regexp.last_match(3) || "" modifyText = "+1" if modifyText == "+" modifyValue = modifyText.to_i dice, diceText = rollJudgeDice(diceCount) total = dice + ability + modifyValue text = command.to_s text += " > #{diceCount}D6[#{diceText}]+#{ability}#{modifyText}" text += " > #{total}" result = getJudgeReusltText(dice, total, target) text += " > #{result}" unless result.empty? return text end |
#rollJudgeDice(diceCount) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/bcdice/game_system/OneWayHeroics.rb', line 101 def rollJudgeDice(diceCount) diceList = @randomizer.(diceCount, 6) dice = diceList.sum() diceText = diceList.join(",") if diceCount == 2 return dice, diceText end diceList.sort! diceList.reverse! total = diceList[0] + diceList[1] text = "#{diceText}→#{diceList[0]},#{diceList[1]}" return total, text end |