bcdice 3.0.0.pre.alpha.1 → 3.0.0.pre.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -1
- data/.rubocop.yml +12 -0
- data/.rubocop_todo.yml +1 -0
- data/CHANGELOG.md +34 -0
- data/Gemfile +6 -3
- data/Rakefile +52 -18
- data/bcdice.gemspec +2 -0
- data/i18n/Amadeus/ja_jp.yml +386 -0
- data/i18n/Amadeus/ko_kr.yml +148 -0
- data/i18n/Cthulhu/ja_jp.yml +11 -0
- data/i18n/Cthulhu/ko_kr.yml +11 -0
- data/i18n/Cthulhu/zh_hant.yml +11 -0
- data/i18n/DetatokoSaga/ja_jp.yml +74 -0
- data/i18n/DetatokoSaga/ko_kr.yml +74 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +53 -0
- data/i18n/Dracurouge/ja_jp.yml +1374 -0
- data/i18n/Dracurouge/ko_kr.yml +295 -0
- data/i18n/Fiasco/ja_jp.yml +10 -0
- data/i18n/Fiasco/ko_kr.yml +10 -0
- data/i18n/FutariSousa/ja_jp.yml +720 -0
- data/i18n/FutariSousa/ko_kr.yml +746 -0
- data/i18n/Insane/ja_jp.yml +454 -0
- data/i18n/Insane/ko_kr.yml +502 -0
- data/i18n/Kamigakari/ja_jp.yml +276 -0
- data/i18n/Kamigakari/ko_kr.yml +204 -0
- data/i18n/KillDeathBusiness/ja_jp.yml +1092 -0
- data/i18n/KillDeathBusiness/ko_kr.yml +1062 -0
- data/i18n/LogHorizon/ja_jp.yml +3082 -0
- data/i18n/LogHorizon/ko_kr.yml +923 -0
- data/i18n/MagicaLogia/ja_jp.yml +564 -0
- data/i18n/MonotoneMuseum/ja_jp.yml +525 -0
- data/i18n/MonotoneMuseum/ko_kr.yml +89 -0
- data/i18n/Nechronica/ja_jp.yml +57 -0
- data/i18n/Nechronica/ko_kr.yml +14 -0
- data/i18n/StratoShout/ja_jp.yml +160 -0
- data/i18n/StratoShout/ko_kr.yml +160 -0
- data/i18n/ja_jp.yml +5 -0
- data/i18n/ko_kr.yml +7 -0
- data/i18n/zh_hant.yml +3 -0
- data/lib/bcdice/arithmetic/node.rb +154 -0
- data/lib/bcdice/base.rb +87 -101
- data/lib/bcdice/common_command.rb +2 -0
- data/lib/bcdice/common_command/add_dice.rb +5 -41
- data/lib/bcdice/common_command/add_dice/node.rb +92 -16
- data/lib/bcdice/common_command/add_dice/parser.rb +374 -274
- data/lib/bcdice/common_command/add_dice/parser.y +153 -0
- data/lib/bcdice/common_command/add_dice/randomizer.rb +25 -33
- data/lib/bcdice/common_command/barabara_dice.rb +6 -47
- data/lib/bcdice/common_command/barabara_dice/node.rb +84 -0
- data/lib/bcdice/common_command/barabara_dice/parser.rb +336 -0
- data/lib/bcdice/common_command/barabara_dice/parser.y +107 -0
- data/lib/bcdice/common_command/calc.rb +7 -30
- data/lib/bcdice/common_command/calc/node.rb +30 -0
- data/lib/bcdice/common_command/calc/parser.rb +271 -0
- data/lib/bcdice/common_command/calc/parser.y +79 -0
- data/lib/bcdice/common_command/choice.rb +137 -19
- data/lib/bcdice/common_command/d66_dice.rb +48 -34
- data/lib/bcdice/common_command/lexer.rb +46 -0
- data/lib/bcdice/common_command/repeat.rb +102 -0
- data/lib/bcdice/common_command/reroll_dice.rb +8 -158
- data/lib/bcdice/common_command/reroll_dice/node.rb +198 -0
- data/lib/bcdice/common_command/reroll_dice/parser.rb +421 -0
- data/lib/bcdice/common_command/reroll_dice/parser.y +158 -0
- data/lib/bcdice/common_command/upper_dice.rb +10 -129
- data/lib/bcdice/common_command/upper_dice/node.rb +181 -0
- data/lib/bcdice/common_command/upper_dice/parser.rb +412 -0
- data/lib/bcdice/common_command/upper_dice/parser.y +143 -0
- data/lib/bcdice/common_command/version.rb +9 -17
- data/lib/bcdice/deprecated/checker.rb +78 -0
- data/lib/bcdice/dice_table/d66_grid_table.rb +8 -0
- data/lib/bcdice/dice_table/d66_table.rb +10 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +75 -17
- data/lib/bcdice/dice_table/sai_fic_skill_table/category.rb +25 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table/skill.rb +23 -0
- data/lib/bcdice/dice_table/table.rb +8 -0
- data/lib/bcdice/game_system.rb +7 -1
- data/lib/bcdice/game_system/AFF2e.rb +1 -1
- data/lib/bcdice/game_system/AceKillerGene.rb +2 -2
- data/lib/bcdice/game_system/Airgetlamh.rb +3 -3
- data/lib/bcdice/game_system/Alsetto.rb +1 -1
- data/lib/bcdice/game_system/Alshard.rb +1 -1
- data/lib/bcdice/game_system/AlterRaise.rb +2 -2
- data/lib/bcdice/game_system/Amadeus.rb +46 -507
- data/lib/bcdice/game_system/Amadeus_Korean.rb +12 -456
- data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
- data/lib/bcdice/game_system/Arianrhod.rb +0 -1
- data/lib/bcdice/game_system/ArsMagica.rb +1 -1
- data/lib/bcdice/game_system/Avandner.rb +1 -1
- data/lib/bcdice/game_system/BBN.rb +1 -1
- data/lib/bcdice/game_system/BadLife.rb +1 -1
- data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
- data/lib/bcdice/game_system/BeastBindTrinity.rb +1 -2
- data/lib/bcdice/game_system/BeginningIdol.rb +2 -3
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2 -3
- data/lib/bcdice/game_system/BladeOfArcana.rb +2 -2
- data/lib/bcdice/game_system/BlindMythos.rb +1 -1
- data/lib/bcdice/game_system/BloodCrusade.rb +0 -1
- data/lib/bcdice/game_system/BloodMoon.rb +0 -1
- data/lib/bcdice/game_system/CardRanker.rb +1 -2
- data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
- data/lib/bcdice/game_system/Chill.rb +1 -1
- data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
- data/lib/bcdice/game_system/ColossalHunter.rb +1 -2
- data/lib/bcdice/game_system/Comes.rb +50 -0
- data/lib/bcdice/game_system/CrashWorld.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu.rb +94 -97
- data/lib/bcdice/game_system/Cthulhu7th.rb +108 -67
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
- data/lib/bcdice/game_system/CthulhuTech.rb +8 -14
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +7 -190
- data/lib/bcdice/game_system/Cthulhu_Korean.rb +5 -186
- data/lib/bcdice/game_system/DarkBlaze.rb +9 -5
- data/lib/bcdice/game_system/DarkDaysDrive.rb +17 -15
- data/lib/bcdice/game_system/DarkSouls.rb +1 -1
- data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
- data/lib/bcdice/game_system/DemonParasite.rb +1 -2
- data/lib/bcdice/game_system/DetatokoSaga.rb +48 -149
- data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +6 -274
- data/lib/bcdice/game_system/DiceOfTheDead.rb +9 -6
- data/lib/bcdice/game_system/DoubleCross.rb +102 -81
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +13 -330
- data/lib/bcdice/game_system/Dracurouge.rb +376 -1678
- data/lib/bcdice/game_system/Dracurouge_Korean.rb +16 -271
- data/lib/bcdice/game_system/EarthDawn.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
- data/lib/bcdice/game_system/Elysion.rb +3 -4
- data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
- data/lib/bcdice/game_system/Emoklore.rb +131 -0
- data/lib/bcdice/game_system/EndBreaker.rb +1 -2
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
- data/lib/bcdice/game_system/Fiasco.rb +87 -70
- data/lib/bcdice/game_system/Fiasco_Korean.rb +7 -95
- data/lib/bcdice/game_system/FilledWith.rb +462 -566
- data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
- data/lib/bcdice/game_system/FutariSousa.rb +103 -938
- data/lib/bcdice/game_system/FutariSousa_Korean.rb +7 -948
- data/lib/bcdice/game_system/{Gurps.rb → GURPS.rb} +184 -217
- data/lib/bcdice/game_system/Garako.rb +131 -39
- data/lib/bcdice/game_system/GardenOrder.rb +2 -2
- data/lib/bcdice/game_system/GehennaAn.rb +1 -1
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
- data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
- data/lib/bcdice/game_system/GoldenSkyStories.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +1 -1
- data/lib/bcdice/game_system/GranCrest.rb +2 -3
- data/lib/bcdice/game_system/GundogRevised.rb +1 -1
- data/lib/bcdice/game_system/GundogZero.rb +1 -1
- data/lib/bcdice/game_system/GurpsFW.rb +2 -3
- data/lib/bcdice/game_system/HarnMaster.rb +2 -2
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -2
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/HuntersMoon.rb +1 -2
- data/lib/bcdice/game_system/Illusio.rb +2 -2
- data/lib/bcdice/game_system/Insane.rb +90 -717
- data/lib/bcdice/game_system/Insane_Korean.rb +7 -719
- data/lib/bcdice/game_system/Kamigakari.rb +47 -242
- data/lib/bcdice/game_system/Kamigakari_Korean.rb +6 -394
- data/lib/bcdice/game_system/KanColle.rb +3 -3
- data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
- data/lib/bcdice/game_system/KillDeathBusiness.rb +162 -1144
- data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +6 -1459
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/LiveraDoll.rb +2 -2
- data/lib/bcdice/game_system/LogHorizon.rb +350 -3379
- data/lib/bcdice/game_system/LogHorizon_Korean.rb +55 -1357
- data/lib/bcdice/game_system/LostRecord.rb +0 -1
- data/lib/bcdice/game_system/LostRoyal.rb +1 -2
- data/lib/bcdice/game_system/MagicaLogia.rb +158 -1044
- data/lib/bcdice/game_system/MeikyuDays.rb +1 -2
- data/lib/bcdice/game_system/MeikyuKingdom.rb +4 -4
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -5
- data/lib/bcdice/game_system/MetalHead.rb +1 -1
- data/lib/bcdice/game_system/MetalHeadExtream.rb +2 -2
- data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum.rb +38 -239
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +10 -270
- data/lib/bcdice/game_system/NSSQ.rb +159 -0
- data/lib/bcdice/game_system/Nechronica.rb +34 -73
- data/lib/bcdice/game_system/Nechronica_Korean.rb +11 -128
- data/lib/bcdice/game_system/NeverCloud.rb +1 -1
- data/lib/bcdice/game_system/NightWizard.rb +1 -1
- data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
- data/lib/bcdice/game_system/NinjaSlayer.rb +12 -11
- data/lib/bcdice/game_system/NjslyrBattle.rb +1 -1
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -2
- data/lib/bcdice/game_system/OracleEngine.rb +1 -1
- data/lib/bcdice/game_system/OrgaRain.rb +2 -2
- data/lib/bcdice/game_system/Paradiso.rb +1 -1
- data/lib/bcdice/game_system/Paranoia.rb +1 -1
- data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
- data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
- data/lib/bcdice/game_system/Peekaboo.rb +22 -122
- data/lib/bcdice/game_system/Postman.rb +2 -2
- data/lib/bcdice/game_system/PulpCthulhu.rb +3 -3
- data/lib/bcdice/game_system/Raisondetre.rb +2 -2
- data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
- data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
- data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
- data/lib/bcdice/game_system/RuinBreakers.rb +296 -0
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/SRS.rb +1 -2
- data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
- data/lib/bcdice/game_system/Satasupe.rb +1 -2
- data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
- data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
- data/lib/bcdice/game_system/ShadowRun5.rb +2 -2
- data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
- data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +1 -1
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
- data/lib/bcdice/game_system/ShinobiGami.rb +1 -2
- data/lib/bcdice/game_system/ShoujoTenrankai.rb +2 -2
- data/lib/bcdice/game_system/Skynauts.rb +1 -1
- data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
- data/lib/bcdice/game_system/StellarKnights.rb +1 -2
- data/lib/bcdice/game_system/SterileLife.rb +1 -1
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +1 -2
- data/lib/bcdice/game_system/StratoShout.rb +44 -247
- data/lib/bcdice/game_system/StratoShout_Korean.rb +6 -282
- data/lib/bcdice/game_system/Strave.rb +2 -2
- data/lib/bcdice/game_system/SwordWorld.rb +8 -9
- data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -3
- data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -3
- data/lib/bcdice/game_system/TherapieSein.rb +1 -1
- data/lib/bcdice/game_system/TokumeiTenkousei.rb +1 -1
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +2 -2
- data/lib/bcdice/game_system/Torg.rb +2 -2
- data/lib/bcdice/game_system/Torg1_5.rb +1 -1
- data/lib/bcdice/game_system/TorgEternity.rb +1 -1
- data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -2
- data/lib/bcdice/game_system/UnsungDuet.rb +139 -0
- data/lib/bcdice/game_system/Utakaze.rb +1 -1
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
- data/lib/bcdice/game_system/Villaciel.rb +1 -2
- data/lib/bcdice/game_system/Warhammer.rb +1 -1
- data/lib/bcdice/game_system/Warhammer4.rb +329 -0
- data/lib/bcdice/game_system/WitchQuest.rb +1 -1
- data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +15 -15
- data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
- data/lib/bcdice/game_system/filled_with/cook_tables.rb +119 -0
- data/lib/bcdice/game_system/filled_with/lot_tables.rb +155 -0
- data/lib/bcdice/loader.rb +6 -8
- data/lib/bcdice/preprocessor.rb +15 -40
- data/lib/bcdice/repl.rb +1 -1
- data/lib/bcdice/result.rb +83 -0
- data/lib/bcdice/translate.rb +11 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +80 -4
@@ -32,7 +32,7 @@ module BCDice
|
|
32
32
|
AVO9@8[縦1,横4],[縦2,横6],[縦3,横8] AVO@2[縦6,横4],[縦2,横6]
|
33
33
|
MESSAGETEXT
|
34
34
|
|
35
|
-
register_prefix(
|
35
|
+
register_prefix('D.*', '2[Dd]6<=.*', 'SN.*', 'NV.*', 'AVO.*', 'BOM.*')
|
36
36
|
|
37
37
|
def initialize(command)
|
38
38
|
super(command)
|
@@ -67,7 +67,6 @@ module BCDice
|
|
67
67
|
super(command)
|
68
68
|
|
69
69
|
@sort_barabara_dice = true # バラバラロール(Bコマンド)でソート有
|
70
|
-
@enabled_d66 = true
|
71
70
|
@d66_sort_type = D66SortType::NO_SORT
|
72
71
|
end
|
73
72
|
|
@@ -850,7 +849,7 @@ module BCDice
|
|
850
849
|
),
|
851
850
|
}.freeze
|
852
851
|
|
853
|
-
register_prefix(
|
852
|
+
register_prefix('\d+SK\d?(,\d>\d)*', 'STB2', 'ALLS', 'PET', 'FT\d*', TABLES.keys)
|
854
853
|
end
|
855
854
|
end
|
856
855
|
end
|
@@ -37,7 +37,7 @@ module BCDice
|
|
37
37
|
・超未来の宇宙船内 INT
|
38
38
|
MESSAGETEXT
|
39
39
|
|
40
|
-
register_prefix(
|
40
|
+
register_prefix('(\d+)*DA.*\[(\d+),(\d+)(,(\d+))?\]', 'VPFT', 'VNFT', 'VNRT', 'AAFT', 'AST', 'RNST', 'RET', 'TRST', 'TRAT', 'TRMT', 'TROT', 'TET', 'ENT', 'CUT', 'NAT', 'INT') # '(\d+)*DA.*\[.*\]'
|
41
41
|
|
42
42
|
def eval_game_system_specific_command(command) # ダイスロールコマンド
|
43
43
|
# 通常判定部分をgetJudgeResultコマンドに切り分け
|
@@ -21,13 +21,12 @@ module BCDice
|
|
21
21
|
・D66ダイスあり
|
22
22
|
INFO_MESSAGE_TEXT
|
23
23
|
|
24
|
-
register_prefix(
|
24
|
+
register_prefix('\d+SR.*')
|
25
25
|
|
26
26
|
def initialize(command)
|
27
27
|
super(command)
|
28
28
|
|
29
29
|
@sort_add_dice = true
|
30
|
-
@enabled_d66 = true
|
31
30
|
@d66_sort_type = D66SortType::NO_SORT
|
32
31
|
@round_type = RoundType::FLOOR
|
33
32
|
end
|
@@ -24,26 +24,12 @@ module BCDice
|
|
24
24
|
[]内は省略可 D66入れ替えあり
|
25
25
|
INFO_MESSAGE_TEXT
|
26
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
|
-
])
|
27
|
+
register_prefix('AT[1-6]?')
|
41
28
|
|
42
29
|
def initialize(command)
|
43
30
|
super(command)
|
44
31
|
|
45
32
|
@sort_add_dice = true
|
46
|
-
@enabled_d66 = true
|
47
33
|
@d66_sort_type = D66SortType::ASC
|
48
34
|
end
|
49
35
|
|
@@ -51,246 +37,32 @@ module BCDice
|
|
51
37
|
return '' if target == '?'
|
52
38
|
return '' unless cmp_op == :>=
|
53
39
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
40
|
+
result =
|
41
|
+
if dice_total <= 2
|
42
|
+
translate("StratoShout.fumble")
|
43
|
+
elsif dice_total >= 12
|
44
|
+
translate("StratoShout.critical")
|
45
|
+
elsif total >= target
|
46
|
+
translate("success")
|
47
|
+
else
|
48
|
+
translate("failure")
|
49
|
+
end
|
50
|
+
|
51
|
+
return " > #{result}"
|
63
52
|
end
|
64
53
|
|
65
54
|
def eval_game_system_specific_command(command)
|
66
|
-
|
67
|
-
|
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
|
55
|
+
if (m = /^AT([1-6]?)$/.match(command))
|
56
|
+
value = m[1].to_i
|
135
57
|
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
58
|
end
|
253
59
|
|
254
|
-
|
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}"
|
60
|
+
roll_tables(command, self.class::TABLES)
|
282
61
|
end
|
283
62
|
|
284
63
|
def getSkillList(field = 0)
|
285
|
-
title =
|
286
|
-
table =
|
287
|
-
['主義', ['過去', '恋人', '仲間', '家族', '自分', '今', '理由', '夢', '世界', '幸せ', '未来']],
|
288
|
-
['身体', ['頭', '目', '耳', '口', '胸', '心臓', '血', '背中', '手', 'XXX', '足']],
|
289
|
-
['モチーフ', ['闇', '武器', '魔法', '獣', '町', '歌', '食べ物', '花', '空', '季節', '光']],
|
290
|
-
['エモーション', ['悲しい', '怒り', '不安', '恐怖', '驚き', '高鳴り', '情熱', '確信', '期待', '楽しい', '喜び']],
|
291
|
-
['行動', ['泣く', '忘れる', '消す', '壊す', '叫ぶ', '歌う', '踊る', '走る', '鳴らす', '呼ぶ', '笑う']],
|
292
|
-
['逆境', ['死', '喪失', '暴力', '孤独', '後悔', '実力', '退屈', '権力', '富', '恋愛', '生']],
|
293
|
-
]
|
64
|
+
title = translate("StratoShout.AT.name")
|
65
|
+
table = translate("StratoShout.AT.table")
|
294
66
|
|
295
67
|
number1 = 0
|
296
68
|
if field == 0
|
@@ -306,11 +78,36 @@ module BCDice
|
|
306
78
|
if field == 0
|
307
79
|
text += " > [#{number1},#{number2}]"
|
308
80
|
else
|
309
|
-
|
81
|
+
skill_class = translate("StratoShout.AT.skill_class", name: fieldName)
|
82
|
+
text += "#{skill_class} > [#{number2}]"
|
310
83
|
end
|
311
84
|
|
312
85
|
return "#{text} > 《#{skill}/#{fieldName}#{number2}》"
|
313
86
|
end
|
87
|
+
|
88
|
+
class << self
|
89
|
+
private
|
90
|
+
|
91
|
+
def translate_tables(locale)
|
92
|
+
{
|
93
|
+
"VOT" => DiceTable::Table.from_i18n("StratoShout.table.VOT", locale),
|
94
|
+
"GUT" => DiceTable::Table.from_i18n("StratoShout.table.GUT", locale),
|
95
|
+
"BAT" => DiceTable::Table.from_i18n("StratoShout.table.BAT", locale),
|
96
|
+
"KEYT" => DiceTable::Table.from_i18n("StratoShout.table.KEYT", locale),
|
97
|
+
"DRT" => DiceTable::Table.from_i18n("StratoShout.table.DRT", locale),
|
98
|
+
"EMO" => DiceTable::Table.from_i18n("StratoShout.table.EMO", locale),
|
99
|
+
"SCENE" => DiceTable::Table.from_i18n("StratoShout.table.SCENE", locale),
|
100
|
+
"MACHI" => DiceTable::Table.from_i18n("StratoShout.table.MACHI", locale),
|
101
|
+
"GAKKO" => DiceTable::Table.from_i18n("StratoShout.table.GAKKO", locale),
|
102
|
+
"BAND" => DiceTable::Table.from_i18n("StratoShout.table.BAND", locale),
|
103
|
+
"TENKAI" => DiceTable::D66Table.from_i18n("StratoShout.table.TENKAI", locale),
|
104
|
+
}
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
TABLES = translate_tables(:ja_jp)
|
109
|
+
|
110
|
+
register_prefix(TABLES.keys)
|
314
111
|
end
|
315
112
|
end
|
316
113
|
end
|
@@ -1,8 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "bcdice/game_system/StratoShout"
|
4
|
+
|
3
5
|
module BCDice
|
4
6
|
module GameSystem
|
5
|
-
class StratoShout_Korean <
|
7
|
+
class StratoShout_Korean < StratoShout
|
6
8
|
# ゲームシステムの識別子
|
7
9
|
ID = 'StratoShout:Korean'
|
8
10
|
|
@@ -22,293 +24,15 @@ module BCDice
|
|
22
24
|
[]내는 생략가능 D66는 변동있음
|
23
25
|
INFO_MESSAGE_TEXT
|
24
26
|
|
25
|
-
|
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
|
-
])
|
27
|
+
register_prefix_from_super_class()
|
39
28
|
|
40
29
|
def initialize(command)
|
41
30
|
super(command)
|
42
31
|
|
43
|
-
@
|
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}"
|
32
|
+
@locale = :ko_kr
|
280
33
|
end
|
281
34
|
|
282
|
-
|
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
|
35
|
+
TABLES = translate_tables(:ko_kr).freeze
|
312
36
|
end
|
313
37
|
end
|
314
38
|
end
|