bcdice 3.0.0.pre.rc.1 → 3.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (161) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +48 -1
  3. data/README.md +33 -7
  4. data/i18n/DetatokoSaga/ja_jp.yml +3 -2
  5. data/i18n/DetatokoSaga/ko_kr.yml +1 -0
  6. data/i18n/MonotoneMuseum/ja_jp.yml +3 -3
  7. data/lib/bcdice.rb +2 -0
  8. data/lib/bcdice/arithmetic_evaluator.rb +2 -0
  9. data/lib/bcdice/common_command.rb +2 -0
  10. data/lib/bcdice/common_command/add_dice.rb +3 -1
  11. data/lib/bcdice/common_command/add_dice/randomizer.rb +2 -0
  12. data/lib/bcdice/common_command/barabara_dice.rb +2 -0
  13. data/lib/bcdice/common_command/barabara_dice/node.rb +2 -0
  14. data/lib/bcdice/common_command/calc.rb +2 -0
  15. data/lib/bcdice/common_command/d66_dice.rb +2 -0
  16. data/lib/bcdice/common_command/upper_dice.rb +2 -0
  17. data/lib/bcdice/common_command/version.rb +2 -0
  18. data/lib/bcdice/dice_table.rb +2 -0
  19. data/lib/bcdice/dice_table/chain_table.rb +2 -0
  20. data/lib/bcdice/dice_table/d66_grid_table.rb +2 -0
  21. data/lib/bcdice/dice_table/d66_parity_table.rb +2 -0
  22. data/lib/bcdice/dice_table/d66_range_table.rb +2 -0
  23. data/lib/bcdice/dice_table/d66_table.rb +2 -0
  24. data/lib/bcdice/dice_table/roll_result.rb +2 -0
  25. data/lib/bcdice/dice_table/sai_fic_skill_table.rb +1 -1
  26. data/lib/bcdice/dice_table/table.rb +2 -0
  27. data/lib/bcdice/enum.rb +2 -0
  28. data/lib/bcdice/format.rb +2 -0
  29. data/lib/bcdice/game_system.rb +7 -0
  30. data/lib/bcdice/game_system/AlchemiaStruggle.rb +59 -25
  31. data/lib/bcdice/game_system/Alshard.rb +1 -1
  32. data/lib/bcdice/game_system/AngelGear.rb +123 -0
  33. data/lib/bcdice/game_system/ArsMagica.rb +1 -1
  34. data/lib/bcdice/game_system/BBN.rb +7 -5
  35. data/lib/bcdice/game_system/BadLife.rb +1 -1
  36. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  37. data/lib/bcdice/game_system/BeastBindTrinity.rb +2 -2
  38. data/lib/bcdice/game_system/BlindMythos.rb +1 -2
  39. data/lib/bcdice/game_system/BloodCrusade.rb +42 -42
  40. data/lib/bcdice/game_system/BloodMoon.rb +41 -0
  41. data/lib/bcdice/game_system/CardRanker.rb +2 -2
  42. data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
  43. data/lib/bcdice/game_system/Chill.rb +1 -1
  44. data/lib/bcdice/game_system/CodeLayerd.rb +36 -66
  45. data/lib/bcdice/game_system/Cthulhu.rb +8 -4
  46. data/lib/bcdice/game_system/Cthulhu7th.rb +40 -334
  47. data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +2 -2
  48. data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +2 -2
  49. data/lib/bcdice/game_system/CthulhuTech.rb +1 -1
  50. data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +1 -1
  51. data/lib/bcdice/game_system/Cthulhu_Korean.rb +1 -1
  52. data/lib/bcdice/game_system/DarkBlaze.rb +1 -1
  53. data/lib/bcdice/game_system/DesperateRun.rb +163 -0
  54. data/lib/bcdice/game_system/DetatokoSaga.rb +25 -7
  55. data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +3 -3
  56. data/lib/bcdice/game_system/DiceBot.rb +22 -4
  57. data/lib/bcdice/game_system/DiceOfTheDead.rb +1 -1
  58. data/lib/bcdice/game_system/DoubleCross.rb +1 -1
  59. data/lib/bcdice/game_system/EarthDawn.rb +1 -1
  60. data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
  61. data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
  62. data/lib/bcdice/game_system/Elysion.rb +2 -2
  63. data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
  64. data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
  65. data/lib/bcdice/game_system/FilledWith.rb +203 -1274
  66. data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
  67. data/lib/bcdice/game_system/Garako.rb +12 -4
  68. data/lib/bcdice/game_system/GehennaAn.rb +1 -1
  69. data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
  70. data/lib/bcdice/game_system/Gorilla.rb +1 -1
  71. data/lib/bcdice/game_system/HarnMaster.rb +1 -1
  72. data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
  73. data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
  74. data/lib/bcdice/game_system/Illusio.rb +25 -34
  75. data/lib/bcdice/game_system/InfiniteBabeL.rb +518 -0
  76. data/lib/bcdice/game_system/JekyllAndHyde.rb +42 -0
  77. data/lib/bcdice/game_system/LostRoyal.rb +1 -1
  78. data/lib/bcdice/game_system/MeikyuDays.rb +1 -1
  79. data/lib/bcdice/game_system/MeikyuKingdom.rb +2 -2
  80. data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +3 -3
  81. data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
  82. data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
  83. data/lib/bcdice/game_system/MonotoneMuseum.rb +1 -1
  84. data/lib/bcdice/game_system/NeverCloud.rb +540 -5
  85. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  86. data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
  87. data/lib/bcdice/game_system/NinjaSlayer.rb +4 -13
  88. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  89. data/lib/bcdice/game_system/OracleEngine.rb +1 -1
  90. data/lib/bcdice/game_system/OrgaRain.rb +17 -25
  91. data/lib/bcdice/game_system/Paradiso.rb +1 -1
  92. data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
  93. data/lib/bcdice/game_system/Peekaboo.rb +1 -1
  94. data/lib/bcdice/game_system/Postman.rb +1 -1
  95. data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
  96. data/lib/bcdice/game_system/RecordOfLodossWar.rb +7 -5
  97. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  98. data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
  99. data/lib/bcdice/game_system/RyuTuber.rb +6 -4
  100. data/lib/bcdice/game_system/Ryutama.rb +1 -1
  101. data/lib/bcdice/game_system/SRS.rb +1 -1
  102. data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
  103. data/lib/bcdice/game_system/Satasupe.rb +79 -862
  104. data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
  105. data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
  106. data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
  107. data/lib/bcdice/game_system/ShinobiGami.rb +3 -3
  108. data/lib/bcdice/game_system/ShoujoTenrankai.rb +1 -1
  109. data/lib/bcdice/game_system/Skynauts.rb +2 -2
  110. data/lib/bcdice/game_system/SteamPunkers.rb +7 -5
  111. data/lib/bcdice/game_system/StrangerOfSwordCity.rb +2 -2
  112. data/lib/bcdice/game_system/SwordWorld.rb +46 -182
  113. data/lib/bcdice/game_system/SwordWorld2_0.rb +21 -149
  114. data/lib/bcdice/game_system/SwordWorld2_5.rb +126 -40
  115. data/lib/bcdice/game_system/Torg.rb +1 -1
  116. data/lib/bcdice/game_system/TorgEternity.rb +2 -2
  117. data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
  118. data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -1
  119. data/lib/bcdice/game_system/UnsungDuet.rb +1 -1
  120. data/lib/bcdice/game_system/Utakaze.rb +1 -1
  121. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
  122. data/lib/bcdice/game_system/Warhammer.rb +1 -1
  123. data/lib/bcdice/game_system/Warhammer4.rb +1 -1
  124. data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
  125. data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
  126. data/lib/bcdice/game_system/Yggdrasill.rb +605 -0
  127. data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
  128. data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +294 -0
  129. data/lib/bcdice/game_system/cthulhu7th/rollable.rb +41 -0
  130. data/lib/bcdice/game_system/filled_with/enemy_data_tables.rb +322 -0
  131. data/lib/bcdice/game_system/filled_with/event_tables.rb +392 -0
  132. data/lib/bcdice/game_system/filled_with/tresure_tables.rb +179 -0
  133. data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +2 -0
  134. data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +2 -0
  135. data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +2 -0
  136. data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +2 -0
  137. data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +2 -0
  138. data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +2 -0
  139. data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +2 -0
  140. data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +2 -0
  141. data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +2 -0
  142. data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +2 -0
  143. data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +2 -0
  144. data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +2 -0
  145. data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +2 -0
  146. data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +2 -0
  147. data/lib/bcdice/game_system/one_way_heroics/tables.rb +2 -0
  148. data/lib/bcdice/game_system/satasupe/tables.rb +723 -0
  149. data/lib/bcdice/game_system/sword_world/rating_lexer.rb +47 -0
  150. data/lib/bcdice/game_system/sword_world/rating_parsed.rb +99 -0
  151. data/lib/bcdice/game_system/sword_world/rating_parser.rb +457 -0
  152. data/lib/bcdice/game_system/sword_world/transcendent_test.rb +104 -0
  153. data/lib/bcdice/loader.rb +11 -4
  154. data/lib/bcdice/normalize.rb +2 -0
  155. data/lib/bcdice/randomizer.rb +2 -0
  156. data/lib/bcdice/repl.rb +2 -0
  157. data/lib/bcdice/result.rb +2 -0
  158. data/lib/bcdice/translate.rb +2 -0
  159. data/lib/bcdice/user_defined_dice_table.rb +2 -0
  160. data/lib/bcdice/version.rb +3 -1
  161. metadata +19 -4
@@ -28,7 +28,7 @@ module BCDice
28
28
   例)12NW-5@7#2$3 1NW 50nw+5@7,10#2,5 50nw-5+10@7,10#2,5+15+25
29
29
  INFO_MESSAGE_TEXT
30
30
 
31
- register_prefix('([-+]?\d+)?NW.*', '2R6.*')
31
+ register_prefix('([-+]?\d+)?NW', '2R6')
32
32
 
33
33
  def initialize(command)
34
34
  super(command)
@@ -14,7 +14,7 @@ module BCDice
14
14
  # ゲームシステムの識別子
15
15
  ID = 'NightWizard3rd'
16
16
 
17
- register_prefix('([-+]?\d+)?NW.*', '2R6.*')
17
+ register_prefix('([-+]?\d+)?NW', '2R6')
18
18
 
19
19
  def fumble_base_number(parsed)
20
20
  parsed.passive_modify_number + parsed.active_modify_number
@@ -40,15 +40,6 @@ module BCDice
40
40
   KIDS=K,EASY=E,NORMAL=N,HARD=H,ULTRA HARD=UH 数字にも対応
41
41
  MESSAGETEXT
42
42
 
43
- # ダイスボットで使用するコマンドを配列で列挙する
44
- register_prefix(
45
- 'NJ\d+.*',
46
- 'EV\d+.*',
47
- 'AT\d+.*',
48
- 'EL\d+.*',
49
- 'SB'
50
- )
51
-
52
43
  def initialize(command)
53
44
  super(command)
54
45
 
@@ -262,10 +253,10 @@ module BCDice
262
253
 
263
254
  # ダイスボットで使用するコマンドを配列で列挙する
264
255
  register_prefix(
265
- 'NJ\d+.*',
266
- 'EV\d+.*',
267
- 'AT\d+.*',
268
- 'EL\d+.*',
256
+ 'NJ\d+',
257
+ 'EV\d+',
258
+ 'AT\d+',
259
+ 'EL\d+',
269
260
  TABLES.keys
270
261
  )
271
262
  end
@@ -127,7 +127,7 @@ module BCDice
127
127
  return "失敗"
128
128
  end
129
129
 
130
- register_prefix('\d*JD.*', 'RETP?\d+', 'DNGNP?\d+', TABLES.keys)
130
+ register_prefix('\d*JD', 'RETP?\d+', 'DNGNP?\d+', TABLES.keys)
131
131
  end
132
132
  end
133
133
  end
@@ -34,7 +34,7 @@ module BCDice
34
34
  MESSAGETEXT
35
35
 
36
36
  # ダイスボットで使用するコマンドを配列で列挙する
37
- register_prefix('\d+CL.*', '\d+R6.*', '\d+D6.*\$[\+\-]?\d+.*')
37
+ register_prefix('\d+CL', '\d+R6', '\d+D6.*\$[\+\-]?\d+')
38
38
 
39
39
  def initialize(command)
40
40
  super(command)
@@ -31,46 +31,38 @@ module BCDice
31
31
  end
32
32
 
33
33
  register_prefix(
34
- '(\d+)?OR([0-9])?([0-9])?([0-9])?([0-9])?([0-9])?([0-9])?'
34
+ '(\d+)?OR(\d{0,6})?'
35
35
  )
36
36
 
37
37
  def eval_game_system_specific_command(command)
38
- if command =~ /(\d+)?OR([0-9])?([0-9])?([0-9])?([0-9])?([0-9])?([0-9])?$/i
39
- diceCount = (Regexp.last_match(1) || 1).to_i
40
- countNo = [(Regexp.last_match(2) || -1).to_i, (Regexp.last_match(3) || -1).to_i, (Regexp.last_match(4) || -1).to_i, (Regexp.last_match(5) || -1).to_i, (Regexp.last_match(6) || -1).to_i, (Regexp.last_match(7) || -1).to_i]
41
- countNo.delete(-1)
42
- countNo = countNo.sort
38
+ m = command.match(/(\d+)?OR(\d{0,6})$/i)
39
+ return nil unless m
43
40
 
44
- return checkRoll(diceCount, countNo)
45
- end
46
-
47
- return nil
41
+ dice_count = (m[1] || 1).to_i
42
+ count_no = (m[2] || "").each_char.map(&:to_i).sort
43
+ return check_roll(dice_count, count_no)
48
44
  end
49
45
 
50
- def checkRoll(diceCount, countNo)
51
- diceArray = @randomizer.roll_barabara(diceCount, 10).sort
52
- diceText = diceArray.join(',')
46
+ def check_roll(dice_count, count_no)
47
+ dice_array = @randomizer.roll_barabara(dice_count, 10).sort
48
+ dice_text = dice_array.join(',')
53
49
 
54
- diceArray.map! { |x| x == 10 ? 0 : x }
55
-
56
- resultArray = []
50
+ result_array = []
57
51
  success = 0
58
- diceArray.each do |i|
59
- multiple = countNo.count(i)
52
+ dice_array.map { |x| x == 10 ? 0 : x }.each do |i|
53
+ multiple = count_no.count(i)
60
54
  if multiple > 0
61
- resultArray.push("#{i}(x#{multiple})")
55
+ result_array.push("#{i}(x#{multiple})")
62
56
  success += multiple
