bcdice 3.0.0.pre.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +21 -0
- data/.github/.codecov.yaml +10 -0
- data/.github/workflows/coverage.yaml +21 -0
- data/.github/workflows/lint.yaml +13 -0
- data/.github/workflows/test.yml +20 -0
- data/.gitignore +14 -0
- data/.rubocop.yml +96 -0
- data/.rubocop_todo.yml +113 -0
- data/CHANGELOG.md +868 -0
- data/Gemfile +11 -0
- data/LICENSE +29 -0
- data/README.md +38 -0
- data/ROADMAP.md +30 -0
- data/Rakefile +118 -0
- data/bcdice.gemspec +27 -0
- data/bin/repl.rb +21 -0
- data/docs/README.txt +2028 -0
- data/docs/dicebot_sort_key.md +72 -0
- data/docs/how_to_make_dicebot.md +453 -0
- data/lib/bcdice.rb +8 -0
- data/lib/bcdice/arithmetic_evaluator.rb +167 -0
- data/lib/bcdice/base.rb +423 -0
- data/lib/bcdice/command_parser.rb +242 -0
- data/lib/bcdice/common_command.rb +23 -0
- data/lib/bcdice/common_command/add_dice.rb +54 -0
- data/lib/bcdice/common_command/add_dice/node.rb +488 -0
- data/lib/bcdice/common_command/add_dice/parser.rb +282 -0
- data/lib/bcdice/common_command/add_dice/randomizer.rb +48 -0
- data/lib/bcdice/common_command/barabara_dice.rb +57 -0
- data/lib/bcdice/common_command/calc.rb +39 -0
- data/lib/bcdice/common_command/choice.rb +35 -0
- data/lib/bcdice/common_command/d66_dice.rb +63 -0
- data/lib/bcdice/common_command/reroll_dice.rb +190 -0
- data/lib/bcdice/common_command/upper_dice.rb +165 -0
- data/lib/bcdice/common_command/version.rb +26 -0
- data/lib/bcdice/dice_table.rb +8 -0
- data/lib/bcdice/dice_table/chain_table.rb +33 -0
- data/lib/bcdice/dice_table/d66_grid_table.rb +26 -0
- data/lib/bcdice/dice_table/d66_range_table.rb +26 -0
- data/lib/bcdice/dice_table/d66_table.rb +34 -0
- data/lib/bcdice/dice_table/range_table.rb +267 -0
- data/lib/bcdice/dice_table/roll_result.rb +43 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +32 -0
- data/lib/bcdice/dice_table/table.rb +35 -0
- data/lib/bcdice/enum.rb +15 -0
- data/lib/bcdice/format.rb +36 -0
- data/lib/bcdice/game_system.rb +187 -0
- data/lib/bcdice/game_system/AFF2e.rb +141 -0
- data/lib/bcdice/game_system/AceKillerGene.rb +55 -0
- data/lib/bcdice/game_system/Airgetlamh.rb +117 -0
- data/lib/bcdice/game_system/Alsetto.rb +124 -0
- data/lib/bcdice/game_system/Alshard.rb +27 -0
- data/lib/bcdice/game_system/AlterRaise.rb +282 -0
- data/lib/bcdice/game_system/Amadeus.rb +622 -0
- data/lib/bcdice/game_system/Amadeus_Korean.rb +501 -0
- data/lib/bcdice/game_system/AnimaAnimus.rb +96 -0
- data/lib/bcdice/game_system/Arianrhod.rb +50 -0
- data/lib/bcdice/game_system/ArsMagica.rb +149 -0
- data/lib/bcdice/game_system/Avandner.rb +101 -0
- data/lib/bcdice/game_system/BBN.rb +143 -0
- data/lib/bcdice/game_system/BadLife.rb +435 -0
- data/lib/bcdice/game_system/BarnaKronika.rb +188 -0
- data/lib/bcdice/game_system/BattleTech.rb +530 -0
- data/lib/bcdice/game_system/BeastBindTrinity.rb +348 -0
- data/lib/bcdice/game_system/BeginningIdol.rb +2527 -0
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2378 -0
- data/lib/bcdice/game_system/BladeOfArcana.rb +252 -0
- data/lib/bcdice/game_system/BlindMythos.rb +460 -0
- data/lib/bcdice/game_system/BloodCrusade.rb +423 -0
- data/lib/bcdice/game_system/BloodMoon.rb +213 -0
- data/lib/bcdice/game_system/CardRanker.rb +249 -0
- data/lib/bcdice/game_system/ChaosFlare.rb +181 -0
- data/lib/bcdice/game_system/Chill.rb +163 -0
- data/lib/bcdice/game_system/Chill3.rb +52 -0
- data/lib/bcdice/game_system/CodeLayerd.rb +132 -0
- data/lib/bcdice/game_system/ColossalHunter.rb +569 -0
- data/lib/bcdice/game_system/CrashWorld.rb +81 -0
- data/lib/bcdice/game_system/Cthulhu.rb +252 -0
- data/lib/bcdice/game_system/Cthulhu7th.rb +767 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +386 -0
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +383 -0
- data/lib/bcdice/game_system/CthulhuTech.rb +263 -0
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +243 -0
- data/lib/bcdice/game_system/Cthulhu_Korean.rb +240 -0
- data/lib/bcdice/game_system/DarkBlaze.rb +207 -0
- data/lib/bcdice/game_system/DarkDaysDrive.rb +425 -0
- data/lib/bcdice/game_system/DarkSouls.rb +91 -0
- data/lib/bcdice/game_system/DeadlineHeroes.rb +583 -0
- data/lib/bcdice/game_system/DemonParasite.rb +524 -0
- data/lib/bcdice/game_system/DetatokoSaga.rb +310 -0
- data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +310 -0
- data/lib/bcdice/game_system/DiceBot.rb +17 -0
- data/lib/bcdice/game_system/DiceOfTheDead.rb +111 -0
- data/lib/bcdice/game_system/DoubleCross.rb +373 -0
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +371 -0
- data/lib/bcdice/game_system/Dracurouge.rb +1856 -0
- data/lib/bcdice/game_system/Dracurouge_Korean.rb +310 -0
- data/lib/bcdice/game_system/DungeonsAndDragons.rb +19 -0
- data/lib/bcdice/game_system/EarthDawn.rb +225 -0
- data/lib/bcdice/game_system/EarthDawn3.rb +275 -0
- data/lib/bcdice/game_system/EarthDawn4.rb +272 -0
- data/lib/bcdice/game_system/EclipsePhase.rb +51 -0
- data/lib/bcdice/game_system/Elric.rb +36 -0
- data/lib/bcdice/game_system/Elysion.rb +1213 -0
- data/lib/bcdice/game_system/EmbryoMachine.rb +227 -0
- data/lib/bcdice/game_system/EndBreaker.rb +132 -0
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +27 -0
- data/lib/bcdice/game_system/Fiasco.rb +123 -0
- data/lib/bcdice/game_system/Fiasco_Korean.rb +122 -0
- data/lib/bcdice/game_system/FilledWith.rb +1543 -0
- data/lib/bcdice/game_system/FullMetalPanic.rb +27 -0
- data/lib/bcdice/game_system/FutariSousa.rb +994 -0
- data/lib/bcdice/game_system/FutariSousa_Korean.rb +994 -0
- data/lib/bcdice/game_system/Garako.rb +559 -0
- data/lib/bcdice/game_system/GardenOrder.rb +451 -0
- data/lib/bcdice/game_system/GehennaAn.rb +136 -0
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +120 -0
- data/lib/bcdice/game_system/GoblinSlayer.rb +168 -0
- data/lib/bcdice/game_system/GoldenSkyStories.rb +77 -0
- data/lib/bcdice/game_system/Gorilla.rb +44 -0
- data/lib/bcdice/game_system/GranCrest.rb +518 -0
- data/lib/bcdice/game_system/Gundog.rb +52 -0
- data/lib/bcdice/game_system/GundogRevised.rb +294 -0
- data/lib/bcdice/game_system/GundogZero.rb +261 -0
- data/lib/bcdice/game_system/Gurps.rb +403 -0
- data/lib/bcdice/game_system/GurpsFW.rb +2330 -0
- data/lib/bcdice/game_system/HarnMaster.rb +208 -0
- data/lib/bcdice/game_system/HatsuneMiku.rb +706 -0
- data/lib/bcdice/game_system/Hieizan.rb +48 -0
- data/lib/bcdice/game_system/HouraiGakuen.rb +270 -0
- data/lib/bcdice/game_system/HuntersMoon.rb +503 -0
- data/lib/bcdice/game_system/Illusio.rb +89 -0
- data/lib/bcdice/game_system/InfiniteFantasia.rb +51 -0
- data/lib/bcdice/game_system/Insane.rb +822 -0
- data/lib/bcdice/game_system/Insane_Korean.rb +773 -0
- data/lib/bcdice/game_system/IthaWenUa.rb +38 -0
- data/lib/bcdice/game_system/JamesBond.rb +45 -0
- data/lib/bcdice/game_system/Kamigakari.rb +394 -0
- data/lib/bcdice/game_system/Kamigakari_Korean.rb +428 -0
- data/lib/bcdice/game_system/KanColle.rb +938 -0
- data/lib/bcdice/game_system/KemonoNoMori.rb +258 -0
- data/lib/bcdice/game_system/KillDeathBusiness.rb +1420 -0
- data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +1510 -0
- data/lib/bcdice/game_system/KurayamiCrying.rb +49 -0
- data/lib/bcdice/game_system/LiveraDoll.rb +375 -0
- data/lib/bcdice/game_system/LogHorizon.rb +3567 -0
- data/lib/bcdice/game_system/LogHorizon_Korean.rb +1407 -0
- data/lib/bcdice/game_system/LostRecord.rb +30 -0
- data/lib/bcdice/game_system/LostRoyal.rb +242 -0
- data/lib/bcdice/game_system/MagicaLogia.rb +1148 -0
- data/lib/bcdice/game_system/MeikyuDays.rb +415 -0
- data/lib/bcdice/game_system/MeikyuKingdom.rb +466 -0
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +269 -0
- data/lib/bcdice/game_system/MetalHead.rb +249 -0
- data/lib/bcdice/game_system/MetalHeadExtream.rb +917 -0
- data/lib/bcdice/game_system/MetallicGuardian.rb +31 -0
- data/lib/bcdice/game_system/MonotoneMuseum.rb +354 -0
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +304 -0
- data/lib/bcdice/game_system/Nechronica.rb +211 -0
- data/lib/bcdice/game_system/Nechronica_Korean.rb +160 -0
- data/lib/bcdice/game_system/NeverCloud.rb +74 -0
- data/lib/bcdice/game_system/NightWizard.rb +231 -0
- data/lib/bcdice/game_system/NightWizard3rd.rb +24 -0
- data/lib/bcdice/game_system/NightmareHunterDeep.rb +117 -0
- data/lib/bcdice/game_system/NinjaSlayer.rb +274 -0
- data/lib/bcdice/game_system/NjslyrBattle.rb +54 -0
- data/lib/bcdice/game_system/Nuekagami.rb +293 -0
- data/lib/bcdice/game_system/OneWayHeroics.rb +134 -0
- data/lib/bcdice/game_system/OracleEngine.rb +265 -0
- data/lib/bcdice/game_system/OrgaRain.rb +77 -0
- data/lib/bcdice/game_system/Oukahoushin3rd.rb +162 -0
- data/lib/bcdice/game_system/Paradiso.rb +323 -0
- data/lib/bcdice/game_system/Paranoia.rb +64 -0
- data/lib/bcdice/game_system/ParanoiaRebooted.rb +109 -0
- data/lib/bcdice/game_system/ParasiteBlood.rb +231 -0
- data/lib/bcdice/game_system/Pathfinder.rb +21 -0
- data/lib/bcdice/game_system/Peekaboo.rb +324 -0
- data/lib/bcdice/game_system/Pendragon.rb +39 -0
- data/lib/bcdice/game_system/PhantasmAdventure.rb +73 -0
- data/lib/bcdice/game_system/Postman.rb +185 -0
- data/lib/bcdice/game_system/PulpCthulhu.rb +184 -0
- data/lib/bcdice/game_system/Raisondetre.rb +171 -0
- data/lib/bcdice/game_system/RecordOfLodossWar.rb +58 -0
- data/lib/bcdice/game_system/RecordOfSteam.rb +149 -0
- data/lib/bcdice/game_system/RokumonSekai2.rb +110 -0
- data/lib/bcdice/game_system/RoleMaster.rb +24 -0
- data/lib/bcdice/game_system/RuneQuest.rb +47 -0
- data/lib/bcdice/game_system/RyuTuber.rb +266 -0
- data/lib/bcdice/game_system/Ryutama.rb +199 -0
- data/lib/bcdice/game_system/SRS.rb +348 -0
- data/lib/bcdice/game_system/SamsaraBallad.rb +111 -0
- data/lib/bcdice/game_system/Satasupe.rb +1173 -0
- data/lib/bcdice/game_system/ScreamHighSchool.rb +128 -0
- data/lib/bcdice/game_system/SevenFortressMobius.rb +34 -0
- data/lib/bcdice/game_system/ShadowRun.rb +26 -0
- data/lib/bcdice/game_system/ShadowRun4.rb +49 -0
- data/lib/bcdice/game_system/ShadowRun5.rb +80 -0
- data/lib/bcdice/game_system/SharedFantasia.rb +69 -0
- data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +85 -0
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +506 -0
- data/lib/bcdice/game_system/ShinobiGami.rb +680 -0
- data/lib/bcdice/game_system/ShoujoTenrankai.rb +677 -0
- data/lib/bcdice/game_system/Skynauts.rb +324 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +485 -0
- data/lib/bcdice/game_system/StellarKnights.rb +856 -0
- data/lib/bcdice/game_system/SterileLife.rb +452 -0
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +103 -0
- data/lib/bcdice/game_system/StratoShout.rb +316 -0
- data/lib/bcdice/game_system/StratoShout_Korean.rb +314 -0
- data/lib/bcdice/game_system/Strave.rb +223 -0
- data/lib/bcdice/game_system/SwordWorld.rb +491 -0
- data/lib/bcdice/game_system/SwordWorld2_0.rb +295 -0
- data/lib/bcdice/game_system/SwordWorld2_5.rb +121 -0
- data/lib/bcdice/game_system/TherapieSein.rb +93 -0
- data/lib/bcdice/game_system/TokumeiTenkousei.rb +96 -0
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +122 -0
- data/lib/bcdice/game_system/TokyoNova.rb +19 -0
- data/lib/bcdice/game_system/Torg.rb +364 -0
- data/lib/bcdice/game_system/Torg1_5.rb +139 -0
- data/lib/bcdice/game_system/TorgEternity.rb +414 -0
- data/lib/bcdice/game_system/TrinitySeven.rb +364 -0
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +287 -0
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +527 -0
- data/lib/bcdice/game_system/Utakaze.rb +153 -0
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +132 -0
- data/lib/bcdice/game_system/Villaciel.rb +555 -0
- data/lib/bcdice/game_system/WARPS.rb +33 -0
- data/lib/bcdice/game_system/WaresBlade.rb +34 -0
- data/lib/bcdice/game_system/Warhammer.rb +336 -0
- data/lib/bcdice/game_system/WitchQuest.rb +275 -0
- data/lib/bcdice/game_system/WorldOfDarkness.rb +135 -0
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +440 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +134 -0
- data/lib/bcdice/game_system/ZettaiReido.rb +142 -0
- data/lib/bcdice/game_system/meikyu_kingdom/item_table.rb +383 -0
- data/lib/bcdice/game_system/meikyu_kingdom/kingdom_name_table.rb +89 -0
- data/lib/bcdice/game_system/meikyu_kingdom/landscape_table.rb +196 -0
- data/lib/bcdice/game_system/meikyu_kingdom/name_tables.rb +223 -0
- data/lib/bcdice/game_system/meikyu_kingdom/placename_table.rb +214 -0
- data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +610 -0
- data/lib/bcdice/game_system/meikyu_kingdom/word_table.rb +117 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/item_table.rb +380 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +184 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb +417 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +912 -0
- data/lib/bcdice/game_system/meikyu_kingdom_basic/word_table.rb +121 -0
- data/lib/bcdice/game_system/one_way_heroics/dungeon_table.rb +67 -0
- data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +166 -0
- data/lib/bcdice/game_system/one_way_heroics/tables.rb +668 -0
- data/lib/bcdice/loader.rb +37 -0
- data/lib/bcdice/normalize.rb +38 -0
- data/lib/bcdice/preprocessor.rb +87 -0
- data/lib/bcdice/randomizer.rb +137 -0
- data/lib/bcdice/repl.rb +155 -0
- data/lib/bcdice/user_defined_dice_table.rb +153 -0
- data/lib/bcdice/version.rb +3 -0
- metadata +304 -0
@@ -0,0 +1,316 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class StratoShout < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'StratoShout'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = 'ストラトシャウト'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'すとらとしやうと'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
17
|
+
|
18
|
+
VOT, GUT, BAT, KEYT, DRT: (ボーカル、ギター、ベース、キーボード、ドラム)トラブル表
|
19
|
+
EMO: 感情表
|
20
|
+
AT[1-6]: 特技表(空: ランダム 1: 主義 2: 身体 3: モチーフ 4: エモーション 5: 行動 6: 逆境)
|
21
|
+
SCENE, MACHI, GAKKO, BAND: (汎用、街角、学校、バンド)シーン表 接近シーンで使用
|
22
|
+
TENKAI: シーン展開表 奔走シーン 練習シーンで使用
|
23
|
+
|
24
|
+
[]内は省略可 D66入れ替えあり
|
25
|
+
INFO_MESSAGE_TEXT
|
26
|
+
|
27
|
+
register_prefix([
|
28
|
+
'VOT',
|
29
|
+
'GUT',
|
30
|
+
'BAT',
|
31
|
+
'KEYT',
|
32
|
+
'DRT',
|
33
|
+
'EMO',
|
34
|
+
'AT[1-6]?',
|
35
|
+
'SCENE',
|
36
|
+
'MACHI',
|
37
|
+
'GAKKO',
|
38
|
+
'BAND',
|
39
|
+
'TENKAI'
|
40
|
+
])
|
41
|
+
|
42
|
+
def initialize(command)
|
43
|
+
super(command)
|
44
|
+
|
45
|
+
@sort_add_dice = true
|
46
|
+
@enabled_d66 = true
|
47
|
+
@d66_sort_type = D66SortType::ASC
|
48
|
+
end
|
49
|
+
|
50
|
+
def check_2D6(total, dice_total, _dice_list, cmp_op, target)
|
51
|
+
return '' if target == '?'
|
52
|
+
return '' unless cmp_op == :>=
|
53
|
+
|
54
|
+
if dice_total <= 2
|
55
|
+
" > ファンブル! (ドラマフェイズ: 【ディスコード】+2 / ライブフェイズ: 【コンディション】-2)"
|
56
|
+
elsif dice_total >= 12
|
57
|
+
" > スペシャル! (【コンディション】+2)"
|
58
|
+
elsif total >= target
|
59
|
+
" > 成功"
|
60
|
+
else
|
61
|
+
" > 失敗"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def eval_game_system_specific_command(command)
|
66
|
+
case command.upcase
|
67
|
+
when 'VOT'
|
68
|
+
title = 'ボーカルトラブル表(P167)'
|
69
|
+
table = [
|
70
|
+
"歌詞を忘れてしまった! 何も言葉が出てこない……",
|
71
|
+
"マイクのコードに足を引っ掛けてしまった! 危ない!",
|
72
|
+
"マイクスタンドが倒れてしまった!",
|
73
|
+
"音程がズレているけど、なかなか直せない!",
|
74
|
+
"リズムがズレてきている気がする……修正できない!",
|
75
|
+
"喉が枯れそうだ。まずい、セーブしないと……!"
|
76
|
+
]
|
77
|
+
return textFrom1D6Table(title, table)
|
78
|
+
when 'GUT'
|
79
|
+
title = 'ギタートラブル表(P169)'
|
80
|
+
table = [
|
81
|
+
"やべっ、コードを間違えた! どうにかごまかそう……",
|
82
|
+
"ゲッ、シールド(信号を伝えるコード)が抜けちゃった! 音が出ない!",
|
83
|
+
"ギターの音にノイズが乗ってるような……直ってくれ……!",
|
84
|
+
"あれ? 今曲のどの辺りだっけ……?",
|
85
|
+
"弦が切れてしまった! なんて不吉な……。",
|
86
|
+
"ピックが飛んでった! 指で弾くしかない……!"
|
87
|
+
]
|
88
|
+
return textFrom1D6Table(title, table)
|
89
|
+
when 'BAT'
|
90
|
+
title = 'ベーストラブル表(P171)'
|
91
|
+
table = [
|
92
|
+
"やべっ、コードを間違えた! どうにかごまかそう……",
|
93
|
+
"ゲッ、シールド(信号を伝えるコード)が抜けちゃった! 音が出ない!",
|
94
|
+
"ベースの音にノイズが乗ってるような……直ってくれ……!",
|
95
|
+
"あれ? 今曲のどの辺りだっけ……?",
|
96
|
+
"指先の感覚が麻痺してきた。動かない……!",
|
97
|
+
"テンポが速くなってきているけど、止まらない!"
|
98
|
+
]
|
99
|
+
return textFrom1D6Table(title, table)
|
100
|
+
when 'KEYT'
|
101
|
+
title = 'キーボードトラブル表(P173)'
|
102
|
+
table = [
|
103
|
+
"指先の感覚が麻痺してきた。動かない……!",
|
104
|
+
"音量のスライドに触れてしまった! 爆音が出てしまう!",
|
105
|
+
"あれ? 今曲のどの辺りだっけ……?",
|
106
|
+
"音の出ない鍵がある……故障!?",
|
107
|
+
"音色を間違えた! 元の音色は何番だっけ……!?",
|
108
|
+
"手を置く位置が一つズレてる……! 不協和音だ!"
|
109
|
+
]
|
110
|
+
return textFrom1D6Table(title, table)
|
111
|
+
when 'DRT'
|
112
|
+
title = 'ドラムトラブル表(P175)'
|
113
|
+
table = [
|
114
|
+
"手がこんがらがってきた! 軌道修正しないと……!",
|
115
|
+
"あれ? 今曲のどの辺りだっけ……?",
|
116
|
+
"ハイハットが開かない! ネジが緩んでるのか……!?",
|
117
|
+
"アドリブ入れたけど、次のフレーズが思いつかない……!",
|
118
|
+
"テンポが速くなってきているけど、止まらない!",
|
119
|
+
"スティックが飛んでった! 代わりはどこだっけ……。"
|
120
|
+
]
|
121
|
+
return textFrom1D6Table(title, table)
|
122
|
+
when 'EMO'
|
123
|
+
title = '感情表(P183)'
|
124
|
+
table = [
|
125
|
+
"共感/不信",
|
126
|
+
"友情/嫉妬",
|
127
|
+
"好敵手/苛立ち",
|
128
|
+
"不可欠/敬遠",
|
129
|
+
"尊敬/劣等感",
|
130
|
+
"愛情/負い目"
|
131
|
+
]
|
132
|
+
return textFrom1D6Table(title, table)
|
133
|
+
when /^AT([1-6]?)$/
|
134
|
+
value = Regexp.last_match(1).to_i
|
135
|
+
return getSkillList(value)
|
136
|
+
when "SCENE"
|
137
|
+
title = "シーン表(P199)"
|
138
|
+
table = [
|
139
|
+
"一人の時間。ふと過去の記憶を辿る。そういえば以前、あんなことがあったような……。",
|
140
|
+
"どこからか、言い争っているような声が聞こえてきた。喧嘩だろうか?",
|
141
|
+
"夜の帳が下り、辺りは静寂に包まれている。あいつは今、何をしているだろう。",
|
142
|
+
"仲間と一緒にご飯を食べていると、会話は自然とあの話に……。",
|
143
|
+
"笑い声に満ちた空間。ずっとこんな時間が続けばいいのに。",
|
144
|
+
"日の当たる場所。毎日の忙しさを離れ、穏やかな時間が過ぎていく。",
|
145
|
+
"スマートフォンに着信の通知がついていた。電話? メッセージ? 誰からだろう。",
|
146
|
+
"突然、あなたのもとに来訪者が現れた。何か伝えたいことがあるようだ。",
|
147
|
+
"誰かの忘れ物を見つけた。届けてあげたほうがいいだろうか。",
|
148
|
+
"誰かが噂話をしている。聞くつもりはなくとも、それは勝手に耳に入ってきた。",
|
149
|
+
"なんだか悪寒がする。なにか良くないことが起きているような……。"
|
150
|
+
]
|
151
|
+
return textFrom2D6Table(title, table)
|
152
|
+
when "MACHI"
|
153
|
+
title = "街角シーン表(P199)"
|
154
|
+
table = [
|
155
|
+
"入ったことのない場所に、初めて足を踏み入れた。少し緊張してしまうな。",
|
156
|
+
"アルバイト先。バイト仲間から、意外なことを教えられた。",
|
157
|
+
"会話もままならないような、大音量の音楽。その場にいるだけで気分が高揚する。",
|
158
|
+
"横断歩道で信号を待っていると、見知った人物の姿を見つけた。",
|
159
|
+
"突然の雨に、慌てて足を早める人々。自分も早く帰らなければ。",
|
160
|
+
"何気なく立ち寄った店の中で、知人とばったり。こんなところで何を?",
|
161
|
+
"練習を終えて立ち寄った飲食店で、意外な人物を発見。少し様子を見てみよう。",
|
162
|
+
"あちこちから子どもたちのはしゃぎ声が聞こえてくる。自分にもあんな頃があったんだろうか。",
|
163
|
+
"音のない、静寂の世界。たまには音から離れるのもいいものだ。",
|
164
|
+
"電車の中。つり革に掴まりながら揺られていると、見覚えのある乗客を見つけた。",
|
165
|
+
"カラオケの廊下を歩いていると、どこからか聞き覚えのある声が……?"
|
166
|
+
]
|
167
|
+
return textFrom2D6Table(title, table)
|
168
|
+
when "GAKKO"
|
169
|
+
title = "学校シーン表(P199)"
|
170
|
+
table = [
|
171
|
+
"校舎裏、何かを話す二人組を見かけた。一体何を話しているのだろう……?",
|
172
|
+
"とある部室。部員たちは集中して部活に励んでいるようだが……。",
|
173
|
+
"先生から、ターゲットについて尋ねられた。なにか気になることがあるようだ。",
|
174
|
+
"木々の隙間から朝日差し込む通学路。ある者は忙しそうに、またある者は楽しそうに校舎へ向かっている。",
|
175
|
+
"休み時間。教室のあちこちで飛び交う、他愛のない噂話。その中から、気になる会話が聞こえてきた。",
|
176
|
+
"何もかもが茜色に染まる夕暮れ時。生徒たちは学業から解放され、自由に残り少ない一日を過ごしている。",
|
177
|
+
"移動教室だ。渡り廊下から下を見ると、見覚えのある人物がいた。",
|
178
|
+
"昼休み。生徒は思い思いの場所で昼食を取っている。さて、自分はどこで食べようか。",
|
179
|
+
"先生から頼まれごとを引き受けてしまった。さっさと済ませてしまおう。",
|
180
|
+
"そろそろ学校が閉まる時間だ。明かりのついている教室はもうほとんどない。",
|
181
|
+
"スピーカーから校内放送が聞こえた。誰かを呼んでいるようだが……?"
|
182
|
+
]
|
183
|
+
return textFrom2D6Table(title, table)
|
184
|
+
when "BAND"
|
185
|
+
title = "バンドシーン表(P199)"
|
186
|
+
table = [
|
187
|
+
"音楽専門のニュースサイトをチェック。大小様々な記事が投稿されている。",
|
188
|
+
"意外なところで練習している人物を発見。少し声をかけてみようか。",
|
189
|
+
"ちょっとした壁に衝突。誰かに相談した方がいいかも……。",
|
190
|
+
"ライブを見るためライブハウスへとやってきた。どんなステージになるのだろう。",
|
191
|
+
"打ち合わせに行ったライブハウス。来ているのは自分たちだけじゃないようだ。",
|
192
|
+
"練習が終わった帰り道。あいつも練習が終わった頃だろうか。",
|
193
|
+
"どこからか楽器の音が聞こえてくる。誰か演奏しているのだろうか。",
|
194
|
+
"熱気のこもる部屋を出て、スタジオの待合室でクールダウン。ソファに座っているのは……。",
|
195
|
+
"訪れた楽器店で、見知った人物を発見。何をしに来ているのだろう。",
|
196
|
+
"最新のヒット曲が流れるCDショップの店内。次はどんな曲をやろうか……。",
|
197
|
+
"何気なく鳴らした音から、突発セッションに発展。軽く実力を見せつけてやろう。"
|
198
|
+
]
|
199
|
+
return textFrom2D6Table(title, table)
|
200
|
+
when 'TENKAI'
|
201
|
+
title = 'シーン展開表(P201)'
|
202
|
+
table = [
|
203
|
+
[11, "絶望: ステップを更に大きくする、あるいはシーンプレイヤーを破滅に追い込むような状況に陥ります。【ディスコード】+2点。"],
|
204
|
+
[12, "崩壊: ステップによってシーンプレイヤーの大切なものが崩壊する、あるいは崩壊目前に追い込まれます。【ディスコード】+2点。"],
|
205
|
+
[13, "断絶: シーンプレイヤーはステップによって何かと絶縁状態になります。【ディスコード】+2点。"],
|
206
|
+
[14, "恐怖: ステップに恐怖するような出来事に遭遇します。【ディスコード】+2点。"],
|
207
|
+
[15, "誤解: シーンプレイヤーがステップに関するなんらかの誤解を受けます。【ディスコード】+2点。"],
|
208
|
+
[16, "試練: シーンプレイヤーはステップに関連した試練に直面します。【ディスコード】+2点。"],
|
209
|
+
[22, "悪心: シーンプレイヤーの心に魔が差し、ステップを不合理に解決しようとします。【ディスコード】+1点。"],
|
210
|
+
[23, "束縛: ステップに関わるなんらかに束縛され、自由な行動ができなくなります。【ディスコード】+1点。"],
|
211
|
+
[24, "凶兆: ステップについて、悪いことが起きそうな前触れが訪れます。【ディスコード】+1点。"],
|
212
|
+
[25, "加速: シーンプレイヤーはステップの解決に追われます。【ディスコード】+1点。"],
|
213
|
+
[26, "日常: シーンプレイヤーはのんびりとした日常を送ります。【コンディション】+1点。"],
|
214
|
+
[33, "休息: ステップを忘れられるような、穏やかなひとときを過ごします。【コンディション】+1点。"],
|
215
|
+
[34, "吉兆: ステップについて、いいことが起きそうな前触れが訪れます。【コンディション】+1点。"],
|
216
|
+
[35, "発見: シーンプレイヤーはステップについて何かを発見します。【コンディション】+1点。"],
|
217
|
+
[36, "希望: シーンプレイヤーの中に、ステップに対して前向きに取り組む意思が生まれます。【コンディション】+1点。"],
|
218
|
+
[44, "成長: ステップを通して、シーンプレイヤーが成長します。【コンディション】+2点。"],
|
219
|
+
[45, "愛情: ステップを通して、シーンプレイヤーが愛情に触れます。【コンディション】+2点。"],
|
220
|
+
[46, "朗報: ステップに関する良い知らせが舞い込みます。【コンディション】+2点。"],
|
221
|
+
[55, "好転: ステップが良い方向に向かうような事件が起きます。【コンディション】+3点。"],
|
222
|
+
[56, "直感: ステップを解決させる決定的な閃きを得ます。【コンディション】+3点。"],
|
223
|
+
[66, "奇跡: ステップに関して、奇跡的な幸運が舞い込みます。【コンディション】+3点。"],
|
224
|
+
]
|
225
|
+
return textFromD66Table(title, table)
|
226
|
+
# when 'TEMP'
|
227
|
+
# title = '表(P)'
|
228
|
+
# table = [
|
229
|
+
# [11, ""],
|
230
|
+
# [12, ""],
|
231
|
+
# [13, ""],
|
232
|
+
# [14, ""],
|
233
|
+
# [15, ""],
|
234
|
+
# [16, ""],
|
235
|
+
# [22, ""],
|
236
|
+
# [23, ""],
|
237
|
+
# [24, ""],
|
238
|
+
# [25, ""],
|
239
|
+
# [26, ""],
|
240
|
+
# [33, ""],
|
241
|
+
# [34, ""],
|
242
|
+
# [35, ""],
|
243
|
+
# [36, ""],
|
244
|
+
# [44, ""],
|
245
|
+
# [45, ""],
|
246
|
+
# [46, ""],
|
247
|
+
# [55, ""],
|
248
|
+
# [56, ""],
|
249
|
+
# [66, ""],
|
250
|
+
# ]
|
251
|
+
# return textFromD66Table(title, table)
|
252
|
+
end
|
253
|
+
|
254
|
+
return nil
|
255
|
+
end
|
256
|
+
|
257
|
+
def textFromD66Table(title, table)
|
258
|
+
dice = @randomizer.roll_d66(D66SortType::ASC)
|
259
|
+
number, text, = table.assoc(dice)
|
260
|
+
|
261
|
+
return "#{title} > [#{number}] > #{text}"
|
262
|
+
end
|
263
|
+
|
264
|
+
def textFrom1D6Table(title, table1, table2 = nil)
|
265
|
+
text1, number1 = get_table_by_1d6(table1)
|
266
|
+
|
267
|
+
text = "#{title} > "
|
268
|
+
if table2.nil?
|
269
|
+
text += "[#{number1}] > #{text1}"
|
270
|
+
else
|
271
|
+
text2, number2 = get_table_by_1d6(table2)
|
272
|
+
text += "[#{number1},#{number2}] > #{text1}#{text2}"
|
273
|
+
end
|
274
|
+
|
275
|
+
return text
|
276
|
+
end
|
277
|
+
|
278
|
+
def textFrom2D6Table(title, table)
|
279
|
+
text, number = get_table_by_2d6(table)
|
280
|
+
|
281
|
+
return "#{title} > [#{number}] > #{text}"
|
282
|
+
end
|
283
|
+
|
284
|
+
def getSkillList(field = 0)
|
285
|
+
title = '特技リスト'
|
286
|
+
table = [
|
287
|
+
['主義', ['過去', '恋人', '仲間', '家族', '自分', '今', '理由', '夢', '世界', '幸せ', '未来']],
|
288
|
+
['身体', ['頭', '目', '耳', '口', '胸', '心臓', '血', '背中', '手', 'XXX', '足']],
|
289
|
+
['モチーフ', ['闇', '武器', '魔法', '獣', '町', '歌', '食べ物', '花', '空', '季節', '光']],
|
290
|
+
['エモーション', ['悲しい', '怒り', '不安', '恐怖', '驚き', '高鳴り', '情熱', '確信', '期待', '楽しい', '喜び']],
|
291
|
+
['行動', ['泣く', '忘れる', '消す', '壊す', '叫ぶ', '歌う', '踊る', '走る', '鳴らす', '呼ぶ', '笑う']],
|
292
|
+
['逆境', ['死', '喪失', '暴力', '孤独', '後悔', '実力', '退屈', '権力', '富', '恋愛', '生']],
|
293
|
+
]
|
294
|
+
|
295
|
+
number1 = 0
|
296
|
+
if field == 0
|
297
|
+
table, number1 = get_table_by_1d6(table)
|
298
|
+
else
|
299
|
+
table = table[field - 1]
|
300
|
+
end
|
301
|
+
|
302
|
+
fieldName, table = table
|
303
|
+
skill, number2 = get_table_by_2d6(table)
|
304
|
+
|
305
|
+
text = title
|
306
|
+
if field == 0
|
307
|
+
text += " > [#{number1},#{number2}]"
|
308
|
+
else
|
309
|
+
text += "(#{fieldName}分野) > [#{number2}]"
|
310
|
+
end
|
311
|
+
|
312
|
+
return "#{text} > 《#{skill}/#{fieldName}#{number2}》"
|
313
|
+
end
|
314
|
+
end
|
315
|
+
end
|
316
|
+
end
|
@@ -0,0 +1,314 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class StratoShout_Korean < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'StratoShout:Korean'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = '스트라토 샤우트'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = '国際化:Korean:스트라토 샤우트'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
17
|
+
VOT, GUT, BAT, KEYT, DRT: (보컬, 기타, 베이스, 키보드, 드럼)트러블표
|
18
|
+
EMO: 감정표
|
19
|
+
AT[1-6]: 특기표(공백: 랜덤 1: 주의 2: 신체 3: 모티브 4: 이모션 5: 행동 6: 역경)
|
20
|
+
SCENE, MACHI, GAKKO, BAND: (범용, 거리, 학교, 밴드)장면표. 접근 장면에 사용
|
21
|
+
TENKAI: 장면 전개표. 분주 장면, 연습 장면에 사용
|
22
|
+
[]내는 생략가능 D66는 변동있음
|
23
|
+
INFO_MESSAGE_TEXT
|
24
|
+
|
25
|
+
register_prefix([
|
26
|
+
'VOT',
|
27
|
+
'GUT',
|
28
|
+
'BAT',
|
29
|
+
'KEYT',
|
30
|
+
'DRT',
|
31
|
+
'EMO',
|
32
|
+
'AT[1-6]?',
|
33
|
+
'SCENE',
|
34
|
+
'MACHI',
|
35
|
+
'GAKKO',
|
36
|
+
'BAND',
|
37
|
+
'TENKAI'
|
38
|
+
])
|
39
|
+
|
40
|
+
def initialize(command)
|
41
|
+
super(command)
|
42
|
+
|
43
|
+
@sort_add_dice = true
|
44
|
+
@enabled_d66 = true
|
45
|
+
@d66_sort_type = D66SortType::ASC
|
46
|
+
end
|
47
|
+
|
48
|
+
def check_2D6(total, dice_total, _dice_list, cmp_op, target)
|
49
|
+
return '' if target == '?'
|
50
|
+
return '' unless cmp_op == :>=
|
51
|
+
|
52
|
+
if dice_total <= 2
|
53
|
+
" > 펌블! (드라마페이즈: 【디스코드】+2 / 라이브페이즈: 【컨디션】-2)"
|
54
|
+
elsif dice_total >= 12
|
55
|
+
" > 스페셜! (【컨디션】+2)"
|
56
|
+
elsif total >= target
|
57
|
+
" > 성공"
|
58
|
+
else
|
59
|
+
" > 실패"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def eval_game_system_specific_command(command)
|
64
|
+
case command.upcase
|
65
|
+
when 'VOT'
|
66
|
+
title = '보컬 트러블표(P167)'
|
67
|
+
table = [
|
68
|
+
"가사를 잊어버렸다! 어떤 말도 나오지 않아……",
|
69
|
+
"마이크 코드에 발이 걸려버렸다! 위험해!",
|
70
|
+
"마이크 스탠드가 쓰러져버렸다!",
|
71
|
+
"음정이 어긋나고 있지만, 쉽게 고칠 수가 없어!",
|
72
|
+
"리듬이 어긋나고 있는 것 같다……수정할 수 없어!",
|
73
|
+
"목이 갈라질 것 같다. 위험해, 비축하지 않으면……!"
|
74
|
+
]
|
75
|
+
return textFrom1D6Table(title, table)
|
76
|
+
when 'GUT'
|
77
|
+
title = '기타 트러블표(P169)'
|
78
|
+
table = [
|
79
|
+
"위험해, 코드를 틀렸다! 어떻게든 무마시키자……",
|
80
|
+
"겍, 실드(신호를 전달하는 코드)가 빠져버렸다! 소리가 안 나와!",
|
81
|
+
"기타 소리에 노이즈가 낀 것 같은데……고쳐져라……!",
|
82
|
+
"어라? 지금 곡의 어느 부분이더라……?",
|
83
|
+
"현이 끊겨버렸다! 무슨 불길한…….",
|
84
|
+
"피크가 날아가버렸다! 손가락으로 칠 수밖에 없어……!"
|
85
|
+
]
|
86
|
+
return textFrom1D6Table(title, table)
|
87
|
+
when 'BAT'
|
88
|
+
title = '베이스 트러블표(P171)'
|
89
|
+
table = [
|
90
|
+
"위험해, 코드를 틀렸다! 안 틀린 척 넘어가자……",
|
91
|
+
"겍, 실드(신호를 전달하는 코드)가 뽑혔다! 소리가 안 나와!",
|
92
|
+
"베이스 소리에 노이즈가 섞인 것 같은데……고쳐져라……!",
|
93
|
+
"어라? 지금 어디 치고 있었더라……?",
|
94
|
+
"손 끝의 감각이 둔해지기 시작했다. 안 움직여……!",
|
95
|
+
"템포가 좀 빨라졌지만, 멈출 수 없어!"
|
96
|
+
]
|
97
|
+
return textFrom1D6Table(title, table)
|
98
|
+
when 'KEYT'
|
99
|
+
title = '키보드 트러블표(P173)'
|
100
|
+
table = [
|
101
|
+
"손 끝의 감각이 둔해지기 시작했다. 안 움직여……!",
|
102
|
+
"실수로 볼륨 슬라이드를 건드렸다! 굉음이 나올거야!",
|
103
|
+
"어라? 지금 어디 치고 있었지……?",
|
104
|
+
"음이 안 나는 건반이 있어……고장!?",
|
105
|
+
"음색 잘못 골랐다! 원래 음색 몇 번에 저장해뒀었지……!?",
|
106
|
+
"건반 한 개를 잘못 짚었어……! 불협화음이다!"
|
107
|
+
]
|
108
|
+
return textFrom1D6Table(title, table)
|
109
|
+
when 'DRT'
|
110
|
+
title = '드럼 트러블표(P175)'
|
111
|
+
table = [
|
112
|
+
"팔이 꼬이기 시작했다! 다시 제대로 자릴 잡지 않으면……!",
|
113
|
+
"어라? 지금 어디 치고 있었더라……?",
|
114
|
+
"하이햇이 열리지 않아! 나사가 풀려있는 건가……!?",
|
115
|
+
"애드립을 넣었는데, 다음 프레이즈가 기억나지 않는다……!",
|
116
|
+
"템포가 점점 빨라지고 있지만, 멈출 수 없어!",
|
117
|
+
"스틱이 날아갔다! 여분을 어디다 뒀더라……."
|
118
|
+
]
|
119
|
+
return textFrom1D6Table(title, table)
|
120
|
+
when 'EMO'
|
121
|
+
title = '감정표(P183)'
|
122
|
+
table = [
|
123
|
+
"공감/불신",
|
124
|
+
"우정/질투",
|
125
|
+
"호적수/짜증",
|
126
|
+
"불가결/경원",
|
127
|
+
"존경/열등감",
|
128
|
+
"애정/부담감"
|
129
|
+
]
|
130
|
+
return textFrom1D6Table(title, table)
|
131
|
+
when /^AT([1-6]?)$/
|
132
|
+
value = Regexp.last_match(1).to_i
|
133
|
+
return getSkillList(value)
|
134
|
+
when "SCENE"
|
135
|
+
title = "장면표(P199)"
|
136
|
+
table = [
|
137
|
+
"혼자만의 시간.문득 과거의 기억을 더듬어본다.그러고 보면 예전에 이런 일이 있었던 것 같은데…….",
|
138
|
+
"어디선가 언쟁하는 듯한 소리가 들려온다. 싸우는 걸까?",
|
139
|
+
"밤의 장막이 걷히고, 주변은 정적에 휩싸여 간다. 그녀석은 지금 뭘 하고있을까.",
|
140
|
+
"동료와 함께 식사를 하고있자니, 화제는 자연스레 그 이야기로……",
|
141
|
+
"웃음소리로 가득 찬 공간. 계속 이런 시간이 이어지면 좋을텐데.",
|
142
|
+
"햇볕이 드는 장소. 바쁜 일상에서 잠시 빠져나와 평온한 시간이 흘러간다.",
|
143
|
+
"스마트폰에서 착신 알람이 울린다. 전화? 메시지? 누구한테서 온 걸까.",
|
144
|
+
"갑작스레 누군가가 당신을 찾아왔다. 뭔가 전할 것이 있는 모양이다.",
|
145
|
+
"누군가가 잃어버린 물건을 발견했다. 전해주는 게 좋으려나.",
|
146
|
+
"누군가 소문에 대한 이야기를 하고 있다. 들을 생각이 없어도 그것은 제멋대로 들려온다.",
|
147
|
+
"어쩐지 오한이 인다. 좋지 않은 일이 일어날 것만 같은……"
|
148
|
+
]
|
149
|
+
return textFrom2D6Table(title, table)
|
150
|
+
when "MACHI"
|
151
|
+
title = "거리 장면표(P199)"
|
152
|
+
table = [
|
153
|
+
"들어간 적 없는 곳에 처음으로 발을 내딛었다. 조금 긴장되네.",
|
154
|
+
"아르바이트를 하는 곳. 함께 일하는 동료가 의외의 사실을 알려주었다.",
|
155
|
+
"대화하는 것조차 어려울 정도로 큰 소리의 음악. 그 곳에 있는 것만으로도 기분이 고양된다.",
|
156
|
+
"횡단보도에서 신호를 기다리고 있다보니 낯익은 인물의 모습을 발견했다.",
|
157
|
+
"갑작스럽게 내리는 비에 당황해서 발걸음을 빨리 하는 사람들. 나도 빨리 돌아가야 하는데.",
|
158
|
+
"무심코 들른 가게 안에서 아는 사람과 딱 마주쳤다. 이런 곳에서 뭘 하는 거야?",
|
159
|
+
"연습을 끝내고 들른 음식점에서 의외의 인물을 발견. 잠시 그 모습을 지켜보자.",
|
160
|
+
"여기저기서 어린 아이들의 신이 난 소목소리가 들려온다. 나도 저런 때가 있었을까?",
|
161
|
+
"아무 소리도 없는 정적의 세계. 가끔은 소리를 멀리 하는 것도 좋겠지. ",
|
162
|
+
"전차 안. 손잡이를 붙잡은 채 흔들리고 있다보니, 승객 중에서 낯익은 사람을 발견했다. ",
|
163
|
+
"가라오케의 복도를 걷고 있다보면 어디선가 들어본 적 있는 목소리가……?"
|
164
|
+
]
|
165
|
+
return textFrom2D6Table(title, table)
|
166
|
+
when "GAKKO"
|
167
|
+
title = "학교 장면표(P199)"
|
168
|
+
table = [
|
169
|
+
"교정 뒤에서 무언가에 대해 이야기하는 두 사람을 발견했다. 대체 무슨 얘기를 하고 있는 걸까……",
|
170
|
+
"어느 동아리실, 부원들은 집중한 채 부활동에 힘쓰고 있는 것 같은데……",
|
171
|
+
"선생님한테서 타겟에 대한 질문을 받았다. 뭔가 신경쓰이는 게 있는 모양이다.",
|
172
|
+
"나뭇잎 사이로 아침햇살이 비쳐드는 등굣길. 어떤 사람은 바쁜 듯이, 또 어떤 사람은 즐거운 듯이 학교로 향하고 있다. ",
|
173
|
+
"쉬는 시간. 교실 여기저기에 떠도는 시시한 소문들. 그 중에서 신경쓰이는 화제가 들려왔다.",
|
174
|
+
"모든 것이 노을빛으로 물드는 해질녘. 학생들은 학업에서 해방되어 자유롭게 얼마 남지 않은 하루를 보내고 있다.",
|
175
|
+
"이동수업용 교실로 향하는 구름다리에서 아래를 내려다보면, 낯익은 인물이 있다.",
|
176
|
+
"점심 시간. 학생들은 제각각의 장소에서 점심 식사를 하고 있다. 자 그럼, 난 어디서 먹을까.",
|
177
|
+
"선생님에게서 심부름을 부탁받아 떠맡고 말았다. 얼른 해치워버리자. ",
|
178
|
+
"슬슬 학교의 문이 닫힐 시간이다. 불이 들어와 있는 교실은 이제 거의 없다",
|
179
|
+
"스피커에서 교내방송이 들려온다. 누군가를 부르고 있는 것 같은데……?"
|
180
|
+
]
|
181
|
+
return textFrom2D6Table(title, table)
|
182
|
+
when "BAND"
|
183
|
+
title = "밴드 장면표(P199)"
|
184
|
+
table = [
|
185
|
+
"음악 전문 인터넷 뉴스 사이트를 체크. 크고 작은 기사가 투고되어 있다.",
|
186
|
+
"의외의 장소에서 연습하고 있는 인물을 발견. 살짝 말을 걸어볼까.",
|
187
|
+
"사소한 벽에 부딪쳤다. 누군가한테 상담하는 게 좋을지도……",
|
188
|
+
"라이브를 보기 위해 라이브 하우스에 찾아왔다. 어떤 스테이지가 되려나.",
|
189
|
+
"멤버들과 만나기로 한 라이브하우스. 도착해 있는 건 우리들만이 아닌 것 같다",
|
190
|
+
"연습이 끝난 후 돌아가는 길. 그녀석도 지금쯤 연습이 끝났으려나.",
|
191
|
+
"어디선가 악기 소리가 들려온다. 누가 연주하고 있는 걸까.",
|
192
|
+
"열기로 가득한 방에서 나와 스튜디오의 대합실에서 쿨 다운. 소파에 앉아있는 건……",
|
193
|
+
"악기점에 방문했다가 낯익은 인물을 발견. 뭘 하러 온 걸까.",
|
194
|
+
"최신 히트곡이 흐르고 있는 CD가게 안. 다음 곡은 어떤 걸로 할까……",
|
195
|
+
"무심코 울린 소리에서 즉흥 세션으로 발전. 가볍게 실력을 보여줄까."
|
196
|
+
]
|
197
|
+
return textFrom2D6Table(title, table)
|
198
|
+
when 'TENKAI'
|
199
|
+
title = '장면 전개표(P201)'
|
200
|
+
table = [
|
201
|
+
[11, "절망 : 절차를 역으로 크게 하거나 혹은, 장면 플레이어를 파멸로 몰아넣는 상황에 빠져듭니다.【디스코드】+2점"],
|
202
|
+
[12, "붕괴 : 절차에 의해 장면 플레이어의 소중한 것이 붕괴되거나 혹은, 붕괴 직전에 몰립니다.【디스코드】+2점"],
|
203
|
+
[13, "단절 : 장면 플레이어는 절차에 의해 무언가와 절연 상태가 됩니다.【디스코드】+2점"],
|
204
|
+
[14, "공포 : 절차에 공포를 느낄만한 일과 조우합니다.【디스코드】+2점"],
|
205
|
+
[15, "오해 : 장면 플레이어가 절차에 관련된 어떤 오해를 받습니다.【디스코드】+2점"],
|
206
|
+
[16, "시련 : 장면 플레이어는 절차에 관련된 시련에 직면합니다.【디스코드】+2점"],
|
207
|
+
[22, "악의 : 장면 플레이어의 마음에 순간적으로 나쁜 마음이 깃들어, 절차를 불합리하게 해결하려 합니다.【디스코드】+1점"],
|
208
|
+
[23, "속박 : 절차에 관련된 무언가에 속박되어, 자유로운 행동이 불가능해집니다.【디스코드】+1점"],
|
209
|
+
[24, "흉조 : 절차에 대해 나쁜 일이 일어날 것만 같은 조짐이 찾아옵니다.【디스코드】+1점"],
|
210
|
+
[25, "가속 : 장면 플레이어는 절차의 해결에 쫓깁니다.【디스코드】+1점"],
|
211
|
+
[26, "일상 : 장면 플레이어는 한가로운 일상을 보냅니다.【컨디션】+1점"],
|
212
|
+
[33, "휴식 : 절차를 잊어버릴만큼 평온한 한 때를 보냅니다.【컨디션】+1점"],
|
213
|
+
[34, "길조 : 절차에 대해 좋은 일이 일어날 것 같은 조짐이 찾아옵니다.【컨디션】+1점"],
|
214
|
+
[35, "발견 : 장면 플레이어는 절차에 대한 무언가를 발견합니다.【컨디션】+1점"],
|
215
|
+
[36, "희망 : 장면 플레이어의 마음 속에 절차에 대해 긍정적으로 맞설 의사가 생겨납니다.【컨디션】+1점"],
|
216
|
+
[44, "성장 : 절차를 통해 장면 플레이어가 성장합니다.【컨디션】+2점"],
|
217
|
+
[45, "애정 : 절차를 통해 장면 플레이어가 애정에 닿게 됩니다.【컨디션】+2점"],
|
218
|
+
[46, "낭보 : 절차에 대한 좋은 소식이 날아들어옵니다.【컨디션】+2점"],
|
219
|
+
[55, "호전 : 절차가 좋은 방향으로 향할 것 같은 사건이 일어납니다.【컨디션】+3점"],
|
220
|
+
[56, "직감 : 절차를 해결할 수 있는 결정적인 번뜩임을 얻습니다.【컨디션】+3점"],
|
221
|
+
[66, "기적 : 절차에 관한 기적적인 행운이 찾아옵니다.【컨디션】+3점"],
|
222
|
+
]
|
223
|
+
return textFromD66Table(title, table)
|
224
|
+
# when 'TEMP'
|
225
|
+
# title = '表(P)'
|
226
|
+
# table = [
|
227
|
+
# [11, ""],
|
228
|
+
# [12, ""],
|
229
|
+
# [13, ""],
|
230
|
+
# [14, ""],
|
231
|
+
# [15, ""],
|
232
|
+
# [16, ""],
|
233
|
+
# [22, ""],
|
234
|
+
# [23, ""],
|
235
|
+
# [24, ""],
|
236
|
+
# [25, ""],
|
237
|
+
# [26, ""],
|
238
|
+
# [33, ""],
|
239
|
+
# [34, ""],
|
240
|
+
# [35, ""],
|
241
|
+
# [36, ""],
|
242
|
+
# [44, ""],
|
243
|
+
# [45, ""],
|
244
|
+
# [46, ""],
|
245
|
+
# [55, ""],
|
246
|
+
# [56, ""],
|
247
|
+
# [66, ""],
|
248
|
+
# ]
|
249
|
+
# return textFromD66Table(title, table)
|
250
|
+
end
|
251
|
+
|
252
|
+
return nil
|
253
|
+
end
|
254
|
+
|
255
|
+
def textFromD66Table(title, table)
|
256
|
+
dice = @randomizer.roll_d66(D66SortType::ASC)
|
257
|
+
number, text, = table.assoc(dice)
|
258
|
+
|
259
|
+
return "#{title} > [#{number}] > #{text}"
|
260
|
+
end
|
261
|
+
|
262
|
+
def textFrom1D6Table(title, table1, table2 = nil)
|
263
|
+
text1, number1 = get_table_by_1d6(table1)
|
264
|
+
|
265
|
+
text = "#{title} > "
|
266
|
+
if table2.nil?
|
267
|
+
text += "[#{number1}] > #{text1}"
|
268
|
+
else
|
269
|
+
text2, number2 = get_table_by_1d6(table2)
|
270
|
+
text += "[#{number1},#{number2}] > #{text1}#{text2}"
|
271
|
+
end
|
272
|
+
|
273
|
+
return text
|
274
|
+
end
|
275
|
+
|
276
|
+
def textFrom2D6Table(title, table)
|
277
|
+
text, number = get_table_by_2d6(table)
|
278
|
+
|
279
|
+
return "#{title} > [#{number}] > #{text}"
|
280
|
+
end
|
281
|
+
|
282
|
+
def getSkillList(field = 0)
|
283
|
+
title = '특기 리스트'
|
284
|
+
table = [
|
285
|
+
['주의', ['과거', '연인', '동료', '가족', '자신', '지금', '이유', '꿈', '세계', '행복', '미래']],
|
286
|
+
['신체', ['머리', '눈', '귀', '입', '가슴', '심장', '피', '등', '손', 'XXX', '발']],
|
287
|
+
['모티브', ['어둠', '무기', '짐승', '기계', '거리', '노래', '창', '꽃', '하늘', '계절', '빛']],
|
288
|
+
['정서', ['슬픔', '분노', '불안', '공포', '놀라움', '설렘', '정열', '확신', '기대', '즐거움', '기쁨']],
|
289
|
+
['행동', ['우는', '잊는', '지우는', '부수는', '외치는', '노래하는', '춤추는', '달리는', '만나는', '부르는', '웃는']],
|
290
|
+
['역경', ['죽음', '상실', '폭력', '고독', '후회', '실력', '싫증', '본성', '부', '연애', '삶']],
|
291
|
+
]
|
292
|
+
|
293
|
+
number1 = 0
|
294
|
+
if field == 0
|
295
|
+
table, number1 = get_table_by_1d6(table)
|
296
|
+
else
|
297
|
+
table = table[field - 1]
|
298
|
+
end
|
299
|
+
|
300
|
+
fieldName, table = table
|
301
|
+
skill, number2 = get_table_by_2d6(table)
|
302
|
+
|
303
|
+
text = title
|
304
|
+
if field == 0
|
305
|
+
text += " > [#{number1},#{number2}]"
|
306
|
+
else
|
307
|
+
text += "(#{fieldName}분야) > [#{number2}]"
|
308
|
+
end
|
309
|
+
|
310
|
+
return "#{text} > 《#{skill}/#{fieldName}#{number2}》"
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|
314
|
+
end
|