Class: BCDice::GameSystem::SajinsenkiAGuS2E

Inherits:
SajinsenkiAGuS show all
Defined in:
lib/bcdice/game_system/SajinsenkiAGuS2E.rb

Constant Summary collapse

ID =

ゲームシステムの識別子

'SajinsenkiAGuS2E'
NAME =

ゲームシステム名

'砂塵戦機アーガス2ndEdition'
SORT_KEY =

ゲームシステム名の読みがな

'さしんせんきああかす2'
HELP_MESSAGE =

ダイスボットの使い方

"\u30FB\u4E00\u822C\u5224\u5B9ALv\uFF08\u30C1\u30E3\u30F3\u30B9\u51FA\u76EE0\u2192\u5224\u5B9A0\uFF09 nAG+x\n\u3000\u3000\u3000n\u306F\u7FD2\u5F97\u30EC\u30D9\u30EB\u3001Lv0\u306E\u5834\u5408n\u306E\u7701\u7565\u53EF\u80FD\u3002x\u306F\u5224\u5B9A\u5024\u4FEE\u6B63\uFF08\u6570\u5F0F\u306B\u3088\u308B\u4FEE\u6B63\u53EF\uFF09\u3001\u7701\u7565\u3057\u305F\u5834\u5408\u306F\u30EC\u30D9\u30EB\u4FEE\u6B630\n\u3000\u3000\u3000\u4F8B\uFF09AG:\u7FD2\u5F97\u30EC\u30D9\u30EB0\u306E\u4E00\u822C\u6280\u80FD\u30011AG+1:\u7FD2\u5F97\u30EC\u30D9\u30EB1\u30FB\u5224\u5B9A\u5024\u4FEE\u6B63+1\u306E\u6280\u80FD\u3001AG+2-1\uFF1A\u7FD2\u5F97\u30EC\u30D9\u30EB0\u30FB\u5224\u5B9A\u5024\u4FEE\u6B632-1\u306E\u6280\u80FD\u3001(1-1)AG\uFF1A\u7FD2\u5F97\u30EC\u30D9\u30EB1\u30FB\u30EC\u30D9\u30EB\u4FEE\u6B63-1\u306E\u6280\u80FD\n\n\u30FB\u9069\u6B63\u8DDD\u96E2\u3067\u306E\u547D\u4E2D\u5224\u5B9A\uFF08\u30C1\u30E3\u30F3\u30B9\u51FA\u76EE0\u2192\u5224\u5B9A0\u3001HR\u7B97\u51FA\uFF09OM+y@z\n\u3000\u3000\u3000y\u306F\u547D\u4E2D\u88DC\u6B63\u5024\uFF08\u6570\u5F0F\u53EF\uFF09\u3001z\u306F\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u5024\u3002\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u5024\u7701\u7565\u6642\u306F0\n\u3000\u3000\u3000HR\u306E\u7B97\u51FA\u6642\u306B\u306F\u3001HR\u304C\u5927\u304D\u304F\u306A\u308B\u5834\u5408\u306B\u51FA\u76EE0\u309210\u306B\u8AAD\u307F\u66FF\u3048\u307E\u3059\u3002\n\u3000\u3000\u3000\u4F8B\uFF09OM+18-6@2:\u547D\u4E2D\u88DC\u6B63\u5024+18-6\u3067\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u50242\u3001\u9069\u6B63\u8DDD\u96E2\u306E\u5224\u5B9A\n\n\u30FB\u975E\u9069\u6B63\u8DDD\u96E2\u3067\u306E\u547D\u4E2D\u5224\u5B9A\uFF08\u30C1\u30E3\u30F3\u30B9\u51FA\u76EE0\u2192\u5224\u5B9A0\u3001HR\u7B97\u51FA\uFF09NM+y@z\n\u3000\u3000\u3000y\u306F\u547D\u4E2D\u88DC\u6B63\u5024\uFF08\u6570\u5F0F\u53EF\uFF09\u3001z\u306F\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u5024\u3002\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u5024\u7701\u7565\u6642\u306F0\n\u3000\u3000\u3000HR\u306E\u7B97\u51FA\u6642\u306B\u306F\u3001HR\u304C\u5927\u304D\u304F\u306A\u308B\u5834\u5408\u306B\u51FA\u76EE0\u309210\u306B\u8AAD\u307F\u66FF\u3048\u307E\u3059\u3002\n\u3000\u3000\u3000\u4F8B\uFF09NM+4-3:\u547D\u4E2D\u88DC\u6B63\u5024+4-3\u3067\u975E\u9069\u6B63\u8DDD\u96E2\u306E\u5224\u5B9A\n\n\n\u30FB\u300E\u897F\u98A8\u65C5\u5FA8\u300F\u3067\u5C0E\u5165\u3055\u308C\u305F\u30D5\u30A1\u30F3\u30D6\u30EB\u30FB\u30EB\u30FC\u30EB\u3092\u7528\u3044\u305F\u5224\u5B9A\n\u3000\u5224\u5B9A\u6642\u306B\u30C0\u30A4\u30B9\u304C\u3059\u3079\u30668\u4EE5\u4E0A\u306A\u3089\u30D5\u30A1\u30F3\u30D6\u30EB(\u81EA\u52D5\u5931\u6557)\u3067\u3059\u3002\n\u3000\u305D\u308C\u305E\u308C\u306E\u30B3\u30DE\u30F3\u30C9\u306BW\u3092\u4ED8\u3051\u308B\u3068\u300E\u897F\u98A8\u65C5\u5FA8\u300F\u30E2\u30FC\u30C9\u306B\u306A\u308A\u307E\u3059\u3002\n\u3000\u3000\u3000\u30FB\u4E00\u822C\u5224\u5B9A                nAGW+x\n\u3000\u3000\u3000\u30FB\u9069\u6B63\u8DDD\u96E2\u3067\u306E\u547D\u4E2D\u5224\u5B9A    OMW+y@z\n\u3000\u3000\u3000\u30FB\u975E\u9069\u6B63\u8DDD\u96E2\u3067\u306E\u547D\u4E2D\u5224\u5B9A  NMW+y@z\n\n\n\n\u30FB\u30AF\u30EA\u30C6\u30A3\u30AB\u30EB\u8868\u3000\u3000 CR\n\u30FB\u9E75\u7372\u7D50\u679C\u8868\u3000\u3000\u3000\u3000 CAP\n\u30FB\u5E55\u9593\u30AF\u30A8\u30B9\u30C8\u8868\u3000\u3000 INT\n\u30FB\u30B5\u30EB\u30D9\u30FC\u30B8\u8868\u3000\u3000\u3000 SAL\n\u30FB\u8D64\u5B57\u30DA\u30CA\u30EB\u30C6\u30A3\u30FC\u8868 DEF\n\u30FB\u7279\u6B8A\u6226\u6CC1\u8868\u3000\u3000\u3000\u3000 SPE\n\n\u203B\u901A\u5E38\u306E1D10\u306A\u3069\u306E10\u9762\u30C0\u30A4\u30B9\u306B\u304A\u3044\u3066\u51FA\u76EE10\u306E\u8AAD\u307F\u66FF\u3048\u306F\u3057\u307E\u305B\u3093\u3002\u30B3\u30DE\u30F3\u30C9\u306E\u307F\u3067\u3059\u3002\n\u3000\u30DA\u30FC\u30B8\u53C2\u7167\u306F\u3001\u4F55\u3082\u306A\u3044\u5834\u5408\u306F\u300C\u30EB\u30FC\u30EB\u30D6\u30C3\u30AF\u300D\u3001w\u306F\u300C\u897F\u98A8\u65C5\u5FA8\u300D\u3092\u793A\u3057\u307E\u3059\u3002\n\n"
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

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

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