63
57
  else
64
- resultArray.push("×")
58
+ result_array.push("×")
65
59
  end
66
60
  end
67
61
 
68
- countText = countNo.join(',')
69
- resultText = resultArray.join(',')
70
-
71
- result = "#{diceCount}D10(命数:#{countText}) > #{diceText} > #{resultText} > 成功数:#{success}"
62
+ count_text = count_no.join(',')
63
+ result_text = result_array.join(',')
72
64
 
73
- return result
65
+ return "#{dice_count}D10(命数:#{count_text}) > #{dice_text} > #{result_text} > 成功数:#{success}"
74
66
  end
75
67
  end
76
68
  end
@@ -25,7 +25,7 @@ module BCDice
25
25
   例)DC4:【攻撃力】4でダメージチェック DC5[20]:【攻撃力】5でダメージチェック、うち1つは20mm機銃 DC5[20,30]:【攻撃力】5でダメージチェック、うち1つは20mm機銃、うち1つは30mmガンポッド
26
26
  MESSAGETEXT
27
27
 
28
- register_prefix('(\d+)*D20<=.*', '(\d+)*CP.*', 'RMT', 'TOT', 'EXT', 'SUT', 'DC(\d+).*')
28
+ register_prefix('(\d+)*D20<=', '(\d+)*CP', 'RMT', 'TOT', 'EXT', 'SUT', 'DC(\d+)')
29
29
 
30
30
  def eval_game_system_specific_command(command) # ダイスロールコマンド
31
31
  # 通常判定部分をgetJudgeResultコマンドに切り分け
@@ -26,7 +26,7 @@ module BCDice
26
26
  例)MP2
27
27
  INFO_MESSAGE_TEXT
28
28
 
29
- register_prefix('ND.*', 'MP.*')
29
+ register_prefix('ND', 'MP')
30
30
 
31
31
  def eval_game_system_specific_command(command)
32
32
  case command
@@ -175,7 +175,7 @@ module BCDice
175
175
  "2D6",
176
176
  [
177
177
  "オバケ狩りに遭遇してしまいますオバケ判定を行ってください。失敗すると2d6点のダメージを受けます。",
178
- "リングの上司からレポートを提出しろといわれます。セッション終了に、今回の暴言がどんな話だったかをまとめ、GMに報告してください。GMが、その報告がうまくまとまっていると感じたら、そのスプーキーとイノセントのコンビがもらえる経験点が1点上昇します。",
178
+ "リングの上司からレポートを提出しろといわれます。セッション終了に、今回の冒険がどんな話だったかをまとめ、GMに報告してください。GMが、その報告がうまくまとまっていると感じたら、そのスプーキーとイノセントのコンビがもらえる経験点が1点上昇します。",
179
179
  "近所のお家に忍び込み、めぼしいものを探しました。オバケ判定を行ってください。成功すると、ルールブック228頁に書いてあるアイテム表を使ってランダムで決めたアイテム1個を入手します。",
180
180
  "街の優しいおばけたちに頼まれます。そのシナリオに登場するはぐれオバケを説得し、悪事をやめさせることができれば、そのスプーキーとイノセントのコンビがもらえる経験点が1点上昇します。",
181
181
  "オバケたちとギャンブルに興じます♪好きなだけ【魔力】を減少してください。サイコロを1個振ります。奇数が出たらギャンブルに勝利!減少した【魔力】の2倍の値だけ魔力が回復します。偶数が出たらギャンブルに敗北(しょぼん)。減少した魔力はかえってきません。",
@@ -39,7 +39,7 @@ module BCDice
39
39
 
40
40
  register_prefix(
41
41
  'WEA\d*',
42
- '(\d+)?PO.*',
42
+ '(\d+)?PO',
43
43
  'FRE'
44
44
  )
45
45
 
@@ -47,7 +47,7 @@ module BCDice
47
47
   ・プッシュ時のキャスティング・ロールの失敗(Failed Casting Effects)表 FCE
48
48
  INFO_MESSAGE_TEXT
49
49
 
50
- register_prefix('CC\(\d+\)', 'CC.*', 'CBR\(\d+,\d+\)', 'FAR.*', 'BMR', 'BMS', 'FCE', 'PH', 'MA', 'IT')
50
+ register_prefix('CC\(\d+\)', 'CC', 'CBR\(\d+,\d+\)', 'FAR', 'BMR', 'BMS', 'FCE', 'PH', 'MA', 'IT')
51
51
 
52
52
  def eval_game_system_specific_command(command)
53
53
  case command
@@ -1,11 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BCDice
2
4
  module GameSystem
3
5
  class RecordOfLodossWar < Base
4
- ID = 'RecordOfLodossWar'.freeze
5
- NAME = 'ロードス島戦記RPG'.freeze
6
- SORT_KEY = 'ろおとすとうせんきRPG'.freeze
6
+ ID = 'RecordOfLodossWar'
7
+ NAME = 'ロードス島戦記RPG'
8
+ SORT_KEY = 'ろおとすとうせんきRPG'
7
9
 
8
- HELP_MESSAGE = <<~INFO_MESSAGE_TEXT.freeze
10
+ HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
9
11
  ●判定
10
12
   LW<=(目標値)で判定。
11
13
   達成値が目標値の1/10(端数切り上げ)以下であれば大成功。1~10であれば自動成功。
@@ -17,7 +19,7 @@ module BCDice
17
19
   判定と回避判定は、どちらもコマンドだけの場合、出目の表示と自動成功と自動失敗の判定のみを行います。
18
20
  INFO_MESSAGE_TEXT
19
21
 
20
- register_prefix('LW.*')
22
+ register_prefix('LW')
21
23
 
22
24
  def eval_game_system_specific_command(command)
23
25
  parser = Command::Parser.new("LWD", "LW", round_type: round_type)
@@ -21,7 +21,7 @@ module BCDice
21
21
  RecordOfSteam : (4S3@2) > 2,1,2,4,4,4,2,3,4,5,6,6 > 4回転 > 成功数5
22
22
  MESSAGETEXT
23
23
 
24
- register_prefix('\d+S\d+.*')
24
+ register_prefix('\d+S\d+')
25
25
 
26
26
  # サンプルのダイスコマンドは「nSt@c」で n=ダイス個数, t=目標値, c=クリティカル値。@cのみ省略可
27
27
 
@@ -22,7 +22,7 @@ module BCDice
22
22
   例) 3RS+1<=9 3R6+1<=9[3]
23
23
  INFO_MESSAGE_TEXT
24
24
 
25
- register_prefix('\d+RS.*', '3R6.*')
25
+ register_prefix('\d+RS', '3R6')
26
26
 
27
27
  def initialize(command)
28
28
  super(command)
@@ -1,18 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bcdice/dice_table/table"
2
4
 
3
5
  module BCDice
4
6
  module GameSystem
5
7
  class RyuTuber < Base
6
8
  # ゲームシステムの識別子
7
- ID = 'RyuTuber'.freeze
9
+ ID = 'RyuTuber'
8
10
 
9
11
  # ゲームシステム名
10
- NAME = 'リューチューバーとちいさな奇跡'.freeze
12
+ NAME = 'リューチューバーとちいさな奇跡'
11
13
 
12
14
  # ゲームシステム名の読みがな
13
- SORT_KEY = 'りゆうちゆうはあとちいさなきせき'.freeze
15
+ SORT_KEY = 'りゆうちゆうはあとちいさなきせき'
14
16
 
15
- HELP_MESSAGE = <<~MESSAGETEXT.freeze
17
+ HELP_MESSAGE = <<~MESSAGETEXT
16
18
  ◆判定
17
19
   ・判定 nB6<=1
18
20
    ※ n:サイコロの数 例)12B6<=1 サイコロの数12個の場合
@@ -21,7 +21,7 @@ module BCDice
21
21
  例)R8,6>=13
22
22
  INFO_MESSAGE_TEXT
23
23
 
24
- register_prefix('R\d+.*')
24
+ register_prefix('R\d+')
25
25
 
26
26
  def initialize(command)
27
27
  super(command)
@@ -167,7 +167,7 @@ module BCDice
167
167
  end
168
168
 
169
169
  # 固有のコマンドの接頭辞を設定する
170
- register_prefix('2D6.*')
170
+ register_prefix('2D6')
171
171
 
172
172
  # ダイスボットを初期化する
173
173
  def initialize(command)
@@ -31,7 +31,7 @@ module BCDice
31
31
  MESSAGETEXT
32
32
 
33
33
  # ダイスボットで使用するコマンドを配列で列挙する
34
- register_prefix('SBS?.*')
34
+ register_prefix('SBS?')
35
35
 
36
36
  def eval_game_system_specific_command(command)
37
37
  debug("eval_game_system_specific_command Begin")
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "bcdice/game_system/satasupe/tables"
4
+
3
5
  module BCDice
4
6
  module GameSystem
5
7
  class Satasupe < Base
@@ -47,7 +49,9 @@ module BCDice
47
49
  ・D66ダイスあり
48
50
  INFO_MESSAGE_TEXT
49
51
 
50
- register_prefix('(\d+R|SR\d+|TAGT|\w+IET|\w+IHT|F\w*T|F\w*T|A\w*T|G\w*A\w*T|A\w*T|R\w*FT|NPCT|KusaiMT|EnterT|BudTT|GetgT|GetzT|GetnT|GetkT|GETSST|PayT|TimeUT|\w+IT|ShaokinRET|MinamiRET|ChinatownRET|CivicCenterRET|DowntownRET|WarshipLandRET|LoveLoveRET|AjitoRET|JigokuSpaRET|JailHouseRET).*')
52
+ register_prefix('\d+R', 'SR\d+', 'TAGT', 'GETSST', 'NPCT', TABLES.keys, ALIASES.keys)
53
+
54
+ CREATE_ARMS_STRUCT = Struct.new(:base_parts, :accessory_parts, :parts_effect, :hit, :damage, :life, :kutibeni, :kiba, :abilities)
51
55
 
52
56
  def initialize(command)
53
57
  super(command)
@@ -76,11 +80,12 @@ module BCDice
76
80
  def checkRoll(string)
77
81
  debug("checkRoll begin string", string)
78
82
 
79
- return '' unless /^(\d+)R>=(\d+)(\[(\d+)?(,|,\d+)?(,\d+(S)?)?\])?$/i =~ string
83
+ m = /^(\d+)R>=(\d+)(\[(\d+)?(,|,\d+)?(,\d+(S)?)?\])?$/i.match(string)
84
+ return '' unless m
80
85
 
81
- roll_times = Regexp.last_match(1).to_i
82
- target = Regexp.last_match(2).to_i
83
- params = Regexp.last_match(3)
86
+ roll_times = m[1].to_i
87
+ target = m[2].to_i
88
+ params = m[3]
84
89
 
85
90
  min_suc, fumble, critical, isCriticalStop = getRollParams(params)
86
91
 
@@ -131,17 +136,19 @@ module BCDice
131
136
  isCriticalStop = false
132
137
 
133
138
  # params => "[x,y,cS]"
134
- # frozen_string_literal: true
135
139
  # ゲームシステムの識別子
136
140
  # ゲームシステム名
137
141
  # ゲームシステム名の読みがな
138
142
  # ダイスボットの使い方
139
143
  # params => "[x,y,cS]"
140
- if !params.nil? && /\[(\d*)(,(\d*)?)?(,(\d*)(S)?)?\]/ =~ params
141
- min_suc = Regexp.last_match(1).to_i
142
- fumble = Regexp.last_match(3).to_i if Regexp.last_match(3).to_i != 0
143
- critical = Regexp.last_match(5).to_i if Regexp.last_match(4)
144
- isCriticalStop = !Regexp.last_match(6).nil?
144
+ unless params.nil?
145
+ m = /\[(\d*)(,(\d*)?)?(,(\d*)(S)?)?\]/.match(params)
146
+ if m
147
+ min_suc = m[1].to_i
148
+ fumble = m[3].to_i if m[3].to_i != 0
149
+ critical = m[5].to_i if m[4]
150
+ isCriticalStop = !m[6].nil?
151
+ end
145
152
  end
146
153
 
147
154
  return min_suc, fumble, critical, isCriticalStop
@@ -166,7 +173,6 @@ module BCDice
166
173
  debug('roll_times', roll_times)
167
174
 
168
175
  debug('min_suc, total_suc', min_suc, total_suc)
169
- # frozen_string_literal: true
170
176
  # ゲームシステムの識別子
171
177
  # ゲームシステム名
172
178
  # ゲームシステム名の読みがな
@@ -208,31 +214,30 @@ module BCDice
208
214
  def check_seigou(string)
209
215
  debug("check_seigou begin string", string)
210
216
 
211
- return '' unless /^SR(\d+)(([+]|-)(\d+))?$/i =~ string
217
+ m = /^SR(\d+).*$/i.match(string)
218
+ return '' unless m
212
219
 
213
- target = Regexp.last_match(1).to_i
214
- operator = Regexp.last_match(3)
215
- value = Regexp.last_match(4).to_i
220
+ target = m[1].to_i
221
+ sr_parser = Command::Parser.new(/SR\d+/i, round_type: round_type)
222
+ .restrict_cmp_op_to(nil)
223
+ cmd = sr_parser.parse(string)
224
+ return '' unless cmd
216
225
 
217
226
  dice = @randomizer.roll_sum(2, 6)
218
- modify = 0
219
-
220
- unless operator.nil?
221
- modify = value if operator == "+"
222
- modify = value * -1 if operator == "-"
223
- end
227
+ diceTotal = dice + cmd.modify_number
224
228
 
225
- diceTotal = dice + modify
229
+ seigou = if target < diceTotal
230
+ "「激」"
231
+ elsif target > diceTotal
232
+ "「律」"
233
+ else # target == diceTotal
234
+ "「迷」"
235
+ end
226
236
 
227
- seigou = ""
228
- seigou = "「激」" if target < diceTotal
229
- seigou = "「迷」" if target == diceTotal
230
- seigou = "「律」" if target > diceTotal
237
+ result = "〔性業値〕#{target}、「修正値」#{cmd.modify_number} > ダイス結果:(#{dice}) > #{dice}+(#{cmd.modify_number})=#{diceTotal} > #{seigou}"
231
238
 
232
- result = "〔性業値〕#{target}、「修正値」#{modify}ダイス結果:(#{dice}) #{dice}+(#{modify})=#{diceTotal} #{seigou}"
233
-
234
- result += " > 1ゾロのため〔性業値〕が1点上昇!" if dice == 2
235
- result += " > 6ゾロのため〔性業値〕が1点減少!" if dice == 12
239
+ result += " > 1ゾロのため〔性業値〕が1点上昇!" if dice == 2
240
+ result += " > 6ゾロのため〔性業値〕が1点減少!" if dice == 12
236
241
 
