bcdice 3.0.0.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,135 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class WorldOfDarkness < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'WorldOfDarkness'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = 'ワールド・オブ・ダークネス'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'わあるとおふたあくねす'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
17
|
+
・判定コマンド(xSTn+y or xSTSn+y or xSTAn+y)
|
18
|
+
(ダイス個数)ST(難易度)+(自動成功)
|
19
|
+
(ダイス個数)STS(難易度)+(自動成功) ※出目10で振り足し
|
20
|
+
(ダイス個数)STA(難易度)+(自動成功) ※出目10は2成功 [20thルール]
|
21
|
+
|
22
|
+
難易度=省略時6
|
23
|
+
自動成功=省略時0
|
24
|
+
INFO_MESSAGE_TEXT
|
25
|
+
|
26
|
+
register_prefix(['\d+ST.*'])
|
27
|
+
|
28
|
+
def initialize(command)
|
29
|
+
super(command)
|
30
|
+
@successDice = 0
|
31
|
+
@botchDice = 0
|
32
|
+
@rerollDice = 0
|
33
|
+
end
|
34
|
+
|
35
|
+
def eval_game_system_specific_command(command)
|
36
|
+
diff = 6
|
37
|
+
auto_success = 0
|
38
|
+
|
39
|
+
enabled_reroll = false
|
40
|
+
enabled_20th = false
|
41
|
+
|
42
|
+
md = command.match(/\A(\d+)(ST[SA]?)(\d+)?([+-]\d+)?/)
|
43
|
+
|
44
|
+
dice_pool = md[1].to_i
|
45
|
+
case md[2]
|
46
|
+
when 'STS'
|
47
|
+
enabled_reroll = true
|
48
|
+
when 'STA'
|
49
|
+
enabled_20th = true
|
50
|
+
end
|
51
|
+
diff = md[3].to_i if md[3]
|
52
|
+
auto_success = md[4].to_i if md[4]
|
53
|
+
|
54
|
+
diff = 6 if diff < 2
|
55
|
+
|
56
|
+
sequence = []
|
57
|
+
sequence.push "DicePool=#{dice_pool}, Difficulty=#{diff}, AutomaticSuccess=#{auto_success}"
|
58
|
+
|
59
|
+
# 出力では Difficulty=11..12 もあり得る
|
60
|
+
diff = 10 if diff > 10
|
61
|
+
|
62
|
+
total_success = auto_success
|
63
|
+
total_botch = 0
|
64
|
+
|
65
|
+
dice, success, botch, auto_success = roll_wod(dice_pool, diff, true, enabled_20th ? 2 : 1)
|
66
|
+
sequence.push dice.join(',')
|
67
|
+
total_success += success
|
68
|
+
total_botch += botch
|
69
|
+
|
70
|
+
if enabled_reroll
|
71
|
+
# 振り足し
|
72
|
+
while auto_success > 0
|
73
|
+
dice_pool = auto_success
|
74
|
+
# 振り足しの出目1は大失敗ではない
|
75
|
+
dice, success, botch, auto_success = roll_wod(dice_pool, diff, false)
|
76
|
+
sequence.push dice.join(',')
|
77
|
+
total_success += success
|
78
|
+
total_botch += botch
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
if total_success > 0
|
83
|
+
sequence.push "成功数#{total_success}"
|
84
|
+
elsif total_botch > 0
|
85
|
+
sequence.push "大失敗"
|
86
|
+
else
|
87
|
+
sequence.push "失敗"
|
88
|
+
end
|
89
|
+
|
90
|
+
output = sequence.join(' > ')
|
91
|
+
return output
|
92
|
+
end
|
93
|
+
|
94
|
+
# Revised Edition
|
95
|
+
# 出目10は1自動成功 振り足し
|
96
|
+
# 出目1は大失敗: 成功を1つ相殺
|
97
|
+
def roll_wod(dice_pool, diff, enabled_botch = true, auto_success_value = 1)
|
98
|
+
# FIXME: まとめて振る
|
99
|
+
dice = Array.new(dice_pool) do
|
100
|
+
dice_now = @randomizer.roll_once(10)
|
101
|
+
dice_now
|
102
|
+
end
|
103
|
+
|
104
|
+
dice.sort!
|
105
|
+
|
106
|
+
success = 0
|
107
|
+
botch = 0
|
108
|
+
auto_success = 0
|
109
|
+
|
110
|
+
dice.each do |d|
|
111
|
+
case d
|
112
|
+
when 10
|
113
|
+
auto_success += auto_success_value
|
114
|
+
when diff..10
|
115
|
+
success += 1
|
116
|
+
when 1
|
117
|
+
botch += 1 if enabled_botch
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
# 自動成功を成功に加算する
|
122
|
+
success += auto_success
|
123
|
+
|
124
|
+
if enabled_botch
|
125
|
+
# 成功と大失敗を相殺する
|
126
|
+
c = [success, botch].min
|
127
|
+
success -= c
|
128
|
+
botch -= c
|
129
|
+
end
|
130
|
+
|
131
|
+
return dice, success, botch, auto_success
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
@@ -0,0 +1,440 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "bcdice/dice_table/table"
|
4
|
+
require "bcdice/dice_table/d66_table"
|
5
|
+
|
6
|
+
module BCDice
|
7
|
+
module GameSystem
|
8
|
+
class YankeeYogSothoth < Base
|
9
|
+
# ゲームシステムの識別子
|
10
|
+
ID = 'YankeeYogSothoth'
|
11
|
+
|
12
|
+
# ゲームシステム名
|
13
|
+
NAME = 'ヤンキー&ヨグ=ソトース'
|
14
|
+
|
15
|
+
# ゲームシステム名の読みがな
|
16
|
+
SORT_KEY = 'やんきいあんとよくそとおす'
|
17
|
+
|
18
|
+
# ダイスボットの使い方
|
19
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
20
|
+
・判定
|
21
|
+
スペシャル/ファンブル/成功/失敗を判定
|
22
|
+
・各種表
|
23
|
+
※うろつき~決闘フェイズ
|
24
|
+
FT ファンブル表
|
25
|
+
WT 変調表
|
26
|
+
RTT ランダム特技決定表
|
27
|
+
KKT 関係表
|
28
|
+
DBRT 他愛のない会話表
|
29
|
+
TKT 戦う理由表
|
30
|
+
|
31
|
+
※武勇伝フェイズ
|
32
|
+
BUDT 武勇伝表
|
33
|
+
GUDT ガイヤンキー武勇伝表
|
34
|
+
FTNT 二つ名決定表
|
35
|
+
DAIT 第一印象表
|
36
|
+
TKKT ツレ関係表
|
37
|
+
|
38
|
+
※帰還フェイズ
|
39
|
+
GSST 現実世界生活表
|
40
|
+
GYST ガイヤンキー生活表
|
41
|
+
HPST 病院生活表
|
42
|
+
・D66ダイスあり
|
43
|
+
INFO_MESSAGE_TEXT
|
44
|
+
|
45
|
+
def initialize(command)
|
46
|
+
super(command)
|
47
|
+
@enabled_d66 = true
|
48
|
+
@d66_sort_type = D66SortType::ASC
|
49
|
+
end
|
50
|
+
|
51
|
+
# ゲーム別成功度判定(2D6)
|
52
|
+
def check_2D6(total, dice_total, _dice_list, cmp_op, target)
|
53
|
+
return '' if target == '?'
|
54
|
+
return '' unless cmp_op == :>=
|
55
|
+
|
56
|
+
if dice_total <= 2
|
57
|
+
" > ファンブル(判定失敗。ファンブル表(FT)を振ること)"
|
58
|
+
elsif dice_total >= 12
|
59
|
+
" > スペシャル(判定成功。【テンション】が1段階上昇)"
|
60
|
+
elsif total >= target
|
61
|
+
" > 成功"
|
62
|
+
else
|
63
|
+
" > 失敗"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def eval_game_system_specific_command(command)
|
68
|
+
roll_tables(command, TABLES)
|
69
|
+
end
|
70
|
+
|
71
|
+
NICKNAME_TABLE1 = DiceTable::D66Table.new(
|
72
|
+
'二つ名表1',
|
73
|
+
D66SortType::ASC,
|
74
|
+
{
|
75
|
+
11 => '「愛死天流(あいしてる)」',
|
76
|
+
12 => '「喧嘩上等(けんかじょうとう)」',
|
77
|
+
13 => '「正々堂々(せいせいどうどう)」',
|
78
|
+
14 => '「天下無敵(てんかむてき)」',
|
79
|
+
15 => '「一騎当千(いっきとうせん)」',
|
80
|
+
16 => '「威風堂々(いふうどうどう)」',
|
81
|
+
22 => '「焼肉定食(やきにくていしょく)」',
|
82
|
+
23 => '「完全無欠(かんぜんむけつ)」',
|
83
|
+
24 => '「獅子奮迅(ししふんじん)」',
|
84
|
+
25 => '「臥薪嘗胆(がしんしょうたん)」',
|
85
|
+
26 => '「疾風迅雷(しっぷうじんらい)」',
|
86
|
+
33 => '「夜露死苦(よろしく)」',
|
87
|
+
34 => '「天上天下(てんじょうてんげ)」',
|
88
|
+
35 => '「唯我独尊(ゆいがどくそん)」',
|
89
|
+
36 => '「電光石火(でんこうせっか)」',
|
90
|
+
44 => '「仏恥義理(ぶっちぎり)」',
|
91
|
+
45 => '「百戦百勝(ひゃくせんひゃくしょう)」',
|
92
|
+
46 => '「百戦錬磨(ひゃくせんれんま)」',
|
93
|
+
55 => '「残酷非道(ざんこくひどう)」',
|
94
|
+
56 => '「一意専心(いちいせんしん)」',
|
95
|
+
66 => '「時給千円(じきゅうせんえん)」'
|
96
|
+
}
|
97
|
+
)
|
98
|
+
|
99
|
+
NICKNAME_TABLE2 = DiceTable::D66Table.new(
|
100
|
+
'二つ名表2',
|
101
|
+
D66SortType::ASC,
|
102
|
+
{
|
103
|
+
11 => '「みんなの」',
|
104
|
+
12 => '「スルー推奨」',
|
105
|
+
13 => '「暴れん坊」',
|
106
|
+
14 => '「仲間思い」',
|
107
|
+
15 => '「サボり魔」',
|
108
|
+
16 => '「熱血番長の」',
|
109
|
+
22 => '「今日がダメでも明日がある」',
|
110
|
+
23 => '「すぐカッとなる」',
|
111
|
+
24 => '「夢を応援する」',
|
112
|
+
25 => '「地元じゃ有名な」',
|
113
|
+
26 => '「喧嘩慣れている」',
|
114
|
+
33 => '「いつかビックになる」',
|
115
|
+
34 => '「いいやつの」',
|
116
|
+
35 => '「意外とまじめな」',
|
117
|
+
36 => '「イイ感じの」',
|
118
|
+
44 => '「家族想いの」',
|
119
|
+
45 => '「とにかくモテる」',
|
120
|
+
46 => '「学校を代表するワル」',
|
121
|
+
55 => '「邪神ハンター」',
|
122
|
+
56 => '「男前/イイ女」',
|
123
|
+
66 => '「悪そうなやつはだいたい友達」'
|
124
|
+
}
|
125
|
+
)
|
126
|
+
|
127
|
+
NICKNAME_TABLE3 = DiceTable::D66Table.new(
|
128
|
+
'二つ名表3',
|
129
|
+
D66SortType::ASC,
|
130
|
+
{
|
131
|
+
11 => '「ファッションヤンキー」',
|
132
|
+
12 => '「誰もが知っている」',
|
133
|
+
13 => '「チャラい」',
|
134
|
+
14 => '「ツヨメ」',
|
135
|
+
15 => '「中学時代はすごかった」',
|
136
|
+
16 => '「イカれたやつ」',
|
137
|
+
22 => '「道徳の授業で泣いた」',
|
138
|
+
23 => '「マジか」',
|
139
|
+
24 => '「イケイケ」',
|
140
|
+
25 => '「鬼語り」',
|
141
|
+
26 => '「とりま」',
|
142
|
+
33 => '「ちょっと眠たい」',
|
143
|
+
34 => '「パネエ」',
|
144
|
+
35 => '「エモい」',
|
145
|
+
36 => '「やべーぞ!」',
|
146
|
+
44 => '「お腹が減っている」',
|
147
|
+
45 => '「むっつりスケベの」',
|
148
|
+
46 => '「いじわるな」',
|
149
|
+
55 => '「全国区に報道された」',
|
150
|
+
56 => '「毎日が楽しい」',
|
151
|
+
66 => '「おやじ狩り狩り」'
|
152
|
+
}
|
153
|
+
)
|
154
|
+
|
155
|
+
NICKNAME_TABLE4 = DiceTable::D66Table.new(
|
156
|
+
'二つ名表4',
|
157
|
+
D66SortType::ASC,
|
158
|
+
{
|
159
|
+
11 => '「国産」',
|
160
|
+
12 => '「ブレブレ」',
|
161
|
+
13 => '「ロボ」',
|
162
|
+
14 => '「大銀河」',
|
163
|
+
15 => '「超獣」',
|
164
|
+
16 => '「ミステリー」',
|
165
|
+
22 => '「超電磁」',
|
166
|
+
23 => '「危険な」',
|
167
|
+
24 => '「湯上がり」',
|
168
|
+
25 => '「すごい」',
|
169
|
+
26 => '「エロ」',
|
170
|
+
33 => '「福岡」',
|
171
|
+
34 => '「エリート」',
|
172
|
+
35 => '「どんまい」',
|
173
|
+
36 => '「がり勉」',
|
174
|
+
44 => '「東京」',
|
175
|
+
45 => '「スペース」',
|
176
|
+
46 => '「永遠の」',
|
177
|
+
55 => '「大阪」',
|
178
|
+
56 => '「輝け!」',
|
179
|
+
66 => '「名古屋」'
|
180
|
+
}
|
181
|
+
)
|
182
|
+
|
183
|
+
TABLES = {
|
184
|
+
"RTT" => DiceTable::SaiFicSkillTable.new(
|
185
|
+
[
|
186
|
+
['苦手', ['大人', '勉強', '敗北', '昆虫', '親', '異性', '孤独', '高所', '暗がり', 'ホラー', '子供']],
|
187
|
+
['部活', ['柔道', 'プロレス', 'テコンドー', '空手', 'ボクシング', '帰宅', '剣道', '野球', '応援団', '科学', '文系']],
|
188
|
+
['中学時代', ['悪ガキ', '統一', 'バイト', '習い事', '喧嘩', 'サボり', 'マジメくん', '遊び歩き', '真似ごと', '部活', '何もしない']],
|
189
|
+
['趣味', ['すけべ', '車・バイク', '家事', '料理', '運動', '修行', 'ファッション', 'つるむ', '寝る', 'ゲーム', '読書']],
|
190
|
+
['スタイル', ['テキトー', 'ばか', 'オラオラ', '熱血', '硬派', '自然体', '軟派', '自分大好き', '腹黒', 'クール', 'インテリ']],
|
191
|
+
['好み', ['だらだら', '食事', '逆転', '家族', '支配', '褒められる', '恋愛', '友情', '勝利', '金', '静寂']],
|
192
|
+
],
|
193
|
+
peekaboo_style: true
|
194
|
+
),
|
195
|
+
"FTNT" => DiceTable::ChainTable.new(
|
196
|
+
"二つ名決定表",
|
197
|
+
"1D6",
|
198
|
+
[
|
199
|
+
NICKNAME_TABLE1,
|
200
|
+
NICKNAME_TABLE1,
|
201
|
+
NICKNAME_TABLE2,
|
202
|
+
NICKNAME_TABLE2,
|
203
|
+
NICKNAME_TABLE3,
|
204
|
+
NICKNAME_TABLE4,
|
205
|
+
]
|
206
|
+
),
|
207
|
+
"FT" => DiceTable::Table.new(
|
208
|
+
"ファンブル表",
|
209
|
+
"1D6",
|
210
|
+
[
|
211
|
+
'やっちまった……。テンションが1段階減少する。',
|
212
|
+
'ひょうなことから嫌な状況になる。ランダムに変調(WT)を1つ受ける。',
|
213
|
+
'あまりにもカッコ悪いところが伝わってしまう。自分に対して【友情度】を持つPC全員は、リスペクトにチェックを入れる。',
|
214
|
+
'自分の絶望を観測し、邪神が活性化する。バッドヤンキーの「ケツモチ邪神の加護」が1点上昇する。',
|
215
|
+
'つまらないことで怪我をする。自分の【HP】が1D6点減少する。',
|
216
|
+
'逆境に燃える。テンションが1段階上昇する。'
|
217
|
+
]
|
218
|
+
),
|
219
|
+
"WT" => DiceTable::Table.new(
|
220
|
+
"変調表",
|
221
|
+
"1D6",
|
222
|
+
[
|
223
|
+
'毒:サイクル終了時もしくはラウンド終了時に、2D6点のダメージを受ける。',
|
224
|
+
'呪い:熱血蘇生の達成値が2点減少する。NPCが受けた場合、受けるダメージが2点上昇する。',
|
225
|
+
'火傷:テンションの効果によって、【攻撃力】が上昇しない。NPCは【攻撃力】が2点低いものとして扱う(最低0点)。',
|
226
|
+
'骨折:判定に失敗するたびに、5点のダメージを受ける。',
|
227
|
+
'出血:サイクル終了時もしくはラウンド終了時に、2点のダメージを受ける。また、施設やアイテムの効果で【HP】が上昇しない。',
|
228
|
+
'目つぶし:判定の達成値が2点減少する。'
|
229
|
+
]
|
230
|
+
),
|
231
|
+
"KKT" => DiceTable::Table.new(
|
232
|
+
"関係表",
|
233
|
+
"1D6",
|
234
|
+
['「家族/気に食わない」', '「親友/近寄るな」', '「悪友/こざかしい」', '「ライバル/チンピラ」', '「いい奴/悪い奴」', '「利用できる/ヘタレ」']
|
235
|
+
),
|
236
|
+
"DBRT" => DiceTable::D66Table.new(
|
237
|
+
"他愛のない会話表",
|
238
|
+
:asc,
|
239
|
+
{
|
240
|
+
11 => "「政治の話」",
|
241
|
+
12 => "「勉強の話」",
|
242
|
+
13 => "「友達の話」",
|
243
|
+
14 => "「兄弟姉妹の話」",
|
244
|
+
15 => "「好きなものの話」",
|
245
|
+
16 => "「嫌いなものの話」",
|
246
|
+
22 => "「ラーメンの話」",
|
247
|
+
23 => "「コンビニの話」",
|
248
|
+
24 => "「学校生活の話」",
|
249
|
+
25 => "「先輩後輩の話」",
|
250
|
+
26 => "「趣味の話」",
|
251
|
+
33 => "「肉の話」",
|
252
|
+
34 => "「中学時代の話」",
|
253
|
+
35 => "「喧嘩の話」",
|
254
|
+
36 => "「ファッションの話」",
|
255
|
+
44 => "「家の話」",
|
256
|
+
45 => "「好みの異性の話」",
|
257
|
+
46 => "「テレビ番組の話」",
|
258
|
+
55 => "「野菜の話」",
|
259
|
+
56 => "「部活の話」",
|
260
|
+
66 => "「ダブりの話」",
|
261
|
+
}
|
262
|
+
),
|
263
|
+
"TKT" => DiceTable::D66Table.new(
|
264
|
+
"戦う理由表",
|
265
|
+
:asc,
|
266
|
+
{
|
267
|
+
11 => "「なんとなく」",
|
268
|
+
12 => "「好みのエルフがいた」",
|
269
|
+
13 => "「エルフに世話になった」",
|
270
|
+
14 => "「ドワーフの飯がうまかった」",
|
271
|
+
15 => "「ドワーフにファッション特徴を作ってもらった」",
|
272
|
+
16 => "「妖精たちのいたずらがほほえましかった」",
|
273
|
+
22 => "「バッドヤンキーと昔からの因縁があるから」",
|
274
|
+
23 => "「バッドヤンキーが気に入らなかった」",
|
275
|
+
24 => "「強いやつと戦いたい」",
|
276
|
+
25 => "「異世界にワクワクしているから」",
|
277
|
+
26 => "「バッドヤンキー集団に迷惑を受けたから」",
|
278
|
+
33 => "「夢見るNPCが好みだったから」",
|
279
|
+
34 => "「夢見るNPCの夢に共感したから」",
|
280
|
+
35 => "「夢見るNPCの夢を応援したいと思ったから」",
|
281
|
+
36 => "「夢見るNPCを放っておけないから」",
|
282
|
+
44 => "「家に帰りたいから」",
|
283
|
+
45 => "「夢見るNPCは友達だから」",
|
284
|
+
46 => "「他のPCと気が合ったから」",
|
285
|
+
55 => "「マーメイドと仲良くなった」",
|
286
|
+
56 => "「退屈を紛らわせられそうだから」",
|
287
|
+
66 => "「ただ暴れたかった」",
|
288
|
+
}
|
289
|
+
),
|
290
|
+
"BUDT" => DiceTable::D66Table.new(
|
291
|
+
"武勇伝表",
|
292
|
+
:asc,
|
293
|
+
{
|
294
|
+
11 => "バッドヤンキーのチームに自分が所属する学校を破壊されたが、最後まで戦った。/テンションが1段階上昇",
|
295
|
+
12 => "バッドヤンキーチームの兵隊が襲い掛かってきたが、撃退した。/【HP】+3",
|
296
|
+
13 => "バッドヤンキーと何度も戦い、ライバルとして認識されていた。/【打たれ強さ】+1",
|
297
|
+
14 => "バッドヤンキー配下の集団をいくつか潰してまわっていた。/【攻撃力】+1",
|
298
|
+
15 => "バッドヤンキーのチームに入りそうになった後輩を説得した。/【HP】+3",
|
299
|
+
16 => "バッドヤンキーに支配されていた店を救った。/【攻撃力】+1",
|
300
|
+
22 => "アメリカで暴れた。/テンションが1段階上昇",
|
301
|
+
23 => "学校をサボって、日本全国を旅をしてまわった。/【HP】+3",
|
302
|
+
24 => "好きなアーティストのライブに行き、マナーの悪いファンを黙らせた。/【打たれ強さ】+1",
|
303
|
+
25 => "抗争中の学校に一人で乗り込んで、戦いを終わらせた。/【攻撃力】+1",
|
304
|
+
26 => "へまをした仲間を助けるため、頭を下げた。/【HP】+3",
|
305
|
+
33 => "大規模な運動会で活躍し、最優秀賞を獲得した。/【攻撃力】+1",
|
306
|
+
34 => "家族や仲間に迷惑をかけたチームを潰した。/【打たれ強さ】+1",
|
307
|
+
35 => "暴走族を一人で潰した。/【攻撃力】+1",
|
308
|
+
36 => "本職(ヤクザ)と戦って謝らせた。/【打たれ強さ】+1",
|
309
|
+
44 => "ドッジボール大会に出場し、優勝をして賞品を手に入れた。/「絆創膏」「テンアゲアイテム」「ポーション」「お守り」のうち1つを選んで獲得する",
|
310
|
+
45 => "仲間たちと一緒に学校行事を盛り上げた。/【打たれ強さ】+1",
|
311
|
+
46 => "仲間と一緒にディスカウントストアで買い物をし、キャンプをした。/「絆創膏」「テンアゲアイテム」「ポーション」「お守り」のうち1つを選んで獲得する",
|
312
|
+
55 => "隣のプレイヤーのPCが所属する高校と大きな抗争をした。/右隣のプレイヤーのPCに対する【友情度】が1点上昇",
|
313
|
+
56 => "修学旅行先で喧嘩し、その後友情を深めた。/【攻撃力】+1",
|
314
|
+
66 => "隣のプレイヤーのPCと一緒に、大きな悪の組織を潰した。/右隣のプレイヤーのPCに対する【友情度】が1点上昇",
|
315
|
+
}
|
316
|
+
),
|
317
|
+
"GUDT" => DiceTable::D66Table.new(
|
318
|
+
"ガイヤンキー武勇伝表",
|
319
|
+
:asc,
|
320
|
+
{
|
321
|
+
11 => "アザトースが突然接触してきたので、殴って追い返した。/テンションが1段階上昇",
|
322
|
+
12 => "シュブ=ニグラスのサバトに乗り込んで潰した。/【HP】+3",
|
323
|
+
13 => "クトゥルフの落とし子を殴り倒して追い返した。/【打たれ強さ】+1",
|
324
|
+
14 => "ヨグ=ソトースの勧誘を受けたが、断ってやった。/【攻撃力】+1",
|
325
|
+
15 => "深きものどもが住む漁村を訪ね、罠にはめられたが脱出した。/【HP】+3",
|
326
|
+
16 => "一晩飲み明かした相手がナイアーラトテップだった。/【攻撃力】+1",
|
327
|
+
22 => "生きてる恐竜と出会った。/テンションが1段階上昇",
|
328
|
+
23 => "ファンタジー世界を冒険者として旅してまわった。/【HP】+3",
|
329
|
+
24 => "町で起こった少女たちの失踪事件を解決した。/【打たれ強さ】+1",
|
330
|
+
25 => "バッドヤンキーに潰された騎士団を鼓舞して、立て直しに協力した。/【攻撃力】+1",
|
331
|
+
26 => "大きな城下町に起こった殺人事件や傷害事件を幾つも解決した。/【HP】+3",
|
332
|
+
33 => "大きな城下町で、テンションが上がっていろいろ買い込んでしまった。/「絆創膏」「テンアゲアイテム」「ポーション」「お守り」のうち1つを選んで獲得する",
|
333
|
+
34 => "エルフの森を燃やしつくそうとする拝火暴走族をこらしめた。/【打たれ強さ】+1",
|
334
|
+
35 => "ドワーフの洞窟に現われた巨大ワームを投げ飛ばした。/【攻撃力】+1",
|
335
|
+
36 => "妖精たちの村に迷い込んで、村を荒らそうとするゴブリンをブッ飛ばした。/【打たれ強さ】+1",
|
336
|
+
44 => "巨大な王国が主催している武術大会で優勝し、名誉とアイテムを手に入れた。/「絆創膏」「テンアゲアイテム」「ポーション」「お守り」のうち1つを選んで獲得する",
|
337
|
+
45 => "ゴブリンの襲撃から町を守り切った。/【打たれ強さ】+1",
|
338
|
+
46 => "悪いチームにさらわれた姫や王子様を助けたら、惚れられた。/【攻撃力】+1",
|
339
|
+
55 => "次に会うヤンキーのために、この世界の土産話を作ってきた。/右隣のプレイヤーのPCに対する【友情度】が1点上昇",
|
340
|
+
56 => "悪い魔法使いの儀式を突き止めて、潰した。/【攻撃力】+1",
|
341
|
+
66 => "次に会うヤンキーのために、うまいものを用意した。/右隣のプレイヤーのPCに対する【友情度】が1点上昇",
|
342
|
+
}
|
343
|
+
),
|
344
|
+
"DAIT" => DiceTable::Table.new(
|
345
|
+
"第一印象表",
|
346
|
+
"1D6",
|
347
|
+
['「ヤベエ」', '「パネエ」', '「スゲエ」', '「びっくり」', '「たばい」', '「アウトオブ眼中」']
|
348
|
+
),
|
349
|
+
"TKKT" => DiceTable::Table.new(
|
350
|
+
"ツレ関係表",
|
351
|
+
"1D6",
|
352
|
+
['「すごそう」', '「勇者様」', '「つよい」', '「いい人」', '「かっこいい」', '「利用できる」']
|
353
|
+
),
|
354
|
+
"GSST" => DiceTable::D66Table.new(
|
355
|
+
"現実世界生活表",
|
356
|
+
:asc,
|
357
|
+
{
|
358
|
+
11 => "喧嘩に明け暮れた",
|
359
|
+
12 => "真面目に授業を受けた",
|
360
|
+
13 => "今回の仲間と食事をしに行った",
|
361
|
+
14 => "チーム同士の抗争を沈めた",
|
362
|
+
15 => "ぼーっとしていた",
|
363
|
+
16 => "バイトに専念した",
|
364
|
+
22 => "仲間とバーベキューをした",
|
365
|
+
23 => "自分の体を鍛えることにした",
|
366
|
+
24 => "仲間との毎日をより大切にした",
|
367
|
+
25 => "家族とゆっくりすごした",
|
368
|
+
26 => "喧嘩の技術を磨いた",
|
369
|
+
33 => "本職(ヤクザ)と喧嘩をした",
|
370
|
+
34 => "好きなだけ寝た",
|
371
|
+
35 => "ツレができた",
|
372
|
+
36 => "今回の仲間と旅に出た",
|
373
|
+
44 => "異性と遊園地に行くことになった",
|
374
|
+
45 => "あの戦いの日々を思い返していた",
|
375
|
+
46 => "次の戦いに備えた",
|
376
|
+
55 => "運動部の助っ人として、大会に出た",
|
377
|
+
56 => "好きなだけ好物を食べた",
|
378
|
+
66 => "汚い大人の罠にはめられたが、なんとかした",
|
379
|
+
}
|
380
|
+
),
|
381
|
+
"GYST" => DiceTable::D66Table.new(
|
382
|
+
"ガイヤンキー生活表",
|
383
|
+
:asc,
|
384
|
+
{
|
385
|
+
11 => "ツレと生活をした",
|
386
|
+
12 => "異世界について学んだ",
|
387
|
+
13 => "エルフの美形(平均年齢200歳)に接待を受けた",
|
388
|
+
14 => "ドワーフから地元の酒をもらった",
|
389
|
+
15 => "妖精の村に迷い込んでしまった",
|
390
|
+
16 => "この世界の遺跡を回った",
|
391
|
+
22 => "この世界に野球などのスポーツを広めた",
|
392
|
+
23 => "広大な森の中で迷ってしまい、数か月ほどサバイバルした",
|
393
|
+
24 => "不思議な力が溢れる泉の水を飲み干した",
|
394
|
+
25 => "魔法使いの研究に協力したが、さっぱりだった",
|
395
|
+
26 => "ハーピィに誘われて空の旅を満喫した",
|
396
|
+
33 => "この世界にヤンキー文化を伝えた",
|
397
|
+
34 => "バッドヤンキーに荒らされた小さな村を復興した",
|
398
|
+
35 => "悪徳領主にさらわれた少女を助けた",
|
399
|
+
36 => "わるい商人を殴り飛ばした",
|
400
|
+
44 => "エルフの漫画家が誕生するのを見届けた",
|
401
|
+
45 => "巨大なドラゴンと殴りあって勝利した",
|
402
|
+
46 => "海中に住むマーメイドを脅かす悪人を退治した",
|
403
|
+
55 => "邪神を信奉している神殿に殴り込みをして、企みを阻止した",
|
404
|
+
56 => "天使っぽいのが悪いことをしていたので蹴り飛ばした",
|
405
|
+
66 => "農作業をした",
|
406
|
+
}
|
407
|
+
),
|
408
|
+
"HPST" => DiceTable::D66Table.new(
|
409
|
+
"病院生活表",
|
410
|
+
:asc,
|
411
|
+
{
|
412
|
+
11 => "治療に専念した",
|
413
|
+
12 => "見舞いでもらった漫画を読み倒した",
|
414
|
+
13 => "ゲームをひたすらやった",
|
415
|
+
14 => "悪化した病と闘った",
|
416
|
+
15 => "入院している子供と約束をした",
|
417
|
+
16 => "看護師と仲良くなった",
|
418
|
+
22 => "現代の医術では治療できなかったので、異世界の魔法に賭けた",
|
419
|
+
23 => "院内パーティを盛り上げた",
|
420
|
+
24 => "飯がまずくて苦労した",
|
421
|
+
25 => "飯がうまくて感動をした",
|
422
|
+
26 => "やることがなくて暇だった",
|
423
|
+
33 => "スーパードクターが現われて、自分の怪我を見事に治してくれた",
|
424
|
+
34 => "とにかくテレビを見続けて、知識がついた",
|
425
|
+
35 => "勉強をしてみたら、いつも以上にはかどった",
|
426
|
+
36 => "たくさんの人たちが見舞いに来て、感動した",
|
427
|
+
44 => "入院をしている爺さんから色々教えてもらった",
|
428
|
+
45 => "リハビリに思ったより時間がかかった",
|
429
|
+
46 => "次に喧嘩するときのイメージトレーニングをした",
|
430
|
+
55 => "ヤンキー漫画に感動をした",
|
431
|
+
56 => "院内で喧嘩をした",
|
432
|
+
66 => "売店で売っているお菓子をコンプリートした",
|
433
|
+
}
|
434
|
+
),
|
435
|
+
}.freeze
|
436
|
+
|
437
|
+
register_prefix(TABLES.keys)
|
438
|
+
end
|
439
|
+
end
|
440
|
+
end
|