#translate

Constructor Details

#initialize(command) ⇒ SajinsenkiAGuS2E

Returns a new instance of SajinsenkiAGuS2E.



55
56
57
58
# File 'lib/bcdice/game_system/SajinsenkiAGuS2E.rb', line 55

def initialize(command)
  super(command)
  @enabled_d9 = true
end

Instance Method Details

#change_fumble(result) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/bcdice/game_system/SajinsenkiAGuS2E.rb', line 83

def change_fumble(result)
  return nil if result.nil?

  fumble_counts = result.rands.count { |val| val >= 8 }
  if fumble_counts >= 2
    result.text = result.text.sub(/(成功|失敗).*$/, 'ファンブル')
    result.failure = true
    result.success = false
    result.fumble = true
  end
  return result
end

#eval_game_system_specific_command(command) ⇒ Object



60
61
62
63
64
65
# File 'lib/bcdice/game_system/SajinsenkiAGuS2E.rb', line 60

def eval_game_system_specific_command(command)
  super(command) ||
    roll_ippan_west(command) ||
    roll_hit_check_west(command) ||
    roll_tables(command, SECOND_ED_TABLES)
end

#roll_hit_check_west(command) ⇒ Object



75
76
77
78
79
80
81
# File 'lib/bcdice/game_system/SajinsenkiAGuS2E.rb', line 75

def roll_hit_check_west(command)
  m = /[ON]MW/.match(command)
  return nil unless m

  result = roll_hit_check(command.sub(/([ON]M)W/) { ::Regexp.last_match(1) })
  return change_fumble(result)
end

#roll_ippan_west(command) ⇒ Object



67
68
69
70
71
72
73
# File 'lib/bcdice/game_system/SajinsenkiAGuS2E.rb', line 67

def roll_ippan_west(command)
  m = /AGW/.match(command)
  return nil unless m

  result = roll_ippan(command.sub(/(AG)W/) { ::Regexp.last_match(1) })
  return change_fumble(result)
end