237
242
  debug('check_seigou result result', result)
238
243
  return result
@@ -245,13 +250,14 @@ module BCDice
245
250
  command = command.upcase
246
251
  result = []
247
252
 
248
- return result unless command =~ /([A-Za-z]+)(\d+)?(([+]|-|=)(\d+))?/
253
+ m = /([A-Za-z]+)(\d+)?(([+]|-|=)(\d+))?/.match(command)
254
+ return result unless m
249
255
 
250
- command = Regexp.last_match(1)
256
+ command = m[1]
251
257
  counts = 1
252
- counts = Regexp.last_match(2).to_i if Regexp.last_match(2)
253
- operator = Regexp.last_match(4)
254
- value = Regexp.last_match(5).to_i
258
+ counts = m[2].to_i if m[2]
259
+ operator = m[4]
260
+ value = m[5].to_i
255
261
 
256
262
  debug("eval_game_system_specific_command command", command)
257
263
 
@@ -272,52 +278,11 @@ module BCDice
272
278
  end
273
279
 
274
280
  def getTagTableResult(counts)
275
- name = "タグ決定表"
276
- table = [
277
- '情報イベント',
278
- 'アブノーマル(サ)',
279
- 'カワイイ(サ)',
280
- 'トンデモ(サ)',
281
- 'マニア(サ)',
282
- 'ヲタク(サ)',
283
- '音楽(ア)',
284
- '好きなタグ',
285
- 'トレンド(ア)',
286
- '読書(ア)',
287
- 'パフォーマンス(ア)',
288
- '美術(ア)',
289
- 'アラサガシ(マ)',
290
- 'おせっかい(マ)',
291
- '好きなタグ',
292
- '家事(マ)',
293
- 'ガリ勉(マ)',
294
- '健康(マ)',
295
- 'アウトドア(休)',
296
- '工作(休)',
297
- 'スポーツ(休)',
298
- '同一タグ',
299
- 'ハイソ(休)',
300
- '旅行(休)',
301
- '育成(イ)',
302
- 'サビシガリヤ(イ)',
303
- 'ヒマツブシ(イ)',
304
- '宗教(イ)',
305
- '同一タグ',
306
- 'ワビサビ(イ)',
307
- 'アダルト(風)',
308
- '飲食(風)',
309
- 'ギャンブル(風)',
310
- 'ゴシップ(風)',
311
- 'ファッション(風)',
312
- '情報ハプニング',
313
- ]
314
-
315
281
  result = []
316
282
 
317
283
  counts.times do |_i|
318
- info, number = get_table_by_d66(table)
319
- text = "#{name}:#{number}:#{info}"
320
- result.push(text)
284
+ roll_result = TAG_TABLE.roll(@randomizer)
285
+ result.push("#{roll_result.table_name}:#{roll_result.value}:#{roll_result.body}")
321
286
  end
322
287
 
323
288
  return result
@@ -328,168 +293,39 @@ module BCDice
328
293
 
329
294
  name = "サタスペ作成"
330
295
 
331
- hit = 0
332
- damage = 0
333
- life = 0
334
- kutibeni = 0
335
- kiba = 0
336
-
337
- abilities = []
338
-
339
- baseParts = "#{name}:ベース部品:"
340
- partsEffect = "部品効果:"
341
-
342
- number1 = @randomizer.roll_once(6)
343
-
344
- case number1
345
- when 1
346
- baseParts += "「紙製の筒」"
347
- partsEffect += "「命中:10、ダメージ:3、耐久度1」"
348
- hit = 10
349
- damage = 3
350
- life = 1
351
-
352
- when 2
353
- baseParts += "「木製の筒」"
354
- partsEffect += "「命中:9、ダメージ:3、耐久度2」"
355
- hit = 9
356
- damage = 3
357
- life = 2
358
-
359
- when 3
360
- baseParts += "「小型のプラスチック製の筒」"
361
- partsEffect += "「命中:9、ダメージ:4、耐久度2」"
362
- hit = 9
363
- damage = 4
364
- life = 2
365
-
366
- when 4
367
- baseParts += "「大型のプラスチック製の筒」"
368
- partsEffect += "「命中:8、ダメージ:3、耐久度2、両手」"
369
- hit = 8
370
- damage = 3
371
- life = 2
372
- abilities << "「両手」"
373
-
374
- when 5
375
- baseParts += "「小型の金属製の筒」"
376
- partsEffect += "「命中:9、ダメージ:4、耐久度3」"
377
- hit = 9
378
- damage = 4
379
- life = 3
380
-
381
- when 6
382
- baseParts += "「大型の金属製の筒」"
383
- partsEffect += "「命中:8、ダメージ:5、耐久度3、両手」"
384
- hit = 8
385
- damage = 5
386
- life = 3
387
- abilities << "「両手」"
388
- end
389
-
390
- armsTable = [
391
- [11, '「パチンコ玉」'],
392
- [12, '「釘や画鋲、針」'],
393
- [13, '「砂利や小石、ガラスの破片」'],
394
- [14, '「口紅」'],
395
- [15, '「バネやゼンマイ」'],
396
- [16, '「捻子やビス」'],
397
- [22, '「生ゴミ」'],
398
- [23, '「ゴム」'],
399
- [24, '「歯車」'],
400
- [25, '「歯や牙、骨」'],
401
- [26, '「ワイヤー」'],
402
- [33, '「メガネなどのレンズ」'],
403
- [34, '「マッチ」'],
404
- [35, '「ガムテープや接着剤」'],
405
- [36, '「洗濯ばさみ」'],
406
- [44, '「花火」'],
407
- [45, '「食玩」'],
408
- [46, '「真空管やトランジスタ」'],
409
- [55, '「エアコンプレッサ」'],
410
- [56, '「豆」'],
411
- [66, '「ガスボンベや殺虫剤」'],
412
- ]
413
- armsEffectTable = [
414
- [11, '「武器破壊」'],
415
- [12, '「毒」'],
416
- [13, '「散弾」'],
417
- [14, '「(判定前宣言)一度だけ必殺10」'],
418
- [15, '「フル」'],
419
- [16, '「ダメージ+1」'],
420
- [22, '「衝撃」'],
421
- [23, '「ダメージ+1」'],
422
- [24, '「リボルバー」'],
423
- [25, '「(判定前宣言)1D6回、ダメージ+2」'],
424
- [26, '「耐久度+1」'],
425
- [33, '「命中-1」'],
426
- [34, '「必殺12」'],
427
- [35, '「耐久度+1」'],
428
- [36, '「命中-1」'],
429
- [44, '「弾幕1」'],
430
- [45, '「暗器」'],
431
- [46, '「神秘」'],
432
- [55, '「ダメージ+1」'],
433
- [56, '「マヒ」'],
434
- [66, '「爆発3」'],
435
- ]
436
-
437
- baseParts += " アクセサリ部品:"
296
+ arm = case @randomizer.roll_once(6)
297
+ when 1
298
+ CREATE_ARMS_STRUCT.new("「紙製の筒」", [], ["「命中:10、ダメージ:3、耐久度1」"], 10, 3, 1, 0, 0, [])
299
+ when 2
300
+ CREATE_ARMS_STRUCT.new("「木製の筒」", [], ["「命中:9、ダメージ:3、耐久度2」"], 9, 3, 2, 0, 0, [])
301
+ when 3
302
+ CREATE_ARMS_STRUCT.new("「小型のプラスチック製の筒」", [], ["「命中:9、ダメージ:4、耐久度2」"], 9, 4, 2, 0, 0, [])
303
+ when 4
304
+ CREATE_ARMS_STRUCT.new("「大型のプラスチック製の筒」", [], ["「命中:8、ダメージ:3、耐久度2、両手」"], 8, 3, 2, 0, 0, ["「両手」"])
305
+ when 5
306
+ CREATE_ARMS_STRUCT.new("「小型の金属製の筒」", [], ["「命中:9、ダメージ:4、耐久度3」"], 9, 4, 3, 0, 0, [])
307
+ when 6
308
+ CREATE_ARMS_STRUCT.new("「大型の金属製の筒」", [], ["「命中:8、ダメージ:5、耐久度3、両手」"], 8, 5, 3, 0, 0, ["「両手」"])
309
+ end
438
310
 
439
311
  counts.times do |_i|
440
- number2 = @randomizer.roll_d66(D66SortType::ASC)
441
- baseParts += get_table_by_number(number2, armsTable)
442
- partsEffect += get_table_by_number(number2, armsEffectTable)
443
-
444
- case number2
445
- when 11
446
- abilities << "「武器破壊」"
447
- when 12
448
- abilities << "「毒」"
449
- when 13
450
- abilities << "「散弾」"
451
- when 14
452
- kutibeni += 1
453
- when 15
454
- abilities << "「フル」"
455
- when 16, 23, 55
456
- damage += 1
457
- when 22
458
- abilities << "「衝撃」"
459
- when 24
460
- abilities << "「リボルバー」"
461
- when 25
462
- kiba = @randomizer.roll_once(6)
463
- when 26, 35
464
- life += 1
465
- when 33, 36
466
- hit -= 1
467
- when 34
468
- abilities << "「必殺12」"
469
- when 44
470
- abilities << "「弾幕1」"
471
- when 45
472
- abilities << "「暗器」"
473
- when 46
474
- abilities << "「神秘」"
475
- when 56
476
- abilities << "「マヒ」"
477
- when 66
478
- abilities << "「爆発3」"
479
- end
312
+ part, effect, modifier = CREATE_ARMS_ACCESSORY_TABLE[@randomizer.roll_d66(D66SortType::ASC)]
313
+ arm.accessory_parts << part
314
+ arm.parts_effect << effect
315
+ modifier.call(arm, @randomizer)
480
316
  end
481
317
 
482
318
  result = []
483
- result.push(baseParts)
484
- result.push(partsEffect)
319
+ result.push("#{name}:ベース部品:#{arm.base_parts} アクセサリ部品:#{arm.accessory_parts.join}")
320
+ result.push("部品効果:#{arm.parts_effect.join}")
485
321
 
486
- text = "完成品:サタスペ (ダメージ+#{damage}・命中#{hit}・射撃、"
487
- text += "「(判定前宣言)#{kutibeni}回だけ、必殺10」" if kutibeni > 0
488
- text += "「(判定前宣言)#{kiba}回だけ、ダメージ+2」" if kiba > 0
322
+ text = "完成品:サタスペ (ダメージ+#{arm.damage}・命中#{arm.hit}・射撃、"
323
+ text += "「(判定前宣言)#{arm.kutibeni}回だけ、必殺10」" if arm.kutibeni > 0
324
+ text += "「(判定前宣言)#{arm.kiba}回だけ、ダメージ+2」" if arm.kiba > 0
489
325
 
490
- text += abilities.sort.uniq.join
326
+ text += arm.abilities.sort.uniq.join
491
327
 
492
- text += "「サタスペ#{counts}」「耐久度#{life}」)"
328
+ text += "「サタスペ#{counts}」「耐久度#{arm.life}」)"
493
329
 
494
330
  result.push(text)
495
331
 
@@ -497,58 +333,18 @@ module BCDice
497
333
  end
498
334
 
499
335
  def getNpcTableResult(counts)
500
- # 好み/雰囲気表
501
- lmood = [
502
- 'ダークな',
503
- 'お金持ちな',
504
- '美形な',
505
- '知的な',
506
- 'ワイルドな',
507
- 'バランスがとれてる',
508
- ]
509
- # 好み/年齢表
510
- lage = [
511
- '年下が好き。',
512
- '同い年が好き。',
513
- '年上が好き。',
514
- ]
515
- # 年齢表
516
- age = [
517
- '幼年', # 6+2D6歳
518
- '少年', # 10+2D6歳
519
- '青年', # 15+3D6歳
520
- '中年', # 25+4D6歳
521
- '壮年', # 40+5D6歳
522
- '老年', # 60+6D6歳
523
- ]
524
- agen = [
525
- '6+2D6', # 幼年
526
- '10+2D6', # 少年
527
- '15+3D6', # 青年
528
- '25+4D6', # 中年
529
- '40+5D6', # 壮年
530
- '60+6D6', # 老年
531
- ]
532
-
533
336
  name = "NPC表:"
534
337
 
535
338
  result = []
536
339
 
537
340
  counts.times do |_i|
538
- age_type = @randomizer.roll_once(6)
539
- age_type -= 1
540
-
541
- agen_text = agen[age_type]
542
- age_const, age_dice = agen_text.split("+")
341
+ age, agen_const, agen_times = NPC_AGE_TABLE[@randomizer.roll_index(6)]
342
+ ysold = @randomizer.roll_sum(agen_times, 6) + agen_const
543
343
 
544
- times, sides = age_dice.split("D").map(&:to_i)
545
- total = @randomizer.roll_sum(times, sides)
546
- ysold = total + age_const.to_i
344
+ lmodValue = NPC_LMOOD_TABLE[@randomizer.roll_index(6)]
345
+ lageValue = NPC_LAGE_TABLE[@randomizer.roll_index(3)]
547
346
 
548
- lmodValue = lmood[@randomizer.roll_index(6)]
549
- lageValue = lage[@randomizer.roll_index(3)]
550
-
551
- text = "#{name}#{age[age_type]}(#{ysold}歳):#{lmodValue}#{lageValue}"
347
+ text = "#{name}#{age}(#{ysold}歳):#{lmodValue}#{lageValue}"
552
348
  result.push(text)
553
349
  end
554
350
 
@@ -558,14 +354,15 @@ module BCDice
558
354
  def getAnotherTableResult(command, counts, operator, value)
559
355
  result = []
560
356
 
561
- name, table = get2d6TableInfo(command)
562
- return result if name.empty?
357
+ table_name = ALIASES[command] || command
358
+ table = TABLES[table_name]
359
+ return result if table.nil?
563
360
 
564
361
  counts.times do |_i|
565
362
  _, index = getTableIndex(operator, value, 2, 6)
566
363
 
567
- info = table[index - 2]
568
- text = "#{name}#{index}:#{info}"
364
+ info = table.choice(index)
365
+ text = "#{info.table_name}:#{info.value}:#{info.body}"
569
366
  result.push(text)
570
367
  end
571
368
 
@@ -595,586 +392,6 @@ module BCDice
595
392
 
596
393
  return modify, index
597
394
  end
