Class: BCDice::GameSystem::TokyoGhostResearch

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

Constant Summary collapse

ID =

ゲームシステムの識別子

'TokyoGhostResearch'
NAME =

ゲームシステム名

'東京ゴーストリサーチ'
SORT_KEY =

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

'とうきようこおすとりさあち'
HELP_MESSAGE =

ダイスボットの使い方

<<~MESSAGETEXT
  判定
  ・タスク処理は目標値以上の値で成功となります。
    1d10>={目標値}
    例:目標値「5」の場合、5~0で成功
  各種表
    ・導入表  OP
    ・一般トラブル表  TB
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, #initialize, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

This class inherits a constructor from BCDice::Base

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/bcdice/game_system/TokyoGhostResearch.rb', line 31

def eval_game_system_specific_command(command)
  output =
    case command.upcase

    when /TK/i
      return getCheckResult(command)

    when 'OP'
      tgr_opening_table
    when 'TB'
      tgr_common_trouble_table
    end

  return output
end

#get_1d10_table_result(name, table) ⇒ Object



111
112
113
114
115
# File 'lib/bcdice/game_system/TokyoGhostResearch.rb', line 111

def get_1d10_table_result(name, table)
  dice = @randomizer.roll_once(10)
  output = get_table_by_number(dice, table)
  return get_table_result(name, dice, output)
end

#get_table_result(name, dice, output) ⇒ Object



117
118
119
# File 'lib/bcdice/game_system/TokyoGhostResearch.rb', line 117

def get_table_result(name, dice, output)
  return "#{name}(#{dice}) > #{output}"
end

#getCheckResult(command) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/bcdice/game_system/TokyoGhostResearch.rb', line 47

def getCheckResult(command)
  output = ""
  diff = 0

  if /TK?<=(\d+)/i =~ command
    diff = Regexp.last_match(2).to_i
  end

  if diff > 0
    output += "(1D10<=#{diff})"

    total_n = @randomizer.roll_once(10)
    output += '' + total_n.to_s
    output += '' + getCheckResultText(total_n, diff)
  end
  return output
end

#getCheckResultText(total_n, diff) ⇒ Object



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

def getCheckResultText(total_n, diff)
  if total_n >= diff
    result = "成功"
  else
    result = "失敗"
  end

  return result
end

#tgr_common_trouble_tableObject



94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# File 'lib/bcdice/game_system/TokyoGhostResearch.rb', line 94

def tgr_common_trouble_table
  name = "一般トラブル表"
  table = [
    [1, "トラブルが生じたが、間一髪、危機を脱した。【ダメージなし】"],
    [2, "どうにかタスクを処理したが、非常に疲労してしまった。【肉体ダメージ1点】"],
    [3, "タスク処理の過程で負傷してしまった。【肉体ダメージ1点】"],
    [4, "恐怖や混乱、ストレスなどで精神の均衡を崩してしまった。【精神ダメージ1点】"],
    [5, "過去のトラウマなどを思い出し、気分が沈んでしまった。【精神ダメージ1点】"],
    [6, "自身の信用をキズつけたり、汚名を背負ってしまった。【環境ダメージ1点】"],
    [7, "会社や上司の不興を買ってしまった。【環境ダメージ1点】"],
    [8, "疲労困憊で動くこともままならない。【肉体ダメージ1点+精神ダメージ1点】"],
    [9, "負傷したうえ、会社に損害を与えてしまった。【肉体ダメージ1点+環境ダメージ1点】"],
    [10, "上司から厳しく叱責され、まずい立場になった。【精神ダメージ1点+環境ダメージ1点】"],
  ]
  return get_1d10_table_result(name, table)
end

#tgr_opening_tableObject



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/bcdice/game_system/TokyoGhostResearch.rb', line 76

def tgr_opening_table
  name = "導入表"
  table = [
    [1, "【病休中断】体調不良または怪我で療養中だったが強制召喚された。"],
    [2, "【忙殺中】別の業務で忙殺中であった。"],
    [3, "【出張帰り】遠方での仕事から戻ったばかり。"],
    [4, "【休暇取り消し】休暇中だったが呼び戻された。"],
    [5, "【平常運転】いつもどおりの仕事中だった。"],
    [6, "【休暇明け】十分に休養をとったあとで、心身ともに充実している。"],
    [7, "【人生の岐路】人生の岐路にまさに差し掛かったところであった。"],
    [8, "【同窓会】かつての同級生に会い、差を実感したばかりだった。"],
    [9, "【転職活動中】転職を考えて求人サイトを見ているところだった。"],
    [10, "【サボリ中】仕事をサボっているところに呼び出しがあった。"],
  ]
  return get_1d10_table_result(name, table)
end