-
Notifications
You must be signed in to change notification settings - Fork 189
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
『砂塵戦機アーガス 2nd Edition』のダイスを作成しました (#641)
* アーガス2eの実装開始。鹵獲結果表を追加 * 既存の表をそのまま利用できるように変更 * 幕間クエスト表、サルベージ表、赤字ペナルティー表を実装 * 改行コードの修正 * 特殊戦況表の実装と、鹵獲結果表の修正 * 各種表で2D9の取り扱いをしていたのを修正
- Loading branch information
1 parent
825b399
commit 434f573
Showing
3 changed files
with
650 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,244 @@ | ||
# frozen_string_literal: true | ||
|
||
require 'bcdice/game_system/SajinsenkiAGuS' | ||
|
||
module BCDice | ||
module GameSystem | ||
class SajinsenkiAGuS2E < SajinsenkiAGuS | ||
# ゲームシステムの識別子 | ||
ID = 'SajinsenkiAGuS2E' | ||
|
||
# ゲームシステム名 | ||
NAME = '砂塵戦機アーガス2ndEdition' | ||
|
||
# ゲームシステム名の読みがな | ||
SORT_KEY = 'さしんせんきああかす2' | ||
|
||
# ダイスボットの使い方 | ||
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT | ||
・一般判定Lv(チャンス出目0→判定0) nAG+x | ||
nは習得レベル、Lv0の場合nの省略可能。xは判定値修正(数式による修正可)、省略した場合はレベル修正0 | ||
例)AG:習得レベル0の一般技能、1AG+1:習得レベル1・判定値修正+1の技能、AG+2-1:習得レベル0・判定値修正2-1の技能、(1-1)AG:習得レベル1・レベル修正-1の技能 | ||
・適正距離での命中判定(チャンス出目0→判定0、HR算出)OM+y@z | ||
yは命中補正値(数式可)、zはクリティカル値。クリティカル値省略時は0 | ||
HRの算出時には、HRが大きくなる場合に出目0を10に読み替えます。 | ||
例)OM+18-6@2:命中補正値+18-6でクリティカル値2、適正距離の判定 | ||
・非適正距離での命中判定(チャンス出目0→判定0、HR算出)NM+y@z | ||
yは命中補正値(数式可)、zはクリティカル値。クリティカル値省略時は0 | ||
HRの算出時には、HRが大きくなる場合に出目0を10に読み替えます。 | ||
例)NM+4-3:命中補正値+4-3で非適正距離の判定 | ||
・クリティカル表 CR | ||
・鹵獲結果表 CAP | ||
・幕間クエスト表 INT | ||
・サルベージ表 SAL | ||
・赤字ペナルティー表 DEF | ||
・特殊戦況表 SPE | ||
※通常の1D10などの10面ダイスにおいて出目10の読み替えはしません。コマンドのみです。 | ||
ページ参照は、何もない場合は「ルールブック」、wは「西風旅徨」を示します。 | ||
INFO_MESSAGE_TEXT | ||
|
||
def initialize(command) | ||
super(command) | ||
@enabled_d9 = true | ||
end | ||
|
||
def eval_game_system_specific_command(command) | ||
super(command) || | ||
roll_tables(command, SECOND_ED_TABLES) | ||
end | ||
|
||
SECOND_ED_TABLES = { | ||
"CAP" => DiceTable::Table.new( | ||
"鹵獲結果表", | ||
"2D10", | ||
[ | ||
'0:敵A:GuS を完全な状態で鹵獲︕ ※総合価格÷ 2 で売却可。', | ||
'1:敵A:GuS を完全な状態で鹵獲︕ ※総合価格÷ 2 で売却可。', | ||
'2:敵A:GuS を完全な状態で鹵獲︕ ※総合価格÷ 2 で売却可。', | ||
'3:敵A:GuS の兵装を鹵獲︕ ※敵A:GuS の装備している任意の兵装1つを獲得。', | ||
'4:敵A:GuS の兵装を鹵獲︕ ※敵A:GuS の装備している任意の兵装1つを獲得。', | ||
'5:敵A:GuS の兵装を鹵獲︕ ※敵A:GuS の装備している任意の兵装1つを獲得。', | ||
'6:敵A:GuS の兵装を鹵獲︕ ※敵A:GuS の装備している任意の兵装1つを獲得。', | ||
'7:敵A:GuS の兵装を鹵獲︕ ※敵A:GuS の装備している任意の兵装1つを獲得。', | ||
'8:使えそうな兵装を発見︕ ※1D10 を振り、出目の部位の兵装1つを獲得。', | ||
'9:使えそうな兵装を発見︕ ※1D10 を振り、出目の部位の兵装1つを獲得。', | ||
'10:使えそうな兵装を発見︕ ※1D10 を振り、出目の部位の兵装1つを獲得。', | ||
'11:使えそうな兵装を発見︕ ※1D10 を振り、出目の部位の兵装1つを獲得。', | ||
'12:使えそうな兵装を発見︕ ※1D10 を振り、出目の部位の兵装1つを獲得。', | ||
'13:使えそうな兵装を発見︕ ※1D10 を振り、出目の部位の兵装1つを獲得。', | ||
'14:残念、完全にスクラップだ……。※部品代として[バランス値×300]cdtを獲得。', | ||
'15:残念、完全にスクラップだ……。※部品代として[バランス値×300]cdtを獲得。', | ||
'16:残念、完全にスクラップだ……。※部品代として[バランス値×300]cdtを獲得。', | ||
'17:残念、完全にスクラップだ……。※部品代として[バランス値×300]cdtを獲得。', | ||
'18:残念、完全にスクラップだ……。※部品代として[バランス値×300]cdtを獲得。', | ||
] | ||
), | ||
"INT" => DiceTable::RangeTable.new( | ||
"幕間クエスト表", | ||
"1D100", | ||
[ | ||
[1, '慰労 PC/クルー1名が、労ってくれる。 最大HP+4'], | ||
[2..3, '感謝 PC/クルー1名が、感謝の気持ちを伝える。 最大HP+4'], | ||
[4..5, '安堵 PC/ クルー1名が、安堵の気持ちを伝える。 最大HP+4'], | ||
[6..7, '治療 戦闘中の怪我や急な病気で医療班のお世話になることに。 最大HP+4'], | ||
[8..9, '日常 PC/クルー1名と、他愛のない日常の会話をする。 最大HP+4'], | ||
[10..11, '遊興 PC/クルー1名と遊びに興じ、楽しい時を過ごす。 XP+1'], | ||
[12..13, '勤労 PC/クルー1名と協力し、船内の仕事を行う。 XP+1'], | ||
[14..15, '評価 PC/クルー1名が、仕事の出来を評価してくれる。 XP+1'], | ||
[16..17, '調達 PC/クルー1名とともに生活品の買い出しを行うことに。 XP+1'], | ||
[18..19, '社交 取引や補給などの仕事を通し、船外での社会経験を得る。 XP+1'], | ||
[20..21, '注意 PC/クルー1名が、君の危険な戦闘行動について指摘する。 SP+1'], | ||
[22..23, '反省 PC/クルー1名と、作戦行動の反省会を行う。 SP+1'], | ||
[24..25, '鍛錬 PC/クルー1名に、模擬戦に付き合ってもらう。 SP+1'], | ||
[26..27, '感心 PC/クルー1名の仕事や戦闘行動に対し、感銘を受ける。 SP+1'], | ||
[28..29, '改良 整備班と協力し、A:GuSのプログラムの改良に努める。 SP+1'], | ||
[30..31, '割引 兵装が割引されているのを発見し、格安で購入できる。 基本兵装1つを半額で購入可。'], | ||
[32..33, '発見 クルー1名が、兵装を入手した。 基本兵装1つを半額で購入可。'], | ||
[34..35, '発明 クルー1名が、兵装を開発した。 基本兵装1つを半額で購入可。'], | ||
[36..37, '大発見 クルー1名が、強力な兵装を入手した! 上級兵装1つを購入可。(p37参照)'], | ||
[38..39, '大発明 クルー1名が、新たな兵装を開発した! 上級兵装1つを購入可。(p37参照)'], | ||
[40..41, '昔話 PC/クルー1名に、自分の過去について語ってしまう。 最大LP+1'], | ||
[42..43, '願望 PC/クルー1名に、自分の夢や未来について語ってしまう。 最大LP+1'], | ||
[44..45, '家族 PC/クルー1名に、自分の家族について語ってしまう。 最大LP+1'], | ||
[46..47, '望郷 PC/クルー1名に、自分の故郷について語ってしまう。 最大LP+1'], | ||
[48..49, '知人 PC/クルー1名に、自分の知人を重ね合わせてしまう。 最大LP+1'], | ||
[50..51, '個人収入 チームとは関係ない個人的な商売や取引で利益を得る。 4,000cdtを獲得。'], | ||
[52..53, '臨時収入 思いがけない臨時の収入が入る。 4,000cdt を獲得。'], | ||
[54..55, '取引 クルー1 名と取引を行い、予算を獲得することに成功する。 4,000cdtを獲得。'], | ||
[56..57, '裏取引 クルー1 名と秘密の取引を行い、見返りとして予算を獲得。 6,000cdtを獲得。'], | ||
[58..59, '賞与 オーナーが特別に報酬を用意してくれた! 6,000cdtを獲得。'], | ||
[60..61, '改造 整備班とともに機体の改造に明け暮れる。 任意の改造Lv+1。(上限:2Lv)'], | ||
[62..63, '鹵獲 鹵獲品の中から機体の改造に使えるものを発見。 任意の改造Lv+1。(上限:2Lv)'], | ||
[64..65, '強化 案機体を強化するための画期的なアイディアを思いつく。 任意の改造Lv+1。(上限:2Lv)'], | ||
[66..67, '懇願 整備班に頼みこみ、機体の改造をしてもらう。 任意の改造Lv+1。(上限:3Lv)'], | ||
[68..69, '掘出物 掘出物を発見、整備班が早速機体に取り付けてくれた。 任意の改造Lv+1。(上限:3Lv)'], | ||
[70..71, '募集 クルーの募集を行ったところ、何名か候補が現れた。 クルー1名を割安(20,000cdt)で雇用可。'], | ||
[72..73, '勧誘 有能な人材を発見した。ぜひ雇い入れたいものだが。 クルー1名を割安(20,000cdt)で雇用可。'], | ||
[74..75, '推薦 依頼人からの推薦で、クルーを1名紹介される。 クルー1名を割安(20,000cdt)で雇用可。'], | ||
[76..77, '志願 クルーとして雇って欲しい、という人物が現れる。クルー1名を割安(15,000cdt)で雇用可。'], | ||
[78..79, '成長 見習いクルーが大分成長してきた。もう1人前と見てもいい。クルー1名を割安(15,000cdt)で雇用可。'], | ||
[80..81, '交渉 依頼人との交渉がうまくいき、少し報酬を割増ししてもらえる。 チーム予算を8,000cdt獲得。'], | ||
[82..83, '節約 経費が思ったよりも節約できた。経理やオーナーの機嫌が良い。 チーム予算を8,000cdt獲得。'], | ||
[84..85, '賞金 今回の敵は賞金がかかっていたようで臨時収入が入った。 チーム予算を8,000cdt獲得。'], | ||
[86..87, '名声 チームの名声が高まっており、クルーの自尊心が刺激される。 チーム予算を12,000cdt獲得。'], | ||
[88..89, '一致団結 オーナーからの労いがあり、クルー一同の結束力が高まる。 チーム予算を12,000cdt獲得。'], | ||
[90..91, '点検 PC/クルー1名とシップに異状がないか点検作業を行う。 拠点AP+10。'], | ||
[92..93, '補修 整備班とともにくたびれたシップの改装作業を行う。 拠点AP+10。'], | ||
[94..95, '全面改修 艦内の問題箇所を全面的に改修する。 拠点AP+10。'], | ||
[96..97, '自由 行動自由気ままに好きなことをして過ごす。 00~49の任意の効果を適用可。(p69参照)'], | ||
[98..99, '歓迎 街の住民にたいへんな歓迎を受ける。 50~95の任意の効果を適用可。(p69参照)'], | ||
[100, '慰労 PC/クルー1名が、労ってくれる。 最大HP+4'], | ||
] | ||
), | ||
"SAL" => DiceTable::RangeTable.new( | ||
"サルベージ表", | ||
"1D100", | ||
[ | ||
[1..2, '大失敗…。大変な損失を出してしまった…。 -5,000cdt'], | ||
[3..5, '失敗…。かなりの損失を出してしまった…。 -3,000cdt'], | ||
[6..9, '失敗…。損失を出してしまった…。 -1,000cdt'], | ||
[10, '大成功!大きな収益を上げることができた! +5,000cdt'], | ||
[11..19, '空振り……何の成果も得られなかった…。 0cdt'], | ||
[20, '掘り出し物を発見!2Lv改造済の【基本携行兵装】一つを獲得! 一般兵装(→p34)'], | ||
[21..22, 'ジャンク品を発見。船の装甲強化くらいには使えそうだ。 拠点AP+[5]'], | ||
[23..25, 'ジャンク品を発見。少し赤字だがまあやむを得まい。 +1,000cdt'], | ||
[26..29, 'ジャンク品を発見。手間賃くらいにはなった。 +2,000cdt'], | ||
[30, '掘り出し物を発見!2Lv改造済の【基本外装兵装】一つを獲得! 一般兵装(→p35)'], | ||
[31..32, '成功!少しだが利益を出すことができた! +3,000cdt'], | ||
[33..35, '成功!まずまずの利益を出すことができた! +5,000cdt'], | ||
[36..39, '大成功!大きな利益を出すことができた! +7,000cdt'], | ||
[40..41, '良質のバッテリーを獲得。 EP+[4]'], | ||
[42..43, '良質の装甲版を獲得。 AP+[4]'], | ||
[44, '大失敗…。大きな損失を出してしまった…。 -5,000cdt'], | ||
[45, 'ブレードを獲得。 →p34'], | ||
[46, 'ランスを獲得。 →p34'], | ||
[47, 'アンカーブレードを獲得。 →p34'], | ||
[48, 'パイルバンカーを獲得。 →p34'], | ||
[49, 'ハンドガンを獲得。 →p35'], | ||
[50, 'ヘビーハンドガンを獲得。 →p35'], | ||
[51, 'ライフルを獲得。 →p35'], | ||
[52, 'アンカーショットを獲得。 →p35'], | ||
[53, 'マシンガンSを獲得。 →p35'], | ||
[54, 'マシンガンLを獲得。 →p35'], | ||
[55, 'ミサイルポッドSを獲得。 →p35'], | ||
[56, 'ミサイルポッドLを獲得。 →p35'], | ||
[57, 'バズーカを獲得。 →p35'], | ||
[58, 'カノンを獲得。 →p35'], | ||
[59, 'ライトシールドを獲得。 →p35'], | ||
[60, 'ミドルシールドを獲得。 →p35'], | ||
[61, 'ヘビーシールドを獲得。 →p35'], | ||
[62, 'レーダーユニットを獲得。 →p35'], | ||
[63, 'ECMユニットを獲得。 →p35'], | ||
[64, 'サブブースターを獲得。 →p36'], | ||
[65, 'ディフェンスサポートを獲得。 →p36'], | ||
[66, 'コンバットサポートを獲得。 →p36'], | ||
[67, '大失敗…。大きな損失を出してしまった…。 -5,000cdt'], | ||
[68, 'ショットサポートを獲得。 →p36'], | ||
[69, 'パワーローダーを獲得。 →p36'], | ||
[70, 'サブバッテリーを獲得。 →p36'], | ||
[71, 'サブバッテリー+を獲得。 →p36'], | ||
[72, 'ファランクスを獲得。 →p36'], | ||
[73, 'リアクティブアーマーを獲得。 →p36'], | ||
[74, '強化装甲版を獲得。 →p36'], | ||
[75, 'ヘビーマシンガンSを獲得。 →p35'], | ||
[76, 'ヘビーマシンガンLを獲得。 →p35'], | ||
[77, '掘り出し物を発見!25,000cdt以下の【上級外装兵装】一つを獲得! 上級兵装 (→p37)'], | ||
[78..79, '失敗…。かなりの損失を出してしまった…。 -3,000cdt'], | ||
[80, '医療用品を獲得! 調息値+[1](全PC)'], | ||
[81, '大型ソーラーパネルを獲得! 整備値+[1](全PC)'], | ||
[82, '艦内用の環境設備を獲得! サポート使用回数+[1]'], | ||
[83, 'リニアガンを獲得。 →p37'], | ||
[84, 'リニアマシンガンを獲得。 →p37'], | ||
[85, 'ジャマ―ユニットを獲得。 →p37'], | ||
[86, 'センサー+を獲得。 →p37'], | ||
[87, 'パワーローダー++を獲得。 →p37'], | ||
[88, 'サブバッテリー++を獲得。 →p37'], | ||
[89, 'フレームカバーを獲得。 →p37'], | ||
[90, '空振り……何の成果も得られなかった…。 0cdt'], | ||
[91..92, '良質なA:GuSのパーツを獲得!機体の改造や予備パーツとして使えそうだ! 改造Lv+[1](上限:3Lv)'], | ||
[93..95, 'A:GuSのパーツを獲得!機体の改造や予備パーツとして使えそうだ。 改造Lv+[1](上限:1Lv)'], | ||
[96..98, '多少傷ついているが、A:GuS1機を獲得!→10,000cdtで売却可能→10,000cdt支払えば補修して取得が可能。 (→p30~33)(→w23)'], | ||
[99, 'A:GuS1機をほぼ完全な状態で獲得! (→p30~33)(→w23)'], | ||
[100, '掘り出し物を発見!25,000cdt以下の【上級携行兵装】一つを獲得! 上級兵装 (→p37)'], | ||
] | ||
), | ||
"DEF" => DiceTable::RangeTable.new( | ||
"赤字ペナルティー表", | ||
"1D10", | ||
[ | ||
[1, '解雇 クルー1名を失う。10,000cdtを得る。'], | ||
[2..3, '劣化 任意のチーム能力一つは-1Lv。10,000cdtを得る。'], | ||
[4..5, '借金 次回の維持費が+20,000cdt。10,000cdtを得る。'], | ||
[6..7, '酷使 各PCは最大HP-4。10,000cdtを得る。'], | ||
[8..9, '売却 各PCはオプション以外の兵装を一つずつ廃棄。10,000cdtを得る。'], | ||
[10, '解雇 クルー1名を失う。10,000cdtを得る。'], | ||
] | ||
), | ||
# DiceTable::Tableが現状1D9に未対応 | ||
"SPE" => DiceTable::Table.new( | ||
"特殊戦況表", | ||
"1D10", | ||
[ | ||
'混戦 以下のエリアのユニットをシャッフルする。♠:A⇔C ♣:B⇔D ♦:A⇔D ♥:B⇔C', | ||
'乱戦 R中、すべての攻撃は[距離:○]になる。', | ||
'逸失 敵拠点エリアのユニットを[♠♣:A ♦♥:B]に移動。味方拠点エリアのユニットを[♠♣:D ♦♥:C]に移動。', | ||
'突風 艦船、オブジェクト以外の全ユニットを「風向き」方向に移動。', | ||
'流砂 以下のエリアのユニットは脱出のため、MPとEPを[3]点失う。[♠:A ♣:B ♦:C ♥:D]', | ||
'混乱 母船内でトラブル発生。R中、【整備】は行えない。[♠♥:味方側 ♣♦:敵側]', | ||
'岩盤 以下のエリアのユニットは岩盤に乗り上げ、《クリティカル》が1回発生。[♠:A ♣:B ♦:C ♥:D]', | ||
'混乱 R中、イニシア値を逆順で処理する。 ※【エイミング】等の高低も逆として処理する。', | ||
'飛礫 飛礫によって、すべてのユニットはAPを[1D10](以下のエリアでは[2D10])点失う。[♠:A ♣:B ♦:C ♥:D]', | ||
'雨 雨は砂を土へと変えてしまう。R中、全ユニット移動/突撃不可。', | ||
] | ||
), | ||
}.freeze | ||
register_prefix_from_super_class() | ||
register_prefix(SECOND_ED_TABLES.keys) | ||
end | ||
end | ||
end |
Oops, something went wrong.