Class: BCDice::GameSystem::StellarKnights

Inherits:
Base
  • Object
show all
Defined in:
lib/bcdice/game_system/StellarKnights.rb

Direct Known Subclasses

StellarKnights_Korean

Constant Summary collapse

ID =

ゲームシステムの識別子

'StellarKnights'
NAME =

ゲームシステム名

'銀剣のステラナイツ'
SORT_KEY =

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

'きんけんのすてらないつ'
HELP_MESSAGE =

ダイスボットの使い方

<<~MESSAGETEXT
  ・アタック判定 nSK[d][,k>l,...]
  []内は省略可能。
  n: ダイス数、d: アタック判定における対象の防御力、k, l: ダイスの出目がkならばlに変更(アマランサスのスキル「始まりの部屋」用)
  d省略時はダイスを振った結果のみ表示。(nSKはnB6と同じ)

  4SK: ダイスを4個振って、その結果を表示
  4+2SK: ダイスを4+2 (=6) 個振って、その結果を表示
  5/2SK: ダイスを5個の半分 (=2) 個振って、その結果を表示
  (5+3)/2SK: ダイスを(5+3)個の半分 (=4) 個振って、その結果を表示
  5SK3: 【アタック判定:5ダイス】、対象の防御力を3として成功数を表示
  3SK,1>6: ダイスを3個振り、出目が1のダイスを全て6に変更し、その結果を表示
  6SK4,1>6,2>6: 【アタック判定:6ダイス】、出目が1と2のダイスを全て6に変更、対象の防御力を4として成功数を表示

  ・基本
  TT:お題表
  STA    :シチュエーション表A:時間 (Situation Table A)
  STB    :シチュエーション表B:場所 (ST B)
  STB2[n]:シチュエーション表B その2:学園編 (ST B 2)
   n: 1(アーセルトレイ), 2(イデアグロリア), 3(シトラ), 4(フィロソフィア), 5(聖アージェティア), 6(SoA)
  STC    :シチュエーション表C:話題 (ST C)
  ALLS   :シチュエーション表全てを一括で(学園編除く)
  GAT:所属組織決定 (Gakuen Table)
  HOT:希望表 (Hope Table)
  DET:絶望表 (Despair Table)
  WIT:願い事表 (Wish Table)
  YST:あなたの物語表 (Your Story Table)
  YSTA:あなたの物語表:異世界 (YST Another World)
  PET:性格表 (Personality Table)
      性格表を2回振り、性格を決定する

  ・霧と桜のマルジナリア
  YSTM:あなたの物語表:マルジナリア世界 (YST Marginalia)
  STM:シチュエーション表:マルジナリア世界 (ST Marginalia)
  YSTL:あなたの物語表:手紙世界 (YST Letter)
  YSTR:あなたの物語表:リコレクト・ドール (YST Recollect-doll)
  STBR:シチュエーション表B:場所(リコレクト・ドール) (ST B Recollect-doll)
  STCR:シチュエーション表C:リコレクト (ST C Recollect)
  STBS:シチュエーション表B:シトラセッティング (ST B Sut Tu Real)
  STE:シチュエーション表:エクリプス専用 (ST Eclipse)

  ・紫弾のオルトリヴート
  FT:フラグメント表 (Fragment Table)
      フラグメント表を5回振る
  FTx:フラグメント表をx回振る
  YSTB:あなたの物語表:ブリンガー (YST Bringer)
  YSTF:あなたの物語表:フォージ (YST Forge)
  STAL:シチュエーション表:オルトリヴート (ST Alt-Levoot)
MESSAGETEXT

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) ⇒ StellarKnights

Returns a new instance of StellarKnights.



69
70
71
72
73
74
# File 'lib/bcdice/game_system/StellarKnights.rb', line 69

def initialize(command)
  super(command)

  @sort_barabara_dice = true # バラバラロール(Bコマンド)でソート有
  @d66_sort_type = D66SortType::NO_SORT
end

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/bcdice/game_system/StellarKnights.rb', line 76

def eval_game_system_specific_command(command)
  command = command.upcase

  if (table = self.class::TABLES[command])
    table.roll(@randomizer)
  elsif (m = %r{([()+/\d]+)SK(\d)?((,\d>\d)+)?}.match(command))
    num_dices = Arithmetic.eval(m[1], RoundType::FLOOR)

    unless num_dices.nil?
      resolute_action(num_dices, m[2] && m[2].to_i, m[3])
    end
  elsif command == 'STB2'
    roll_all_situation_b2_tables
  elsif command == 'ALLS'
    roll_all_situation_tables
  elsif command == "PET"
    roll_personality_table
  elsif (m = /FT(\d+)?/.match(command))
    num = (m[1] || 5).to_i
    roll_fragment_table(num)
  end
end