598
-
599
- def get2d6TableInfo(command)
600
- name = ""
601
- table = []
602
-
603
- case command
604
- when /CrimeIET/i
605
- name = "情報イベント表/〔犯罪〕:"
606
- table = [
607
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
608
- '昔やった仕事の依頼人が登場。てがかりをくれる。好きなタグの上位リンク(SL+2)を1つ得る。',
609
- '謎のメモを発見……このターゲットについて調べている間、このトピックのタグをチーム全員が所有しているものとして扱う',
610
- '謎の動物が亜侠を路地裏に誘う。好きなタグの上位リンクを2つ得る',
611
- '偶然、他の亜侠の仕事現場に出くわす。口止め料の代わりに好きなタグの上位リンクを1つ得る',
612
- 'あまりに適切な諜報活動。コストを消費せず、上位リンクを3つ得る',
613
- 'その道の権威を紹介される。現在と同じタグの上位リンクを2つ得る',
614
- '捜査は足だね。〔肉体点〕を好きなだけ消費する。その値と同じ数の好きなタグの上位リンクを得る',
615
- '近所のコンビニで立ち読み。思わぬ情報が手に入る。上位リンクを3つ得る',
616
- 'そのエリアの支配盟約からメッセンジャーが1D6人。自分のチームがその盟約に敵対していなければ、好きなタグの上位リンクを2つ得る。敵対していれば、メッセンジャーは「盟約戦闘員(p.127)」となる。血戦を行え',
617
- '「三下(p.125)」が1D6人現れる。血戦を行え。倒した数だけ、好きなタグの上位リンクを手に入れる'
618
- ]
619
- when /LifeIET/i
620
- name = "情報イベント表/〔生活〕:"
621
- table = [
622
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
623
- '隣の奥さんと世間話。上位リンクを4つ得る',
624
- 'ミナミで接待。次の1ターン何もできない代わりに、好きなタグの上位リンク(SL+2)を1つ得る',
625
- '息抜きにテレビを見ていたら、たまたまその情報が。好きなタグの上位リンクを1つ得る',
626
- '器用に手に入れた情報を転売する。《札巻》を1個手に入れ、上位リンクを3つ得る',
627
- '情報を得るついでに軽い営業。〔サイフ〕を1回復させ、上位リンクを3つ得る',
628
- '街の有力者からの突然の電話。そのエリアの盟約の幹部NPCの誰かと【コネ】を結ぶことができる',
629
- '金をばらまく。〔サイフ〕を好きなだけ消費する。その値と同じ数の任意の上位リンクを得る',
630
- '〔表の顔〕の同僚が思いがけないアドバイスをくれる。上位リンクを1D6つ得る',
631
- '謎の情報屋チュンさんが、情報とアイテムのトレードを申し出る。DDの指定するアイテムを1つ手に入れると、どこからともなくチュンさんが現れる。そのアイテムをチュンさんに渡せば、情報ゲット!',
632
- 'ターゲットとは関係ないが、ドデかい情報を掘り当てる。その情報を売って〔サイフ〕が全快する'
633
- ]
634
- when /LoveIET/i
635
- name = "情報イベント表/〔恋愛〕:"
636
- table = [
637
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
638
- '恋人との別れ。自分に恋人がいれば、1人を選んで、お互いのトリコ欄から名前を消す。その代わり情報ゲット!',
639
- 'とびきり美形の情報提供者と遭遇。〔性業値〕判定で律になると、好きなタグの上位リンクを1つ得る',
640
- '敵対する亜侠と第一種接近遭遇。キスのあとの濡れた唇から、上位リンクを3つ得る',
641
- '昔の恋人がそれに詳しかったはず。その日の深夜・早朝に行動しなければ、好きなタグの上位リンク(SL+2)を1つ得る',
642
- '情報はともかくトリコをゲット。データは「女子高生(p.122)」を使用する',
643
- '関係者とすてきな時間を過ごす。好きなタグの上位リンクを1つ得る。ただし、次の1ターンは行動できない',
644
- '持つべきものは愛の奴隷。自分のトリコの数だけ好きなタグの上位リンクを得る',
645
- '自分よりも10歳年上のイヤなやつに身体を売る。現在と同じタグの上位リンクを1つ得る',
646
- '有力者からの突然のご指名。チームの仲間を1人、ランダムに決定する。差し出すなら、そのキャラクターは次の1ターン行動できない代わり、その後にそのキャラクターの〔恋愛〕と同じ数の上位リンクを得る',
647
- '愛する人の死。自分に恋人がいれば、1人選んで、そのキャラクターを死亡させる。その代わり情報ゲット!'
648
- ]
649
- when /CultureIET/i
650
- name = "情報イベント表/〔教養〕:"
651
- table = [
652
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
653
- 'ネットで幻のリンクサイトを発見。すべての種類のタグに上位リンクがはられる',
654
- '間違いメールから恋が始まる。ハンドルしか知らない「女子高生(p.122)」と恋人(お互いのトリコ)の関係になる',
655
- '新聞社でバックナンバーを読みふける。上位リンクを6つ得る',
656
- '巨大な掲示板群から必要な情報をサルベージ。好きなタグの上位リンクを1つ得る',
657
- '検索エンジンにかけたらすぐヒット。コストを消費せず、上位リンクを4つ得る',
658
- '警察無線を傍受。興味深い。好きなタグの上位リンクを2つ得る',
659
- 'クールな推理がさえ渡る。〔精神点〕を好きなだけ消費する。その値と同じ数だけ好きなタグの上位リンクを得る',
660
- '図書館ロールが貫通。好きなタグの上位リンク(SL+3)を1つ得る',
661
- '図書館で幻の書物を発見。上位リンクを8つ得る。キャラクターシートのメモ欄に<クトゥルフ神話知識>、SANと記入し、それぞれ後ろに+5、-5の数値を書き加える',
662
- 'アジトに謎の手紙が届く。自分のアジトに戻れば、情報ゲット!'
663
- ]
664
- when /CombatIET/i
665
- name = "情報イベント表/〔戦闘〕:"
666
- table = [
667
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
668
- '昔、お前が『更正』させた大幇のチンピラから情報を得る。〔精神点〕を2点減少し、好きなタグの上位リンク(SL+2)を1つ得る。',
669
- '大阪市警の刑事から情報リーク。「敵の敵は味方」ということか……? 〔精神点〕を3点減少し、上位リンクを6つ得る。',
670
- '無軌道な若者達を拳で『更正』させる。彼等は涙を流しながら情報を差し出した。……情けは人のためならず。好きなだけ〔精神点〕を減少する。減少した値と同じ数だけ、上位リンクを得る。',
671
- 'クスリ漬けの流氓を拳で『説得』。流氓はゲロと一緒に情報を吐き出した。2点のダメージ(セーブ不可)を受け、好きなタグの上位リンクを1つ得る。',
672
- '次から次へと糞どもがやってくる。コストを消費せずに上位リンクを3つ得る。',
673
- '自称『善良な一市民』からの情報リークを受ける。オマエの持っている異能の数だけ上位リンクを得る。……罠か!?',
674
- 'サウナ風呂でくつろぐヤクザから情報収集。ヤクザは歯の折れた口から、弱々しい呻きと共に情報を吐き出した。好きなだけダメージを受ける(セーブ不可)。好きなタグの受けたダメージと同じ値のSLへリンクを1つ得る。',
675
- 'ゼロ・トレランスオンスロートなラブ&ウォー。2D6を振り、その値が現在の〔肉体点〕以上であれば、情報をゲット!',
676
- 'お前達を狙う刺客が冥土の土産に教えてくれる。お前自身かチームの仲間、お前の恋人のいずれかの〔肉体点〕を0点にすれば、情報をゲットできる。',
677
- 'お前の宿敵(データはブラックアドレス)が1D6体現れる。血戦によって相手を倒せば、情報ゲット。'
678
- ]
679
- when /CrimeIHT/i
680
- name = "情報ハプニング表/〔犯罪〕:"
681
- table = [
682
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
683
- '警官からの職務質問。一晩拘留される。臭い飯表(p.70)を1回振ること',
684
- 'だますつもりがだまされる。〔サイフ〕を1点消費',
685
- '気のゆるみによる駐車違反。持っている乗物が無くなってしまう',
686
- '超えてはならない一線を越える。トラウマを1点受ける',
687
- 'そのトピックを取りしきる盟約に目をつけられる。このトピックと同じタグのトピックからはリンクをはれなくなる',
688
- '過去の亡霊がきみを襲う。自分の修得している異能の中から好きな1つを選ぶ。このセッションでは、その異能が使用不可になる',
689
- '敵対する盟約のいざこざに巻き込まれる。〔肉体点〕に1D6点のセーブ不可なダメージを受ける',
690
- 'スリにあう。〔通常装備〕からランダムにアイテムを1個選び、それを無くす',
691
- '敵対する盟約からの妨害工作。この情報は情報収集のルールを使って手に入れることはできなくなる',
692
- '頼れる協力者のもとへ行くと、彼(彼女)の無惨な姿が……自分の持っている現在のセッションに参加していないキャラクター1体を選び、〔肉体点〕を0にする。そして、致命傷表(p.61)を振ること'
693
- ]
694
- when /LifeIHT/i
695
- name = "情報ハプニング表/〔生活〕:"
696
- table = [
697
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
698
- '経理の整理に没頭。この日の行動をすべてそれに費やさない限り、このセッションでは買物を行えなくなる',
699
- '壮大なる無駄使い。〔サイフ〕を1点消費',
700
- '「当たり屋(p.124)」が【追跡】を開始',
701
- '留守の間に空き巣が! 〔アジト装備〕からランダムにアイテムが1個無くなる',
702
- '「押し売り(p.124)」が【追跡】を開始',
703
- '新たな風を感じる。自分の好きな〔趣味〕1つをランダムに変更すること',
704
- '貧乏ひまなし。[1D6-自分の〔生活〕]ターンの間、行動できなくなる',
705
- '留守の間にアジトが火事に! 〔アジト装備〕がすべて無くなる。明日からどうしよう?',
706
- '頼りにしていた有力者が失脚する。しわ寄せがこっちにもきて、〔生活〕が1点減少する',
707
- '覚えのない借金の返済を迫られる。〔サイフ〕を1D6点減らす。〔サイフ〕が足りない場合、そのセッション終了時までに不足分を支払わないと【借金大王】(p.119)の代償を得る'
708
- ]
709
- when /LoveIHT/i
710
- name = "情報ハプニング表/〔恋愛〕:"
711
- table = [
712
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
713
- '一晩を楽しむが相手はちょっと特殊な趣味だった。アブノーマルの趣味を持っていない限り、トラウマを1点受ける。この日はもう行動できない',
714
- '一晩を楽しむが相手はちょっと特殊な趣味だった。【両刀使い】の異能を持っていない限り、トラウマを1点受ける。この日はもう行動できない',
715
- '一晩を楽しむが相手は年齢を10偽っていた。ロマンス判定のファンブル表を振ること',
716
- 'すてきな人を見かけ、一目惚れ。DDが選んだNPC1体のトリコになる',
717
- '「痴漢・痴女(p.124)」が【追跡】を開始',
718
- '手を出した相手が有力者の女(ヒモ)だった。手下どもに袋叩きに会い、1D6点のダメージを受ける(セーブ不可)',
719
- '突然の別れ。トリコ欄からランダムに1体を選び、その名前を消す',
720
- '乱れた性生活に疲れる。〔肉体点〕と〔精神点〕がともに2点減少する',
721
- '性病が伝染る。1日以内に病院に行き、治療(価格4)を行わないと、鼻がもげる。鼻がもげると〔恋愛〕が1点減少する',
722
- '生命の誕生。子供ができる'
723
- ]
724
- when /CultureIHT/i
725
- name = "情報ハプニング表/〔教養〕:"
726
- table = [
727
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
728
- 'アヤシイ書物を読み、一時的発狂。この日はもう行動できない。トラウマを1点受ける',
729
- '天才ゆえの憂鬱。自分の〔教養〕と同じ値だけ、〔精神点〕を減少させる',
730
- '唐突に睡魔が。次から2ターンの間、睡眠しなくてはならない',
731
- '間違いメールから恋が始まる。ハンドルしか知らない「女子高生(p.122)」に偽装した「殺人鬼(p.137)」と恋人(お互いのトリコ)の関係になる',
732
- '「勧誘員(p.124)」が【追跡】を開始',
733
- 'OSの不調。徹夜で再インストール。この日はもう行動できない上、「無理」をしてしまう',
734
- '場を荒らしてしまう。このトピックと同じタグのトピックからはリンクをはれなくなる',
735
- 'ボケる。〔教養〕が1点減少する',
736
- 'クラッキングに遭う。いままで調べていたトピックとリンクをすべて失う',
737
- 'ネットサーフィンにハマってしまい、ついつい時間が過ぎる。毎ターンのはじめに〔性業値〕判定を行い、律にならないとそのターンは行動できない。この効果は1日続く'
738
- ]
739
- when /CombatIHT/i
740
- name = "情報ハプニング表/〔戦闘〕:"
741
- table = [
742
- '謎の情報屋チュンさん登場。ターゲットとなる情報を渡し、いずこかへ去る。情報ゲット!',
743
- '悪を憎む心に支配され、一匹の修羅と化す。キジルシの代償から1種類を選び、このセッションの間、習得すること。修得できるキジルシの代償がなければ、あなたはNPCとなる。',
744
- '自宅に帰ると、無惨に破壊された君のおたからが転がっていた。「この件から手を引け」という書き置きと共に……。この情報フェイズでは、リンク判定を行ったトピックのタグの〔趣味〕を修得していた場合、それを未修得にする。また、おたからを持っていたなら、このセッション中、そのおたからは利用できなくなる。',
745
- '「俺にはもっと別の人生があったんじゃないだろうか……!?」突如、空しさがこみ上げて来る……その日は各ターンの始めに〔性業値〕判定を行う。失敗すると、酒に溺れ、そのターンは行動済みになる。',
746
- 'クライムファイター仲間からスパイの容疑を受ける……1点のトラウマを追う。',
747
- '自宅の扉にメモが……!! 「今ならまだ間に合う」奴等はどこまで知っているんだ!? このトピックからは、これ以上リンクを伸ばせなくなる。',
748
- '大幇とコンビナートの抗争に何故か巻き込まれる。……なんとか生還するが、次のターンの最後まで行動できず、1D6点のダメージを受ける(セーブ不可)',
749
- '地獄組の鉄砲玉が君に襲い掛かってきた!! 〔戦闘〕で難易度9の判定に失敗すると、〔肉体点〕が0になる。',
750
- '「お前はやり過ぎた」の書きおきと共に、友人の死体が発見される〔戦闘〕で難易度9の判定を行う。失敗すると、ランダムに選んだチームの仲間1人が死亡する。',
751
- '宿敵によって深い疵を受ける。自分の修得している異能の中から、1つ選ぶこと。このセッションのあいだ、その異能を使用することができなくなる。',
752
- '流氓の男の卑劣な罠にかかり、肥え喰らいの巣に落ちる!! 「掃き溜めの悪魔」1D6体と血戦を行う。戦いに勝たない限り、生きて帰ることはできないだろう……。もちろん血戦に勝ったところで情報は得られない。'
753
- ]
754
- when /G(eneral)?A(ccident)?T/i
755
- name = "汎用アクシデント表:"
756
- table = [
757
- '痛恨のミス。激しく状況が悪化する。以降のケチャップに関する行為判定の難易度に+1の修正がつき、あなたが追う側なら逃げる側のコマを2マス進める(逃げる側なら自分を2マス戻す)',
758
- '最悪の大事故。ケチャップどころではない! 〔犯罪〕で難易度9の判定を行う。失敗したら、ムーブ判定を行ったキャラクターは3D6点のダメージを受け、ケチャップから脱落する。判定に成功すればギリギリ難を逃れる。特に何もなし。',
759
- 'もうダメだ……。絶望感が襲いかかってくる。後3ラウンド以内にケリをつけないと、あなたが追う側なら自動的に逃げる側が勝利する(逃げる側なら追う側が勝利する)',
760
- 'まずい、突発事故だ! ムーブ判定を行ったキャラクターは、1D6点のダメージを受ける。',
761
- '一瞬ひやりと緊張が走る。 ムーブ判定を行ったキャラクターは、〔精神点〕を2点減少する。',
762
- 'スランプ! 思わず足踏みしてしまう。ムーブ判定を行った者は、ムーブ判定に使用した能力値を使って難易度7の判定を行うこと。失敗したら、ムーブ判定を行ったキャラクターは、ケチャップから脱落。成功しても、あなたが追う側なら逃げる側のコマを1マス進める(逃げる側なら自分を1マス戻す)',
763
- 'イマイチ集中できない。〔性業値〕判定を行うこと。「激」になると、思わず見とれてしまう。あなたが追う側なら逃げる側のコマを1マス進める(逃げる側なら自分を1マス戻す)',
764
- '古傷が痛み出す。以降のケチャップに関する行為判定に修正が+1つく',
765
- 'うっかり持ち物を見失う。〔通常装備〕欄からアイテムを1個選んで消す',
766
- '苦しい状態に追い込まれた。ムーブ判定を行ったキャラクターは、今後のムーブ判定で成功度が-1される。',
767
- '頭の中が真っ白になる。〔精神点〕を1D6減少する。'
768
- ]
769
- when /R(omance)?F(umble)?T/i
770
- name = "ロマンスファンブル表:"
771
- table = [
772
- 'みんなあいそをつかす。自分のトリコ欄のキャラクターの名前をすべて消すこと',
773
- '痴漢として通報される。〔犯罪〕の難易度9の判定に成功しない限り、1D6ターン後に検挙されてしまう',
774
- 'へんにつきまとわれる。対象は、トリコになるが、ファンブル表の結果やトリコと分かれる判定に成功しない限り、常備化しなくてもトリコ欄から消えることはない',
775
- '修羅場! 対象とは別にトリコを所有していれば、そのキャラクターが現れ、あなたと対象に血戦をしかけてくる',
776
- '恋に疲れる。自分の〔精神点〕が1D6点減少する',
777
- '甘い罠。あなたが対象のトリコになってしまう',
778
- '平手うち! 自分の〔肉体点〕が1D6点減少する',
779
- '浮気がばれる。恋人関係にあるトリコがいれば、そのキャラクターの名前をあなたのトリコ欄から消す',
780
- '無礼な失言をしてしまう。対象はあなたに対し「憎悪(p.120参照)」の反応を抱き、あなたはその対象の名前を書き込んだ【仇敵】の代償を得る',
781
- 'ショックな一言。トラウマを1点受ける',
782
- 'トリコからの監視! このセッションの間、ロマンス判定のファンブル率が自分のトリコの所持数と同じだけ上昇する'
783
- ]
784
- when /FumbleT/i
785
- name = "命中判定ファンブル表:"
786
- table = [
787
- '自分の持ち物がすっぽぬけ、偶然敵を直撃! 持っているアイテムを1つ消し、ジオラマ上にいるキャラクター1人をランダムに選ぶ。そのキャラクターの〔肉体点〕を1D6ラウンドの間0点にし、行動不能にさせる(致命傷表は使用しない)。1D6ラウンドが経過し、行動不能から回復すると、そのキャラクターの〔肉体点〕は、行動不能になる直前の値にまで回復する',
788
- '敵の増援! 「三下(p.125)」が1D6体現れて、自分たちに襲いかかってくる(DDは、この処理が面倒だと思ったら、ファンブルしたキャラクターの〔肉体点〕を1D6点減少させてもよい)',
789
- 'お前のいるマスに「障害物」が出現! そのマスに障害物オブジェクトを置き、そのマスにいたキャラクターは全員2ダメージを受ける(セーブ不可)',
790
- '射撃武器を使っていれば、弾切れを起こす。準備行動を行わないとその武器はもう使えない',
791
- '転んでしまう。準備行動を行わないと移動フェイズに行動できず、格闘、射撃、突撃攻撃が行えない',
792
- '急に命が惜しくなる。性業値判定をすること。「激」なら戦闘を続行。「律」なら次のラウンドから全力移動を行い、ジオラマから逃走を試みる。「迷」なら次のラウンドは移動・攻撃フェイズに行動できない',
793
- '誤って別の目標を攻撃。目標以外であなたに一番近いキャラクターに4ダメージ(セーブ不可)!',
794
- '誤って自分を攻撃。3ダメージ(セーブ不可)!',
795
- '今使っている武器が壊れる。アイテム欄から使用中の武器を消すこと。銃器を使っていた場合、暴発して自分に6ダメージ! 武器なしの場合、体を傷つけ3ダメージ(共にセーブ不可)!',
796
- '「制服警官(p.129)」が1人現れる。その場にいるキャラクターをランダムに攻撃する',
797
- '最悪の事態。〔肉体点〕を0にして、そのキャラクターは行動不能に(致命傷表は使用しない)'
798
- ]
799
- when /FatalT/i
800
- name = "致命傷表:"
801
- table = [
802
- '死亡。',
803
- '死亡。',
804
- '昏睡して行動不能。1D6ラウンド以内に治療し、〔肉体点〕を1以上にしないと死亡。',
805
- '昏睡して行動不能。1D6ターン以内に治療し、〔肉体点〕を1以上にしないと死亡。',
806
- '大怪我で行動不能。体の部位のどこかを欠損してしまう。任意の〔能力値〕1つが1点減少。',
807
- '大怪我で行動不能。1D6ターン以内に治療し、〔肉体点〕を1以上にしないと体の部位のどこかを欠損してしまう。任意の〔能力値〕1つが1点減少。',
808
- '気絶して行動不能。〔肉体点〕の回復には治療が必要。',
809
- '気絶して行動不能。1ターン後、〔肉体点〕が1になる。',
810
- '気絶して行動不能。1D6ラウンド後、〔肉体点〕が1になる。',
811
- '気絶して行動不能。1D6ラウンド後、〔肉体点〕が1D6回復する。',
812
- '奇跡的に無傷。さきほどのダメージを無効に。'
813
- ]
814
- when /AccidentT/i
815
- name = "アクシデント表:"
816
- table = [
817
- 'ゴミか何かが降ってきて、視界を塞ぐ。以降のケチャップに関する判定に修正が+1つく。あなたが追う側なら逃げる側のコマを2マス進める(逃げる側なら自分を2マス戻す)',
818
- '対向車線の車(もしくは他の船、飛行機)に激突しそうになる。運転手は難易度9の〔精神〕の判定を行うこと。失敗したら、乗物と乗組員全員は3D6のダメージを受けた上に、ケチャップから脱落',
819
- 'ヤバイ、ガソリンがもうない! 後3ラウンド以内にケリをつけないと逃げられ(追いつかれ)ちまう',
820
- '露店や消火栓につっこむ。その乗物に1D6ダメージ',
821
- '一瞬ひやりと緊張が走る。〔精神点〕を2点減らす',
822
- '何かの障害物に衝突する。運転手は難易度7の〔精神〕の判定を行うこと。失敗したら、乗物と乗組員全員は2D6ダメージを受けた上に、ケチャップから脱落。成功しても、あなたが追う側なら逃げる側のコマを1マス進める(逃げる側なら自分を1マス戻す)',
823
- '走ってる途中に〔趣味〕に関する何かが目に映る。性業値判定を行うこと。「激」になると思わず見とれてしまう。あなたが追う側なら逃げる側のコマを1マス進める(逃げる側なら自分を1マス戻す)',
824
- '軽い故障が起きちまった。以降のケチャップに関する行為判定に修正が+1つく',
825
- 'うっかり落し物。〔通常装備〕欄からアイテムを1個選んで消す',
826
- 'あやうく人にぶつかりそうになる。運転手は難易度9の〔精神〕の判定を行う。失敗したら、その一般人を殺してしまう。あなたが追う側なら逃げる側のコマを1マス進める(逃げる側なら自分を1マス戻す)',
827
- '信号を無視しちまったら後ろで事故が起きた。警察のサイレンが鳴り響いてくる。DDはケチャップの最後尾に警察の乗物を加えろ。データは「制服警官(p.129)」のものを使用'
828
- ]
829
- when /AfterT/i
830
- name = "その後表:"
831
- table = [
832
- 'ここらが潮時かもしれない。2D6を振り、その目が自分の修得している代償未満であれば、そのキャラクターは引退し、二度と使用できない',
833
- '苦労の数だけ喜びもある。2D6を振り、自分の代償の数以下の目を出した場合、経験点が追加で1点もらえる',
834
- '妙な恨みを買ってしまった。【仇敵】(p.95)を修得する。誰が【仇敵】になるかは、DDが今回登場したNPCの中から1人を選ぶ',
835
- '大物の覚えがめでたい。今回のセッションに登場した盟約へ入るための条件を満たしていれば、その盟約に経験点の消費なしで入ることができる',
836
- '思わず意気投合。今回登場したNPC1人を選び、そのキャラクターとの【コネ】(p.95)を修得する',
837
- '今回の事件で様々な教訓を得る。自分の修得しているアドバンスドカルマの中から、汎用以外のものを好きなだけ選ぶ。そのカルマの異能と代償を、別な異能と代償に変更することができる',
838
- '深まるチームの絆。今回のセッションでミッションが成功していた場合、【絆】(p.95)を修得する',
839
- '色々な運命を感じる。今回のセッションでトリコができていた場合、経験点の消費なしにそのトリコを常備化することができる。また、自分が誰かのトリコになっていた場合、その人物への【トリコ】(p.95)の代償を得る',
840
- 'やっぱり亜侠も楽じゃないかも。今回のセッションで何かツラい目にあっていた場合、【日常】(p.95)を取得する',
841
- 'くそっ! ここから出せ!! 今回のセッションで逮捕されていたら、【前科】(p.95)の代償を得る',
842
- '〔性業値〕が1以下、もしくは13以上だった場合、そのキャラクターは大阪の闇に消える。そのキャラクターは引退し、二度と使用できない'
843
- ]
844
- when /KusaiMT/i
845
- name = "臭い飯表:"
846
- table = [
847
- 'やあ署長、ご苦労さん。いつでも好きなときに留置所を出ることができる。',
848
- '軽い取り調べを受ける。次の1ターンが終了するまで、未行動にならない。',
849
- '荒っぽい取り調べを受ける。次の1ターンが終了するまで、未行動にならない。1ターン休み。1D6ダメージを受ける(セーブ不可)。',
850
- '一晩泊まっていきなさい。次の日の朝まで未行動にならない。',
851
- '粘り強い取り調べが続く。1D6日後の朝まで未行動にならない。',
852
- '留置所のトイレで陵辱を受ける。1D6日後の朝まで未行動にならない。トラウマを1点受ける。',
853
- '劣悪な環境のせいで伝染病にかかる。1D6日後の朝まで未行動にならない。【病弱】の代償を得る。',
854
- '精神異常を訴え、無罪に。しかし、アーカム・アサイレムに移送され、1D6回別のキャラクターでセッションを行うまで、そのキャラクターを使用できない。キジルシの代償の中から、ランダムに1つの代償を得る。',
855
- '起訴されて有罪に。海上刑務所行き。1D6回別のキャラクターでセッションを行うまで、そのキャラクターを使用できない。【前科】の代償を得る。',
856
- '起訴されて有罪に。海上刑務所行き。2D6回別のキャラクターでセッションを行うまで、そのキャラクターを使用できない。【前科】の代償を得る。',
857
- '起訴されて有罪に。海上刑務所行き。終身刑。そのキャラクターは引退する。'
858
- ]
859
- when /EnterT/i
860
- name = "登場表:"
861
- table = [
862
- '「こっから先にはいかせないぜ」 【仇敵】がいれば現われ、血戦が始まる。現在の血戦、もしくはケチャップが終了したら、処理を行うこと。',
863
- '「待たせたな、みんな!」 ジオラマの好きな場所に自分のキャラクターを配置する。',
864
- 'おっと、鉢合わせ。ランダムにジオラマ上の敵を1体選ぶ。選んだ敵と同じマスに、そのキャラクターを配置する。',
865
- '全力ダッシュで駆けつける! 〔肉体点〕を1D6点消費すれば、ジオラマの好きな場所に自分のキャラクターを配置する。そうでなければ、登場できない。',
866
- '裏道を歩いていたら、偶然その場所にでくわした。DDはジオラマの好きな場所にそのキャラクターを配置する。',
867
- '「キキィー!」 もしもそのキャラクターが乗物を装備していれば、DDはジオラマの好きな場所にそのキャラクターを配置する。そうでなければ、登場できない。',
868
- '……間に合ったみたいだな。仲間を1人選び、そのキャラクターと同じマスに自分のキャラクターを配置する。',
869
- 'ラッキー、「ジャリ銭」を拾った。……と、そんな場合じゃないよな。',
870
- 'をっと、お前の好物だ。〔性業値〕判定を行え。「律」ならもう一回、登場表を振ることができる。それ以外なら、キャラクターを配置できない。',
871
- 'んー。ここは一度通ったような。疲労から〔精神点〕を2点減少。',
872
- 'くあー。完全に道に迷っちまった。この実行フェイズには登場できない。'
873
- ]
874
- when /BudTT/i
875
- name = "バッドトリップ表:"
876
- table = [
877
- '自分の身の周りにいる人たちが異様な何か(悪魔、宇宙人、ゾンビ、お前と同じ顔をした誰か…)に変貌し襲い掛かってくる。お前はNPCとなって、同じ場所にいる誰かに血戦をしかける。血戦が終了すれば(そして生きていれば)、視界は元に戻っている。',
878
- '世界は一つ。オープンソース。愛で結びつくべきなんだ。お前は自分の知っていることをペラペラと話だし、1D6ターンの間、聞かれれば知っていることを何でも話してしまう。',
879
- '自分と他人の区別がつかなくなり、現実感が薄れる。〔精神点〕を1D6点減少する。',
880
- '誰かが自分を殺そうと企んでいるような錯覚を覚える。1D6ターンの間、ペテン師の代償【疑心暗鬼】を修得する。',
881
- '風景が極彩色に彩られる!もっと……もっと極彩色に!もし他にも「麻薬」カテゴリのアイテムを持っていれば、その中の1個を使用する(行動は使わない)。',
882
- '目の前にいる人物が非常にいとおしく思えてくる。同じ場所にいるキャラクターの中からランダムに1人選ぶ。1D6ターンの間、そのキャラクターのトリコになる。',
883
- '魅力的な裸の異性が、あなたの目の前で誘惑する幻覚を見る。〔性業値〕判定を行う。「激」になると服を脱ぎだす。もしも外にいればそのエリアの〔治安〕の難易度の〔犯罪〕判定を行う。失敗すると「臭い飯」表を振る。',
884
- 'お前は痛みを感じなくなる。1D6ターンの間、〔肉体点〕の重症のペナルティが無効化される。',
885
- '自分の持っているものから触手が生え、あなたにからみつく。自分の〔通常装備〕欄のアイテムの中からランダムに1種を選ぶ。それを捨てる。',
886
- '皮膚の中を無数の蟲が蠢いているのを感じる。〔肉体点〕を3点減少する。',
887
- '神々しい声が聞こえてくる。1D6ターンの間、自分の好きな能力値を1点上昇することができる。'
888
- ]
889
- when /GetgT/i
890
- name = "報酬・ガラクタ表:"
891
- table = [
892
- '持ち主の〔生活〕と等しい個数の《食事》(基本80p、小道具・日用品)',
893
- '持ち主の〔生活〕と等しい個数の《トルエン》(基本79p、小道具・麻薬)',
894
- '持ち主の〔生活〕と等しい個数の《ジャリ銭》(基本78p、小道具・お金)',
895
- '壊れた実用品。実用品表で決定。(壊れたアイテムは、1ターン使用し〔教養〕で難易度9の判定に使用すると直せる)',
896
- '《テレカ》(基本78p、小道具・通信手段)',
897
- '何もなかった(涙)。残念でした。',
898
- '《ロープ》(基本78p、小道具・保安器具)',
899
- '《トヨトミピストル》(基本74p、武器)',
900
- '《自転車》(基本76p、乗物)',
901
- '《ふとん》(基本79p、小道具・日用品)',
902
- '持ち主の〔趣味〕からランダムに1種類選ぶ。その趣味おたからを1個ランダムに選ぶ。'
903
- ]
904
- when /GetzT/i
905
- name = "報酬・実用品表:"
906
- table = [
907
- '持ち主と同じタイプの汎用おたから(基本82p、汎用おたから)',
908
- '価格5の《ホテル》の使用券(基本80p、小道具・サービス)',
909
- '《苦力》(基本80p、小道具・手下)',
910
- '《カメラ》(基本80p、小道具・手下)',
911
- '持ち主が使っていた装備(ただし、一般アイテムに存在しない装備をPCは使用できない)',
912
- '持ち主の〔生活〕と等しい個数の《札巻》(基本78p、小道具・お金)',
913
- '持ち主の〔生活〕と等しい個数の《大麻》(基本79p、小道具・麻薬)',
914
- '《ノートパソコン》と《携帯電話》(基本78p、79p、小道具・日用品、通信手段)',
915
- '《ヴェスパ》(基本76p、乗物)',
916
- '《救急箱》(基本79p、小道具・保安器具)',
917
- '《札束》(基本78p、小道具・お金)'
918
- ]
919
- when /GetnT/i
920
- name = "報酬・値打ち物表:"
921
- table = [
922
- '社会的身分。【日常】の異能を手に入れる。',
923
- '《人柱》(基本184p、盟約おたから・沙京流氓)',
924
- '貴重な貴金属。1ターン使って〔生活〕で難易度9の判定に成功すれば《トランク》と交換できる。',
925
- '持ち主と同じタイプの汎用おたから(基本82p、汎用おたから)',
926
- '持ち主の〔生活〕と等しい個数の《ヘロイン》(基本79p、小道具・麻薬)',
927
- '持ち主の〔生活〕と等しい個数の《札束》(基本78p、小道具・お金)',
928
- '持ち主の〔生活〕と等しい個数の価格5以下の武器(基本79p、小道具・麻薬)',
929
- '《ロールスロイス》(基本76p、乗物)',
930
- '持ち主の〔趣味〕からランダムに1種類選ぶ。その趣味おたからを1個ランダムに選ぶ。',
931
- '《トランク》(基本78p、小道具・お金)',
932
- '《宝箱》(基本78p、小道具・お金)'
933
- ]
934
- when /GetkT/i
935
- name = "報酬・奇天烈表:"
936
- table = [
937
- '好きな盟約おたから1個(プレイヤー全員で相談して決定)',
938
- '《気球》(基本76p、乗物)',
939
- '《チェインソー》(基本74p、武器)',
940
- '誰かから感謝される。それだけ?',
941
- '持ち主の〔趣味〕からランダムに1種類選ぶ。その趣味おたからを1個ランダムに選ぶ。',
942
- '何もなかった(涙)。残念でした。',
943
- '持ち主と同じタイプの汎用おたから(基本82p、汎用おたから)',
944
- '《フォークリフト》(基本76p、乗物)',
945
- '《RPG-7》(基本74p、武器)',
946
- '倒されたキャラクターは、致命傷表を振り、まだ生きていれば、そのキャラクターを倒した者のトリコになる。',
947
- '「先にイッてるぜ」そのキャラクター1体を倒した者に経験点が1点与えられる。'
948
- ]
949
- when /PayT/i
950
- name = "落とし前表:"
951
- table = [
952
- '闇のゲーム。ロシアンルーレットや地下闘技場への出場といった、致死率の高い理不尽な労働に従事させられる。この落とし前を1回受けるたびに、1D6を振る。1の出目が出ると、そのキャラクターは死亡する。',
953
- '拷問。心身ともに痛めつけられる。この落とし前を1回受けるたびに、【悪夢】、【疑心暗鬼】、【出不精】、【依存体質】、【弱虫】、【虚弱】の中から代償を一つ選んで修得する。どの代償もすでに修得していた場合、そのキャラクターは死亡する。新しい恋人ができるたび、この落とし前の効果を1回分、無効化することができる。',
954
- '苦役。売春や、組織犯罪の資金源になるよう強制労働に従事させられる。この落とし前を1回受けるたびに、以降、セッションの間に「苦役」という特に何の効果ももたらさない計画的行動を一度行わなければいけなくなる。セッション中に規定の「苦役」の回数をこなすことができなかったキャラクターは、「苦役」の必要回数に満たない数だけ、「落とし前表」を使用しなければならない。《トランク》を1個消費すると、この落とし前表の効果を1回分、無効化することができる。',
955
- '係累への被害。自分の身内や恋人が殺される。この落とし前を1回受けるたびに、トラウマを1点受ける。',
956
- '部位破壊。指や手首を切り落とされたり、臓器を摘出されたりする。この落とし前を1回受けるたびに、「致命傷表」の6番の効果を受ける。',
957
- '罰金。法外な違約金を払わされたり、借金を負わされたりする。この落とし前を1回受けるたびに、〔サイフ〕の最大値が1点減少する。〔サイフ〕の最大値が0点になると、そのキャラクターは死亡する。《札束》を5個消費すると、この落とし前の効果を一回分、無効化することができる。',
958
- 'さらし者。謝罪会見を行わされたり、恥ずかしい動画や写真を公開されたりする。この落とし前を1回受けるたびに、【世界の敵】、【悪名】、【有名人】、【狼少年】、【手配書】、【カモ】の中から代償を一つ選んで修得する。どの代償もすでに修得していた場合、そのキャラクターは死亡する。経験点を2点消費すると、この落とし前の効果を1回分、無効化することができる。',
959
- '刻印。坊主頭にされたり、恥ずかしい入れ墨や刻印を刻み付けられたりする。この落とし前を1回受けるたびに、そのキャラクターが行うロマンスや交渉の判定の難易度が1点上昇する。',
960
- '差し押さえ。この落とし前を1回受けるたびに、そのキャラクターは、自分が装備しているもっとも価格の高いアイテム1つを失う。おたからは価格8として扱い、もっとも高い価格のアイテムを複数持っている場合は、その中からランダムに選ぶ。',
961
- '監禁。マグロ漁船や地下工場に閉じ込められ、長期的な労働に従事させられる。この落とし前を1回受けるたびに、一回別のキャラクターでセッションを行うまで、そのキャラクターを使用できない。《札束》を5個消費すると、この落とし前の効果を1回分、無効化することができる。',
962
- '去勢。性的な機能を破壊される。この落とし前を受けると、「無言で押し倒す」ことができなくなる。この落とし前を二回以上受けると、そのキャラクターは死亡する。'
963
- ]
964
- when /MinamiRET/i
965
- name = "ミナミ遭遇表:"
966
- table = [
967
- '(場所)大変だ、阪神が勝った。4000人のトラキチが、一緒に道頓堀に飛び込もうと迫る。飛び込むなら水中には「下水ワニ」(基本132p)が待っている。拒否するならトラキチたちは「ベンガル虎」(基本133p)を亜侠にけしかける。',
968
- '(場所)突然の夕立、そして稲妻! 武器を一番多く持っている亜侠に雷が落ちる。複数いた場合、1D6で一番高い目を出した亜侠に落ちる。黒焦げになり、パーマがかかり、ランダムに一つ武器を失う(熔ける)。',
969
- '(一人)酔っ払いの吐瀉物を浴びて〔精神点〕に1ダメージ。風呂に入って着替えるまで、あらゆる交渉は自動的に成功度が-1される。',
970
- '(一人)好みの恋愛対象に出会ったと思ったら「美人局」(基本124p)だった!',
971
- '(一人)うっかり入った店が暴力喫茶だった! 「押し売り」(基本124p)相当。',
972
- '(一人)しつこいキャッチに絡まれる。「勧誘員」(基本124p)相当。',
973
- '(一人)裏路地で襲われる。「痴漢・痴女」(基本124p)相当。',
974
- '(一人)道を渡ろうとしたら路面電車に撥ねられる。〔肉体点〕に1D6ダメージ。',
975
- '(一人)契約刑事に恐喝される。逮捕されたくなければ、〔サイフ〕を1減らせ。',
976
- '(一人)うっかりマリア・ヴィスコンティを怒らせた! この場では何も起こらないが、マリアは忘れない。次に亜侠が致命傷表送りになったとき、マリアが出現して亜侠の利き腕を吹き飛ばして去る(致命傷表の判定が必ず「7~9」になる)。',
977
- '(一人)「円盤」(基本138p)に襲われ、さらわれる。1ターン経って戻ってくると、頭からアンテナが生えている。キャラクターイラストにアンテナを書き加えろ。それが嫌なら戦うこと。'
978
- ]
979
- when /ChinatownRET/i
980
- name = "中華街遭遇表:"
981
- table = [
982
- '(一人)好みの恋愛対象に襲われて目くるめく一時を過ごす。だが1ターン経って目が覚めると、房中術で性転換させられている。',
983
- '(場所)人を食う「パンダ」(基本133p)に襲われる。',
984
- '(一人)道端の占い師をうっかり撥ねて、人肉饅頭の呪いを受ける。このセッション中に行動不能になったら、狂気の料理人に饅頭にされて食われ、後には何も残らない。',
985
- '(場所)漢方薬局を冷やかしていたら、世界自然保護プロレス基金WWWWF(World_Wide_Wildelife_Wrestling_Found)のレスラー1D6人(「街頭覇王」(基本134p))に襲われる。亜侠が手に取った犀の角が気に入らなかったのだ。誰かが〔サイフ〕を1支払ってTシャツを買うと許してくれる(キャラクターイラストにパンダのマークをつけること)が、そうでなければ戦うしかない。',
986
- '(場所)化石を売りつけようとする「押し売り」(基本124p)に遭遇。品物は1D6を振って決める。1:ゴモラの全身骨格、2:マチカネワニの涙、3:明石原人の糞石、4:生きた北京原人、5:豊臣秀吉15歳のしゃれこうべ、6:三葉虫ボトルキャップ',
987
- '(場所)映画の撮影現場に紛れ込んでしまった! このセッションの間、戦闘時になると敵味方全員に《透明ワイヤー》の効果がつく。既に持っていた場合、「跳ぶ」を選んでも使用回数を消費しない。',
988
- '(一人)美味しい中華料理を食いすぎて、一時的にすごく太る。このセッションの間は、〔肉体〕が+1されるが、その亜侠に対する命中判定にも+1の修正がつく。',
989
- '(一人)道端で碁の勝負を見ていたら、いつのまにか1ターン経っていた。代わりに〔精神点〕が1回復する。',
990
- '(一人)お前をスターと間違えたおっかけの大群が迫ってくる。このセッションの間、【有名人】の代償がつく。',
991
- '(場所)空飛ぶギロチンを持った老人と片腕の格闘家が戦っている。二人はどちらもチームに加勢を求める。老人は「罪狩」(基本135p)、格闘家は「殺人鬼」(基本137p)だ。味方するなら、どちらに手を貸すか決めて戦闘を行え(味方された本人は戦わない)。どちらかを倒したらもう一人は礼を言って即座に去る。倒したのが格闘家なら《不肖の弟子》が、老人なら《空飛ぶギロチン》(本格的武器)が手に入る。',
992
- '(場所)「狂人」とその一党が現れた! キャラクターシートの「好きな映画」が空欄だった亜侠は、頭に火をつけられる。キャラクターのイラストから髪を取り除け。シートに顔を描いていなかった場合、キャラクターシートを燃やすか、自分の頭を燃やすか、〔肉体点〕を1減らすこと。「狂人」を倒すことはできない。彼は永遠だ。'
993
- ]
994
- when /WarshipLandRET/i
995
- name = "軍艦島遭遇表:"
996
- table = [
997
- '(場所)蟹の押し売りに遭う。しかもただの押し売りではない、食い詰めた「超人兵士」(基本134p)だ! 蟹(価格3の「食事」(基本79p))を買うか、そうでなければ戦うこと。',
998
- '(場所)救世軍の配給に長い行列ができている。〔性業値〕判定で「激」を出した亜侠はつい並んでしまい、1ターン消費して「食事」(基本79p)をゲット。',
999
- '(場所)荒廃した通りを横断していたら撃たれる。スナイパーだ! 全員1D6を振り、一番低い目を出した亜侠は〔肉体点〕に1D6のダメージ。',
1000
- '(場所)突然の路面陥没! 乗り物を所持している亜侠は〔精神〕9の判定に成功しないと、逃げ遅れて乗り物に2D6のダメージを受ける。',
1001
- '(場所)季節はずれの雪が降っている。青く光ってなんだかとても美しい。とりあえず〔肉体点〕と〔精神点〕に1ダメージ。',
1002
- '(場所)飢えた野犬がぞろぞろついてくる。このセッション中に軍艦島で行動不能になった亜侠は、すぐに食われて後には何も残らない。',
1003
- '(一人)気がつくと食玩塗りの搾取工場の中……。コンビナートの手配師に捕まったのだ。脱出するのに1ターン無駄にするが、見張りの「ブラックアドレス」(基本127p)一体と戦って勝てば時間を無駄にせずにすむ。',
1004
- '(一人)自宅が膨張する203高地に取り込まれた。脱出するのに1ターンかかる上、アジトの場所が「軍艦島」になってしまう。',
1005
- '(場所)ガス爆発!1D6して出た目のエリアに飛ばされる上、飛ばされたエリアの遭遇表を振らねばならない。1:ミナミ、2:十三、3:沙京、4:中華街、5:官庁街、6:軍艦島',
1006
- '(場所)ひょろひょろ跳んできた「ミサイル」(基本130p)と目が合った。目標を見失っていたミサイルは、亜侠を新たな目標に決めて親しげに近づいてくる。',
1007
- '(一人)「タイラー・ダーデン」に遭遇し、啓蒙される。これがお前の人生だ。お前はいつか必ず死ぬ。それを認識しない限り、お前は糞のままだ。〔肉体点〕と〔精神点〕に1ダメージ。〔性業値〕が2下がる。更にこのセッション中は「迷」が出ても「激」として扱う。'
1008
- ]
1009
- when /CivicCenterRET/i
1010
- name = "官庁街遭遇表:"
1011
- table = [
1012
- '(場所)大規模なデモにぶつかって身動きが取れなくなった。まずいと思う間もなく、列強の鎮圧部隊が容赦なく群集に向かって発砲する。阿鼻叫喚の中で全員〔肉体点〕に1D6のダメージ。',
1013
- '(場所)火事だ! ビルがぼうぼう燃えている。〔犯罪〕8の判定に失敗すると、野次馬の中でスリにやられ、アイテムをランダムに一つ失う。',
1014
- '(場所)株価暴落で取り付け騒ぎが起こっている。〔生活〕4以上の亜侠は〔サイフ〕が1減る。',
1015
- '(一人)身投げか事故か突き落とされたのか、ビルから人が振ってきた。〔戦闘〕で難易度9の判定に成功しないと、直撃されて〔肉体点〕に2D6のダメージ。',
1016
- '(場所)観光客に写真を撮られる。このセッション中、亜侠に対する逮捕判定の難易度は-1される。',
1017
- '(一人)汚職警官に職務質問される。「押し売り」(基本124p)相当。',
1018
- '(場所)軍事パレードが開催中だ。「デモ行進」(基本124p)相当。',
1019
- '(場所)今日は即売会だ。「ヲタク」か「マニア」の〔趣味〕を持つ亜侠は、1ターン消費して買い物しないと、〔精神点〕に1D6ダメージ。',
1020
- '(一人)爆弾テロだ! 1D6して出た目のエリアに飛ばされる上、飛ばされたエリアの遭遇表を振らねばならない。1:ミナミ、2:十三、3:沙京、4:中華街、5:官庁街、6:軍艦島',
1021
- '(場所)ビルから降ってきたお札をみんなが奪い合っている。争奪戦に加わるなら、〔肉体点〕に1D6ダメージを受けて〔サイフ〕を1回復してよい。',
1022
- '(一人)閉鎖されているはずの地下鉄の入り口が開いている……。性業値判定で「激」が出るとふらふらと入ってしまい、1ターン経った後戻る。奇天烈の宝物表(基本140p)を1回振れる。トラウマを1点受け、中で起こったことは何も憶えていない。入り口は固く閉ざされ、もう開かない。……今のところは。'
1023
- ]
1024
- when /DowntownRET/i
1025
- name = "十三遭遇表:"
1026
- table = [
1027
- '(場所)地震だ! 亜侠自身には被害はないが、家が大変なことに。帰宅すると、アジト装備がランダムに1個壊れている。アジト装備がなかった場合、家が壊れている。',
1028
- '(場所)山から下りてきた猪が突っ込んでくる! データは「トラック野郎」(基本123p)を使う。',
1029
- '(一人)草野球の代打を頼まれる。1D6せよ。「スポーツ」の趣味があれば+1。1,2:三振! 冷たい視線を浴びて〔精神点〕-1、3,4:ヒット! 喝采を浴びて〔精神点〕1回復。5,6:ホームラン! そしてガラスの割れる音!窓を割られた家から怒り狂った「おかん」(基本122p)が飛び出して、大根片手に亜侠を襲う。',
1030
- '(場所)「獅子舞」(基本128p)が亜侠の周りをぐるぐる周って離れようとしない。この状態で戦闘が起こると、獅子舞は敵に加わって亜侠を襲う。〔サイフ〕を1渡せば、獅子舞は歯をがちがち言わせて去る。',
1031
- '(一人)地獄湯の「勝負師」(基本126p)に賭けを挑まれ、ざわざわする。',
1032
- '(一人)お魚くわえようとするドラ猫に襲われる。〔犯罪〕で難易度9の判定に失敗したらランダムにアイテム一つを失う。亜侠が「食事」(基本79p)を持っていれば、優先的にそれを狙う。',
1033
- '(場所)神風師団の自警団に囲まれた! 名前にカタカナがある亜侠がいたら集中的に襲われる(「忘八」(基本128p)1D6人相当)。日本人名の亜侠しかいなければ、被害を受けることはない。',
1034
- '(一人)生臭坊主/生臭尼僧にお布施を要求される。データは「勧誘員」(基本124p)。',
1035
- '(一人)大仏から身投げをした人が降ってきた。〔戦闘〕で難易度9の判定に成功しないと、直撃されて〔肉体点〕に2D6のダメージ',
1036
- '(場所)祭囃子が聞こえてきたかと思ったら、目の前をすごい早さで神輿が通り過ぎる。性業値判定で「激」が出た亜侠は、思わず祭に参加してしまい、高速神輿に連れ去られる。1ターン戻ってこない上、疲れきって〔肉体点〕-1。',
1037
- '(一人)好みの恋愛対象に誘われて夢のような時間を過ごし、気が付くと肥溜めに肩まで漬かっていることに気付く。おばけに化かされた!1ターン消費する。風呂に入って着替えるまで、あらゆる交渉は自動的に成功度が-1される。この効果は一緒に行動する仲間の判定にも影響する。'
1038
- ]
1039
- when /ShaokinRET/i
1040
- name = "沙京遭遇表:"
1041
- table = [
1042
- '(一人)いつのまにか、少女/少年が1人ついてきている。奴隷のようだが、亜侠を主人だと思っているらしく離れようとしない。何に相当するか1D6を振れ。1:【守るべき者】(基本103p)、2:愛人(基本80p)、3:使用人(基本80p)、4:居候(基本80p)、5:落とし穴(基本78p)、6:食事(基本79p)。性別はプレイヤーが決めてよい。',
1043
- '(場所)どこからか煙が漂ってくる……麻薬工場が火事だ! 煙を吸って目を回し、各自1D6を振れ、出た目のドラックの効果を受ける。直接摂取ではないので、ドラッグの強度からは-3。1:コカイン、2:大麻、3:ハルシオン、4:トルエン、5:エクスタシー、6自白剤(ドラッグのデータ→基本79p)',
1044
- '(場所)やけに人懐っこい豚がいると思ったら、人の味を覚えた豚だった! 戦闘になる。データは「ベンガル虎」(基本133p)を使う。',
1045
- '(場所)あばれ象が車を踏み潰して暴走している! 乗り物を所持している亜侠は〔精神〕9の判定に成功しないと、逃げ遅れて乗り物に2D6のダメージを受ける。',
1046
- '(場所)インド人が死んでいる……。死体を漁るなら1D6。1:カレー味の《視肉》(基本85p)、2:サファイア(札束(基本78p)相当)、3:《あわてるなタオル》(基本93p)、4:RPG-7(基本74p)、5:死体じゃなくて「ゾンビ」(137p)だった、6:「はきだめの悪魔」だった',
1047
- '(一人)バクシーシ! バクシーシ! じゃりンこ10人が〔サイフ〕1点払うまでぞろぞろついてくる。何かあると「邪魔」(基本37p)10人分を行う。',
1048
- '(一人)いきなり足に何かが噛み付く。「下水ワニ」(基本132p)だ! 〔肉体〕9の判定に成功すると振りほどけるが、失敗すると〔肉体点〕に1ダメージ。成功するまで判定すること。〔肉体点〕が0になると、亜侠は水路に引きずり込まれて食われる。',
1049
- '(一人)気がつくと奴隷船の船倉の中……。奴隷商人の人狩りに捕まったのだ。脱出するのに1ターン無駄にするが、見張りの「ククバット」(基本127p)1体と戦って勝てば時間を無駄にせずにすむ。',
1050
- '(一人)アラブの露天商に水煙草を勧められる。一服してまったりする亜侠だが、その懐に小猿が手を伸ばす……。アイテムをランダムに1つ失う。',
1051
- '(一人)魚を満載したトラックから鮫が落ちてきて、亜侠に噛み付いて死ぬ。怪我はないが離れようとしない。死んだ鮫をぶら下げて歩くことになるので、セッション終了時まで、その亜侠と一緒にいると治安が+2される。',
1052
- '(場所)祝祭だ! 巨大なジャガーノート(山車)が通りを突き進んでくる。これに轢かれると幸せな来世が保証されるのだ。性業値判定を3回振れ。全部「激」を出した亜侠は、思わず車輪の下に飛び込んで〔肉体点〕に10のダメージを受ける。この亜侠が死んだら、次に作るキャラクターに異能と代償を一つずつ受け継がせること。これがカルマだ。'
1053
- ]
1054
- when /LoveLoveRET/i
1055
- name = "らぶらぶ遭遇表:"
1056
- table = [
1057
- '(場所)お互いに運命を感じる。この後のロマンス判定で成功して、トリコを獲得した場合、セッション終了時にそのトリコを経験点消費なしに常備化できる。ただし、このトリコと別れたり、このトリコが死亡したりすると、経験点が1点減少する。',
1058
- '(場所)「……こんなとこで何やってんの?」「げ」もし、自分のトリコの中に、この場所と同じ〔趣味〕の持ち主がいた場合、その人物が現れる。血戦を行うこと。',
1059
- '(一人)デート中に相手の姿を見失ってしまう。〔犯罪〕で難易度9の判定を行う。成功すると、その場所の〔趣味〕に対応した趣味おたからをランダムに1つ獲得する。失敗すると、ロマンス判定は行えなくなる。',
1060
- '(一人)楽しくショッピング! 〔生活〕で難易度9の判定を行う。成功すると、その成功度と同じ値だけ、〔精神点〕を回復できる。失敗すると、セッション中、この後のロマンス判定のファンブル率が2点上昇する。',
1061
- '(一人)「…………」互いに遠慮して気まずい感じ。〔恋愛〕で難易度9の判定を行う。成功すると、この後のロマンス判定の難易度が1点減少する。失敗すると、この後のロマンス判定の難易度が2点上昇する。',
1062
- '(場所)亜侠稼業を忘れてしまいそうなほど、充実した時間を過ごす。デートを行っているキャラクター全員は、〔精神点〕が2点回復する。',
1063
- '(一人)「うーん、ここつまんないね。場所変えよっか」〔恋愛〕で難易度9の判定を行う。成功すると、この後のロマンス判定の難易度が1点減少する。失敗すると、デート参加者全員は、このエリカの遭遇表をさらに1回ずつ振らなければならない。',
1064
- '(一人)趣味の会話で盛り上がる! 〔教養〕で難易度9の判定を行う。成功すると、それ以降一度だけ、そのセッション中に行う判定の難易度を、その成功度と同じ値だけ減少することができる。失敗すると、セッション中、この場所の〔趣味〕が未修得の状態になる。',
1065
- '(一人)「あぶない、暴れ馬だッ!」〔戦闘〕で難易度9の判定を行う。成功すると、デートの相手の好みを、自分のタイプと同じものに変更することができる。失敗すると、デートの相手は1D6点のダメージを受ける(セーブ不可)。',
1066
- '(場所)「ようよう、綺麗なねぇちゃん、連れとるやんけ」「三下」が1D6人現れる。血戦を行うこと。',
1067
- '(場所)「んー付き合っちゃおうか」デートに参加したキャラクターは、この後のロマンス判定が自動的に成功する。'
1068
- ]
1069
- when /AjitoRET/i
1070
- name = "アジト遭遇表:"
1071
- table = [
1072
- '(一人)「強盗殺人の容疑で逮捕する! お前には黙秘権があり、供述は、法廷で不利な証拠として……」どやどやと踏み込んでくる警官たち。「制服警官」がお前を対象にして【逮捕】の異能を使ってくる。「制服警官」の判定が失敗すると、それ以降、このセッション中では、「臭い飯」表を振るとき、その2D6の目からマイナス3することができる。',
1073
- '(一人)ピンポーン♪ チャイムの音。イヤな予感がするなぁ。1D6を振る。奇数なら「勧誘員」が【ムダ話】を、偶数なら「押し売り」が【売り口上】を使ってくる。',
1074
- '(一人)イメージチェンジ! たまにはスタイルを変えてみようかな? 外見表を使って、ランダムに外見を変える。そのセッション中、各エリアで〔犯罪〕の行為判定を行うとき、そのエリアの衣装欄に書かれた外見であれば、振ることのできる2D6の回数が1回上昇する。',
1075
- '(場所)「やっぱり、ここにいやがったな」このアジトにいるキャラクターが【コネ】か【仇敵】か【トリコ】の汎用異能、もしくは汎用代償を修得していれば、それに対応するキャラクター(コネ、仇敵、自分の主人)が現れる。コネなら、アジトにいる全員は、価格がそのキャラクターの〔生活〕-1以下のアイテムを1つ獲得できる。仇敵なら、アジトにいる全員は1ダメージを受ける(セーブ不可)。自分の主人なら【トリコ】の持ち主は、別れをつげられ【トリコ】を失うが〔精神点〕が2D6点減少する。',
1076
- '(一人)「よう、元気にしてるか?」家族や友人からの突然の連絡。懐かしい気持ちに高揚しつつも、優しい気持ちになる。〔性業値〕を1点上昇、もしくは1点減少することができる。',
1077
- '(場所)何となくテレビでもつけ、面白いチャンネルがないか、探してみる。うーん。ケーブルテレビに入るべきか……。アジトの持ち主の〔生活〕の値と同じ回数だけ「趣味決定表」を振り、各自、その結果と自分の〔趣味〕を比べてみる。自分が持っている〔趣味〕と同じ〔趣味〕が出ていれば、その回数だけ、自分の〔精神点〕を回復する。',
1078
- '(一人)あ、こんなところに買い置きが。《食事》を1D6個獲得する。',
1079
- '(場所)「みんなで鍋でもするか」現在、このアジトにいるキャラクターと手下カテゴリーのアイテムの合計数だけ、〔精神点〕が回復する。',
1080
- '(一人)ふぅ。やっぱり、自宅が一番落ち着くなぁ。もしも修得していなければ【日常】の異能を修得する。',
1081
- '(一人)一休み……のつもりが、ついつい居眠りしてしまう。アジトに自分しかいなければ、性業値判定を行うこと。「律」になれば、〔精神点〕をアジトの〔快適度〕の半分だけ回復することができる。「激」なら、「睡眠」をしてしまう。「迷」なら、次のターンもアジトから移動できず、行動もできない。アジトに誰かいたら、もう一度アジト遭遇表を振ること。',
1082
- '(一人)謎の贈り物が届く……。趣味おたからの中からランダムに1つを選び、それを獲得する。その後、1D6を振る。その目が、このイベントで趣味おたからを獲得した回数以下だった場合、贈り主の呪いによって2D6点のダメージを受ける(セーブ不可)。'
1083
- ]
1084
- when /JigokuSpaRET/i
1085
- name = "地獄湯遭遇表:"
1086
- table = [
1087
- '(一人)なぜかあなたはローマ時代にタイムスリップする! 今後、このシナリオのあらゆる判定の難易度が1減少する(累積不可)。',
1088
- '(場所)お湯の中に鮫が! 〔戦闘〕で難易度9の判定を行う。失敗したキャラクターは〔肉体点〕を1D6点減少。',
1089
- '(一人)地獄湯の出張販売! 望むなら価格のある地獄組の盟約アイテムを購入することができる。',
1090
- '(場所)ふぅ。湯上がりは親でも惚れるね。〔恋愛〕で難易度9の判定に成功すると、その場にいる好きなキャラクター1人をトリコにすることができる。',
1091
- '(一人)あああ、なんか面白そうだなぁ。性業値判定を行う。「激」ならついついギャンブルゾーンに行ってしまう。「迷」なら行動済みになってしまう。「ギャンブル」の〔趣味〕の持ち主は、サイコロの目に2を加えること。',
1092
- '(場所)地獄組による監視。もしチームが彼らと敵対していれば、うまく身を隠す必要がある。〔犯罪〕で難易度9の判定を行う。失敗すると、〔肉体点〕を1点減少する。そうでなければ、何もなし。',
1093
- '(一人)うーん。のぼせちゃったかな。〔精神点〕を1点減少する。',
1094
- '(場所)道に迷いそうになる。〔教養〕で難易度9の判定を行い、失敗したキャラクターは、地獄湯内の6つのゾーンの中からランダムに1つを選び、そこに移動する。',
1095
- '(一人)ナンパにあう。〔恋愛〕で難易度9の判定に成功すると、色々おごってもらえる。〔サイフ〕を1点回復することができる。',
1096
- '(場所)まずい。お湯の温度が恐ろしいことになっている! 〔精神点〕を2点減少する。',
1097
- '(一人)価格3の買い物を行うと、マッサージをしてもらえる。〔肉体点〕を1点、〔精神点〕を1D6点回復できる。'
1098
- ]
1099
- when /JailHouseRET/i
1100
- name = "JAILHOUSE遭遇表:"
1101
- table = [
1102
- '「あちらのお客様からです」と渡されたグラス。その中には爆発寸前の《手榴弾》が入っていた。手榴弾はそのPCに命中したものとして扱う。',
1103
- '「……パパぁ」小さな「じゃりンこ」があなたの裾をつかむ。そのセッションの間、「じゃりンこ」がついてきて、そのPCのロマンス判定を【邪魔】する。',
1104
- '「あ、サイフがない!」〔サイフ〕を1点減らす。',
1105
- '乗物が盗まれる! 装備の中に乗物があった場合、そのアイテムを失う。',
1106
- '誰かと荷物を間違えてしまう! 自分の装備からランダムに1個のアイテムを失う。その後、自分の〔生活〕と等しい報酬表を振ってアイテムを1つ手に入れる。',
1107
- '「な、なんだテメェ!」他の客たちの喧嘩に巻き込まれる。〔肉体点〕を2点減少(セーブ不可)。',
1108
- '「突然だけど……別れましょう」あなたに恋人がいれば、そのキャラクターが現れ、2人は別れる。',
1109
- '何かの間違いだろうか。きみのあおったグラスの中に、《エクスタシー》が混じっていた! か、体があつィっ!',
1110
- '「ようチンピラ、まだ生きてたのかい?」契約刑事のマリアが絡んでくる。彼女を楽しませるために「飲み会」を行わないとチーム全員が「臭い飯」表を一回ずつ振らなければいけない。',
1111
- '突然の銃声! 「侠客」1人がきみに向かって《トカレフ》を「仁義なく」ぶっ放す! 血戦を開始せよ。',
1112
- '「エルヴィス」があらわれ、店で奇跡的なまでに楽しいパーティーが行われる。チーム全員が気付くと1日が経過していた。'
1113
- ]
1114
- when /TreatmentIT/i
1115
- name = "治療イベント表:"
1116
- table = [
1117
- '不治の病だったことが分かる。1D6セッション後に死亡するが、今回以降のセッションで得られる経験値はすべて2倍になる。',
1118
- '治療中の動物が脱走! サイコロを1個振り、1~4なら「番犬」が、5~6なら「ベンガル虎」が現れる。誰かが〔戦闘〕で難易度11の判定に成功すると、血戦を回避できる。',
1119
- '「ここかなぁ~」治療の結果、変なツボをつかれたらしく、このセッションの間、〔破壊力〕が9に、〔反応力〕が1になる。',
1120
- '「芸術的な内臓をしている」希望すれば、あなたの腎臓を《トランク》1つで買ってくれる。',
1121
- '急患が大量に運ばれてくる。これ以降、このセッション終了時まで、乃木クリニックの治療の価格が、すべて1上昇する。',
1122
- '乃木センセイの本気が炸裂! 美形タイプの男性キャラクターが1人いるたびに、治療の成功度が自動的に+2される。',
1123
- '「だって、字ぃ読めないしぃ」リョータが点滴を間違える。サイコロを1個振り、下記のドラッグを摂取してしまう。1:《トルエン》 2:《ヘロイン》 3:《ハルシオン》 4《エクスタシー》 5:《コカイン》 6:《シャブ》',
1124
- '「ウッソ、マッジ!?」待合室で読みたかった雑誌のバックナンバーを発見。〔精神点〕が全快し、トラウマを受けていればそれも1点回復する。',
1125
- '医療ミス! サイコロを1個振り、1~4ならメスが、5~6ならランダムに趣味おたから1個が手術のミスで身体の中に残ってしまう。メスが身体に残っているキャラクターは、ファンブルを起こすたびに1ダメージを受けてしまう。重症の治療の判定に成功すると、中のアイテムを取り出すことができる。',
1126
- '治療のついでに身体の異常が発見される。男性なら性病で鼻がもげ〔恋愛〕が1点減少、女性なら子供ができていることがわかる。',
1127
- '奇跡的な治療のワザ! 治療判定の結果に関わらず〔肉体点〕が全快する。'
1128
- ]
1129
- when /CollegeIT/i
1130
- name = "大学イベント表:"
1131
- table = [
1132
- '運動家に勧誘される。〔精神点〕を2点減少する。',
1133
- '痴情のもつれ! 自分のトリコの数を数える。1D6を振り、その数以下の目を出してしまった場合、刺されてしまう。〔肉体点〕に3ダメージ(セーブ不可)。',
1134
- 'バイトの張り紙が…… セッション中に、何でもいいのでおたからを手に入れていれば、セッション終了時にそれを《トランク》で買い取ってくれる。',
1135
- 'コンパに誘われる。次の日の夜にコンパに行くことができる。コンパに行ったキャラクターは〔恋愛〕で難易度9の判定に成功すると、「女子高生」と恋人になる。',
1136
- '授業にもぐりこむ。すやすやと心地よい時間が過ぎ、〔精神点〕を6点回復する。',
1137
- 'サークルボックスでダベる。同じターンに、他の仲間がリンク判定を行っていれば、好きな情報イベント表を振ることができる。',
1138
- 'キャンパスでいちゃいちゃカップルに遭遇する。らぶらぶオーラにあてられる。',
1139
- '代返を頼まれる。〔精神〕で難易度9の判定に成功しないと、次の日の朝は行動を行えない。その代わり、学食で一回おごってもらえる。',
1140
- '教授の実験に付き合わされる。〔肉体〕で難易度9の判定に失敗すると、《LSD》を飲まされる。',
1141
- '麻雀に誘われる。次の日の夜に麻雀に行くことができる。麻雀に行ったキャラクターは、〔犯罪〕で難易度9の判定を行い、その成功度分だけ〔サイフ〕を回復することができる。ただし、〔性業値〕の判定を行い「律」以外だと徹マンになり、その日は無理してしまう。',
1142
- '恋愛フラグが起動。チームの異性のキャラクターをランダムに1人選び、その人のトリコになる。また、選ばれた異性のキャラクターもランダムに異性キャラクターを1人選び、その人のトリコになる。'
1143
- ]
1144
- when /FatalVT/i
1145
- name = "乗物致命傷表:"
1146
- table = [
1147
- '乗物は破壊。乗物に乗車していたキャラクターは、性業値判定を行う。「激」か「迷」だった者は、大破に巻き込まれ、2D6点のダメージを受ける(セーブ不可)。',
1148
- '「ひどい運転しやがって!」死んだかと思った乗物が幽霊自動車になって、襲いかかってくる。',
1149
- '「今まで一緒に乗ってくれてありがとう」乗物が、最後にきみに語りかけてくる。炎上する乗物を眺めながら、思わず涙が流れる。乗物は破壊。乗物の持ち主は、〔精神点〕を2点回復。',
1150
- 'ハンドルがきかず、人をひいてしまう。乗物は破壊。〔犯罪〕で難易度9の判定に失敗すると「臭い飯表」を1回振ること。',
1151
- 'コロコロコロコロ……車輪が転がる。ダメだ。もう一歩も動かない。乗物が破壊される。',
1152
- '壮絶なクラッシュ!! 乗物とその乗物に乗せていたアイテムがすべて破壊される。',
1153
- '乗物に衝撃が走る! 〔精神〕で難易度9の判定を行う。失敗すると、その乗物に乗せていたアイテムがすべて破壊される。乗物は破壊される。',
1154
- 'バッテリーがあがってしまった。乗物が一時的に使用不能に。1ターン後、乗物の〔肉体点〕が1になる。',
1155
- '「おい! 走ってくれ! 走ってくれよ!」乗物が一時的に使用不能に。1D6ラウンド後、〔肉体点〕が1になる。',
1156
- 'エンスト! 乗物が一時的に使用不能に。1D6ターン後、〔肉体点〕が1D6点回復する。',
1157
- '「まだ走れるよ!」奇跡のような走り! さきほどのダメージを無効に。'
1158
- ]
1159
- when /TimeUT/i
1160
- name = "時間切れ表:"
1161
- table = [
1162
- 'は! 夢か。今までのことは夢だった。すべて世はこともなし。',
1163
- 'UFOが現れ、トラクタービームに牽引される。全員〔精神〕で難易度9の判定を行う。失敗したキャラクターは、1D6セッション別のキャラクターでセッションを行うまで、再利用できなくなる。',
1164
- 'まわりでバタバタと人が倒れ始める。新型インフルエンザウイルスが、知性を持ち始め、突如人類に反旗を翻す。全員、〔肉体〕で難易度9の判定を行う。失敗したキャラクターは、〔肉体〕が1点減少する。',
1165
- '急に、家のガスコンロを消したかどうか気になり始める。全員、〔生活〕で難易度9の判定を行う。失敗したキャラクターは、本当に火を消し忘れていた。家が火事になり、〔アジト装備〕がすべて破壊される。',
1166
- '突如、みんなが歌い踊り出す。全員、〔教養〕で難易度9の判定を行う。失敗したキャラクターは、リズムを外して、トラウマを1点受ける。',
1167
- '内戦勃発! 派手な市街戦が開始される。全員、〔戦闘〕で難易度9の判定を行う。失敗したキャラクターは、2D6点のダメージを受ける。内戦は3日後に終結する。',
1168
- 'いやーん、まいっちんぐ。200人の裸の美女が目の前を走りさっていく。一体何が起きたんだろう? 全員、〔恋愛〕で難易度9の判定を行う。失敗したキャラクターは、いつの間にか、その集団に呑み込まれ……トラウマを1点受ける。',
1169
- 'ビルの上から、大量のお札が降ってくる。皆、我を忘れて、それに群がり始める。全員、〔犯罪〕で難易度9の判定を行う。失敗したキャラクターは、〔通常装備〕欄からランダムにアイテム1つを失う。',
1170
- '聖者が街にやってくる。「悔い改めよ!」全員、〔精神〕で難易度9の判定を行う。失敗したキャラクターは、好きなカルマ1種類の異能と代償が1つずつ未修得の状態になる。',
1171
- '地獄の釜が開く。街に死者たちがあふれ出す。全員〔肉体〕で難易度9の判定を行う。失敗したキャラクターは、屍人になる。',
1172
- 'たらら、たらら、たらららら、たらららら♪ 大阪湾に怪獣王が現れる。大阪市は大混乱に! 全員、爆発4の効果を適用される。'
1173
- ]
1174
- end
1175
-
1176
- return name, table
1177
- end
1178
395
  end
1179
396
  end
1180
397
  end