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,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class Illusio < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'Illusio'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = '晃天のイルージオ'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'こうてんのいるうしお'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
17
|
+
判定:[n]IL(BNo)[P]
|
18
|
+
|
19
|
+
[]内のコマンドは省略可能。
|
20
|
+
「n」でダイス数を指定。省略時は「1」。
|
21
|
+
(BNo)でブロックナンバーを指定。「236」のように記述。順不同可。
|
22
|
+
コマンド末に「P」を指定で、(BNo)のパリィ判定。(一応、複数指定可)
|
23
|
+
|
24
|
+
【書式例】
|
25
|
+
・6IL236 → 6dでブロックナンバー「2,3,6」の判定。
|
26
|
+
・IL4512 → 1dでブロックナンバー「1,2,4,5」の判定。
|
27
|
+
・2IL1P → 2dでパリィナンバー「1」の判定。
|
28
|
+
MESSAGETEXT
|
29
|
+
|
30
|
+
def initialize(command)
|
31
|
+
super(command)
|
32
|
+
@sort_add_dice = true # ダイスのソート有
|
33
|
+
end
|
34
|
+
|
35
|
+
register_prefix([
|
36
|
+
'(\d+)?IL([1-6])?([1-6])?([1-6])?([1-6])?([1-6])?([1-6])?(P)?'
|
37
|
+
])
|
38
|
+
|
39
|
+
def eval_game_system_specific_command(command)
|
40
|
+
if command =~ /(\d+)?IL([1-6])?([1-6])?([1-6])?([1-6])?([1-6])?([1-6])?(P)?$/i
|
41
|
+
diceCount = (Regexp.last_match(1) || 1).to_i
|
42
|
+
blockNo = [(Regexp.last_match(2) || 0).to_i, (Regexp.last_match(3) || 0).to_i, (Regexp.last_match(4) || 0).to_i, (Regexp.last_match(5) || 0).to_i, (Regexp.last_match(6) || 0).to_i, (Regexp.last_match(7) || 0).to_i]
|
43
|
+
blockNo.delete(0)
|
44
|
+
blockNo = blockNo.sort
|
45
|
+
blockNo = blockNo.uniq
|
46
|
+
isParry = !Regexp.last_match(8).nil?
|
47
|
+
|
48
|
+
return checkRoll(diceCount, blockNo, isParry)
|
49
|
+
end
|
50
|
+
|
51
|
+
return nil
|
52
|
+
end
|
53
|
+
|
54
|
+
def checkRoll(diceCount, blockNo, isParry)
|
55
|
+
diceArray = @randomizer.roll_barabara(diceCount, 6).sort
|
56
|
+
diceText = diceArray.join(',')
|
57
|
+
|
58
|
+
resultArray = []
|
59
|
+
success = 0
|
60
|
+
diceArray.each do |i|
|
61
|
+
if blockNo.count(i) > 0
|
62
|
+
resultArray.push("×")
|
63
|
+
else
|
64
|
+
resultArray.push(i)
|
65
|
+
success += 1
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
blockText = blockNo.join(',')
|
70
|
+
blockText2 = "Block"
|
71
|
+
blockText2 = "Parry" if isParry
|
72
|
+
resultText = resultArray.join(',')
|
73
|
+
|
74
|
+
result = "#{diceCount}D6(#{blockText2}:#{blockText}) > #{diceText} > #{resultText} > "
|
75
|
+
if isParry
|
76
|
+
if success < diceCount
|
77
|
+
result += "パリィ成立! 次の非ダメージ2倍。"
|
78
|
+
else
|
79
|
+
result += "成功数:#{success} パリィ失敗"
|
80
|
+
end
|
81
|
+
else
|
82
|
+
result += "成功数:#{success}"
|
83
|
+
end
|
84
|
+
|
85
|
+
return result
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class InfiniteFantasia < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'InfiniteFantasia'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = '無限のファンタジア'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'むけんのふあんたしあ'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = "失敗、成功レベルの自動判定を行います。\n"
|
17
|
+
|
18
|
+
# ゲーム別成功度判定(1d20)
|
19
|
+
def check_1D20(total, _dice_total, cmp_op, target)
|
20
|
+
return '' if target == '?'
|
21
|
+
|
22
|
+
if cmp_op != :<=
|
23
|
+
return ''
|
24
|
+
elsif total > target
|
25
|
+
return " > 失敗"
|
26
|
+
end
|
27
|
+
|
28
|
+
output =
|
29
|
+
if total <= (target / 32)
|
30
|
+
" > 32レベル成功(32Lv+)"
|
31
|
+
elsif total <= (target / 16)
|
32
|
+
" > 16レベル成功(16LV+)"
|
33
|
+
elsif total <= (target / 8)
|
34
|
+
" > 8レベル成功"
|
35
|
+
elsif total <= (target / 4)
|
36
|
+
" > 4レベル成功"
|
37
|
+
elsif total <= (target / 2)
|
38
|
+
" > 2レベル成功"
|
39
|
+
else
|
40
|
+
" > 1レベル成功"
|
41
|
+
end
|
42
|
+
|
43
|
+
if total <= 1
|
44
|
+
output += "/クリティカル"
|
45
|
+
end
|
46
|
+
|
47
|
+
output
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,822 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class Insane < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'Insane'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = 'インセイン'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'いんせいん'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
17
|
+
・判定
|
18
|
+
スペシャル/ファンブル/成功/失敗を判定
|
19
|
+
・各種表
|
20
|
+
シーン表 ST
|
21
|
+
本当は怖い現代日本シーン表 HJST/狂騒の二〇年代シーン表 MTST
|
22
|
+
暗黒のヴィクトリアシーン表 DVST
|
23
|
+
形容表 DT
|
24
|
+
本体表 BT/部位表 PT
|
25
|
+
感情表 FT
|
26
|
+
職業表 JT
|
27
|
+
バッドエンド表 BET
|
28
|
+
ランダム特技決定表 RTT
|
29
|
+
指定特技(暴力)表 (TVT)
|
30
|
+
指定特技(情動)表 (TET)
|
31
|
+
指定特技(知覚)表 (TPT)
|
32
|
+
指定特技(技術)表 (TST)
|
33
|
+
指定特技(知識)表 (TKT)
|
34
|
+
指定特技(怪異)表 (TMT)
|
35
|
+
会話ホラースケープ表(CHT)
|
36
|
+
街中ホラースケープ表(VHT)
|
37
|
+
不意訪問ホラースケープ表(IHT)
|
38
|
+
廃墟遭遇ホラースケープ表(RHT)
|
39
|
+
野外遭遇ホラースケープ表(MHT)
|
40
|
+
情報潜在ホラースケープ表(LHT)
|
41
|
+
遭遇表 都市 (ECT) 山林 (EMT) 海辺 (EAT)/反応表 RET
|
42
|
+
残業ホラースケープ表 OHT/残業電話表 OPT/残業シーン表 OWT
|
43
|
+
社名決定表1 CNT1/社名決定表2 CNT2/社名決定表3 CNT3
|
44
|
+
暫定整理番号作成表 IRN
|
45
|
+
・D66ダイスあり
|
46
|
+
INFO_MESSAGE_TEXT
|
47
|
+
|
48
|
+
register_prefix([
|
49
|
+
'ST', 'HJST', 'MTST', 'DVST', 'DT', 'BT', 'PT', 'FT', 'JT', 'BET', 'RTT', 'TVT', 'TET', 'TPT', 'TST', 'TKT', 'TMT',
|
50
|
+
'CHT', 'VHT', 'IHT', 'RHT', 'MHT', 'LHT', 'ECT', 'EMT', 'EAT', 'OPT', 'OHT', 'OWT', 'CNT1', 'CNT2', 'CNT3', 'RET', 'IRN'
|
51
|
+
])
|
52
|
+
|
53
|
+
def initialize(command)
|
54
|
+
super(command)
|
55
|
+
|
56
|
+
@sort_add_dice = true
|
57
|
+
@sort_barabara_dice = true
|
58
|
+
@enabled_d66 = true
|
59
|
+
@d66_sort_type = D66SortType::ASC
|
60
|
+
end
|
61
|
+
|
62
|
+
# ゲーム別成功度判定(2D6)
|
63
|
+
def check_2D6(total, dice_total, _dice_list, cmp_op, target)
|
64
|
+
return '' unless cmp_op == :>=
|
65
|
+
|
66
|
+
if dice_total <= 2
|
67
|
+
" > ファンブル(判定失敗。山札から【狂気】を1枚獲得)"
|
68
|
+
elsif dice_total >= 12
|
69
|
+
" > スペシャル(判定成功。【生命力】1点か【正気度】1点回復)"
|
70
|
+
elsif target == "?"
|
71
|
+
""
|
72
|
+
elsif total >= target
|
73
|
+
" > 成功"
|
74
|
+
else
|
75
|
+
" > 失敗"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def eval_game_system_specific_command(command)
|
80
|
+
output = '1'
|
81
|
+
type = ""
|
82
|
+
total_n = ""
|
83
|
+
|
84
|
+
case command
|
85
|
+
when 'ST'
|
86
|
+
type = 'シーン表'
|
87
|
+
output, total_n = get_scene_table
|
88
|
+
when 'HJST'
|
89
|
+
type = '本当は怖い現代日本シーン表'
|
90
|
+
output, total_n = get_horror_scene_table
|
91
|
+
when 'MTST'
|
92
|
+
type = '狂騒の二〇年代シーン表'
|
93
|
+
output, total_n = get_mania_scene_table
|
94
|
+
when 'DVST'
|
95
|
+
type = '暗黒のヴィクトリアシーン表'
|
96
|
+
output, total_n = get_dark_scene_table
|
97
|
+
when 'DT'
|
98
|
+
type = '形容表'
|
99
|
+
output, total_n = get_description_table
|
100
|
+
when 'BT'
|
101
|
+
type = '本体表'
|
102
|
+
output, total_n = get_body_table
|
103
|
+
when 'PT'
|
104
|
+
type = '部位表'
|
105
|
+
output, total_n = get_parts_table
|
106
|
+
when 'FT'
|
107
|
+
type = '感情表'
|
108
|
+
output, total_n = get_fortunechange_table
|
109
|
+
when 'JT'
|
110
|
+
type = '職業表'
|
111
|
+
output, total_n = get_job_table
|
112
|
+
when 'BET'
|
113
|
+
type = 'バッドエンド表'
|
114
|
+
output, total_n = get_badend_table
|
115
|
+
when 'RTT'
|
116
|
+
type = 'ランダム特技決定表'
|
117
|
+
output, total_n = get_random_skill_table
|
118
|
+
when 'TVT'
|
119
|
+
type = '指定特技(暴力)表'
|
120
|
+
output, total_n = get_violence_skill_table
|
121
|
+
when 'TET'
|
122
|
+
type = '指定特技(情動)表'
|
123
|
+
output, total_n = get_emotion_skill_table
|
124
|
+
when 'TPT'
|
125
|
+
type = '指定特技(知覚)表'
|
126
|
+
output, total_n = get_perception_skill_table
|
127
|
+
when 'TST'
|
128
|
+
type = '指定特技(技術)表'
|
129
|
+
output, total_n = get_skill_skill_table
|
130
|
+
when 'TKT'
|
131
|
+
type = '指定特技(知識)表'
|
132
|
+
output, total_n = get_knowledge_skill_table
|
133
|
+
when 'TMT'
|
134
|
+
type = '指定特技(怪異)表'
|
135
|
+
output, total_n = get_mystery_skill_table
|
136
|
+
when 'CHT'
|
137
|
+
type = '会話ホラースケープ表'
|
138
|
+
output, total_n = get_conversation_horror_table
|
139
|
+
when 'VHT'
|
140
|
+
type = '街中ホラースケープ表'
|
141
|
+
output, total_n = get_ville_horror_table
|
142
|
+
when 'IHT'
|
143
|
+
type = '不意訪問ホラースケープ表'
|
144
|
+
output, total_n = get_inattendu_horror_table
|
145
|
+
when 'RHT'
|
146
|
+
type = '廃墟遭遇ホラースケープ表'
|
147
|
+
output, total_n = get_ruines_horror_table
|
148
|
+
when 'MHT'
|
149
|
+
type = ' 野外遭遇ホラースケープ表'
|
150
|
+
output, total_n = get_Mlle_horror_table
|
151
|
+
when 'LHT'
|
152
|
+
type = '情報潜在ホラースケープ表 '
|
153
|
+
output, total_n = get_latence_horror_table
|
154
|
+
when 'ECT'
|
155
|
+
type = '遭遇表・都市'
|
156
|
+
output, total_n = get_city_table
|
157
|
+
when 'EMT'
|
158
|
+
type = '遭遇表・山林'
|
159
|
+
output, total_n = get_mountainforest_table
|
160
|
+
when 'EAT'
|
161
|
+
type = '遭遇表・海辺'
|
162
|
+
output, total_n = get_seaside_table
|
163
|
+
when 'OHT'
|
164
|
+
type = '残業ホラースケープ表 '
|
165
|
+
output, total_n = get_overtime_horror_table
|
166
|
+
when 'OPT'
|
167
|
+
type = '残業電話表'
|
168
|
+
output, total_n = get_overtimephone_table
|
169
|
+
when 'OWT'
|
170
|
+
type = '残業シーン表'
|
171
|
+
output, total_n = get_overtimework_scene_table
|
172
|
+
when 'CNT1'
|
173
|
+
type = '社名決定表1'
|
174
|
+
output, total_n = get_corporatenameone_table
|
175
|
+
when 'CNT2'
|
176
|
+
type = '社名決定表2'
|
177
|
+
output, total_n = get_corporatenametwo_table
|
178
|
+
when 'CNT3'
|
179
|
+
type = '社名決定表3'
|
180
|
+
output, total_n = get_corporatenamethree_table
|
181
|
+
when 'RET'
|
182
|
+
type = '反応表'
|
183
|
+
output, total_n = get_reaction_scene_table
|
184
|
+
when 'IRN'
|
185
|
+
type = '暫定整理番号作成'
|
186
|
+
output, total_n = get_interim_reference_number
|
187
|
+
end
|
188
|
+
|
189
|
+
return "#{type}(#{total_n}) > #{output}"
|
190
|
+
end
|
191
|
+
|
192
|
+
# シーン表
|
193
|
+
def get_scene_table
|
194
|
+
table = [
|
195
|
+
'血の匂いがあたりに充満している。事件か? 事故か? もしや、それは今も続いているのだろうか?',
|
196
|
+
'これは……夢か? もう終わったはずの過去が、記憶の中から蘇ってくる。',
|
197
|
+
'眼下に広がる町並みを見下ろしている。なぜこんな高所に……?',
|
198
|
+
'世界の終わりのような暗黒。暗闇の中、何者かの気配が蠢く……。',
|
199
|
+
'穏やかな時間が過ぎていく。まるであんなことがなかったかのようだ。',
|
200
|
+
'湿った土の匂い。濃密な気配が漂う森の中。鳥や虫の声、風にそよぐ木々の音が聞こえる。',
|
201
|
+
'人通りの少ない住宅街。見知らぬ人々の住まう家々の中からは、定かではない人声や物音が漏れてくる……。',
|
202
|
+
'にわかに空を雲が覆う。強い雨が降り出す。人々は、軒を求めて、大慌てで駆け出していく。',
|
203
|
+
'荒れ果てた廃墟、朽ちた生活の名残。かすかに聞こえるのは風か、波の音か、耳鳴りか。',
|
204
|
+
'人ごみ。喧騒。けたたましい店内BGMに、調子っぱずれの笑い声。騒がしい繁華街の一角だが……?',
|
205
|
+
'明るい光りに照らされて、ほっと一息。だが光が強いほどに、影もまた濃くなる……。',
|
206
|
+
]
|
207
|
+
|
208
|
+
return get_table_by_2d6(table)
|
209
|
+
end
|
210
|
+
|
211
|
+
# 本当は怖い現代日本シーン表
|
212
|
+
def get_horror_scene_table
|
213
|
+
table = [
|
214
|
+
'不意に辺りが暗くなる。停電か? 闇の中から、誰かがあなたを呼ぶ声が聞こえてくる。',
|
215
|
+
'ぴちょん。ぴちょん。ぴちょん。どこからか、水滴が落ちるような音が聞こえてくる。',
|
216
|
+
'窓ガラスの前を通り過ぎたとき、不気味な何かが映り込む。目の錯覚……?',
|
217
|
+
'テレビからニュースの音が聞こえてくる。何やら近所で物騒な事件があったようだが……',
|
218
|
+
'暗い道を一人歩いている。背後から、不気味な跫音が近づいてくるような気がするが……。',
|
219
|
+
'誰だろう? ずっと視線を感じる。振り向いて見ても、そこにあるのは、いつも通りの光景なのだが……',
|
220
|
+
'突如、携帯電話の音が鳴り響く。マナーモードにしておいたはずなのに……。一体、誰からだろう?',
|
221
|
+
'茜さす夕暮れ。太陽は沈みかけ、空は血のように赤い。不安な気持ちが広がっていく……。',
|
222
|
+
'美味しそうな香りが漂ってきて、急に空腹を感じる。今日は何を食べようかなぁ?',
|
223
|
+
'甲高い泣き声が、響き渡る。猫や子供がどこかで泣いているのか? それとも……。',
|
224
|
+
'寝苦しくて目を覚ます。何か悪夢を見ていたようだが……。あれ、意識はあるのに身体が動かない!',
|
225
|
+
]
|
226
|
+
|
227
|
+
return get_table_by_2d6(table)
|
228
|
+
end
|
229
|
+
|
230
|
+
# 狂騒の二〇年代シーン表
|
231
|
+
def get_mania_scene_table
|
232
|
+
table = [
|
233
|
+
'苔のこびりつく巨大な岩が並ぶ、川に浮かぶ島。何を祀っているのかも分からない祭壇があり、いわく言いがたい雰囲気を漂わせる。',
|
234
|
+
'もぐり酒場。看板もない地下の店は、街の男や酌婦たちで騒がしい。',
|
235
|
+
'遺跡の中。誰が建てたとも知れぬ、非ユークリッド幾何学的な建築は、中を歩く者の正気を、徐々に蝕んでいく。',
|
236
|
+
'大学図書館。四十万冊を超える蔵書の中には、冒涜的な魔道書も含まれているという。',
|
237
|
+
'強い風にのって、どこからか磯の香りが漂ってくる。海は遠いはずだが……。',
|
238
|
+
'多くの人でごったがえす街角。ここならば、何者が混じっていても、気付かれることはない。',
|
239
|
+
'深い闇の中。その向こうには、名状しがたきなにものかが潜んでいそうだ。',
|
240
|
+
'歴史ある新聞社。休むことなく発行し続けた、百年分におよぶ新聞が保管されている。',
|
241
|
+
'古い墓地。捻れた木々の間に、古びて墓碑銘も読めぬような墓石が並ぶ。いくつかの墓石はなぜか傾いている。',
|
242
|
+
'河岸に建つ工場跡。ずいぶん前に空き家になったらしく、建物は崩れかけている。どうやら浮浪者の住処になっているらしい。',
|
243
|
+
'静かな室内。なにか、不穏な気配を感じるが……あれはなんだ? 窓に、窓に!',
|
244
|
+
]
|
245
|
+
|
246
|
+
return get_table_by_2d6(table)
|
247
|
+
end
|
248
|
+
|
249
|
+
# 暗黒のヴィクトリアシーン表
|
250
|
+
def get_dark_scene_table
|
251
|
+
table = [
|
252
|
+
'霊媒師を中心に円卓を取り囲む人々が、降霊会を行っている。薄暗い部屋の中に怪しげなエクトプラズムが漂い始める。',
|
253
|
+
'労働者達の集うパブ。女給が運ぶエールやジンを、赤ら顔の男たちが飲み干している。',
|
254
|
+
'血の香りの漂う場所。ここで何があったのだろうか……。',
|
255
|
+
'売春宿の建ち並ぶ貧民街。軒先では娼婦たちが、客を待ち構えている。',
|
256
|
+
'人々でごったがえす、騒がしい通り。様々な噂話が飛び交っている。東洋人を初めとした、外国人の姿も目立つ。',
|
257
|
+
'霧深い街角。ガス灯の明かりだけが、石畳を照らし出している。',
|
258
|
+
'静まり返った部屋の中。ここならば、何をしても余計な詮索はされないだろう。',
|
259
|
+
'汽笛の響く波止場。あの船は、外国へと旅立つのだろうか。',
|
260
|
+
'書物の溢れる場所。調べ物をするにはもってこいだが。',
|
261
|
+
'貴族や資産階級の人々が集うパーティ。上品な微笑みの下では、どんな企みが進んでいるのだろうか。',
|
262
|
+
'静かな湖のほとり。草むらでは野生の兎が飛びはねている。',
|
263
|
+
]
|
264
|
+
return get_table_by_2d6(table)
|
265
|
+
end
|
266
|
+
|
267
|
+
# 形容表
|
268
|
+
def get_description_table
|
269
|
+
table = [
|
270
|
+
[11, '青ざめた'],
|
271
|
+
[12, '血をしたたらせた'],
|
272
|
+
[13, 'うろこ状の'],
|
273
|
+
[14, '冒涜的な'],
|
274
|
+
[15, '円筒状の'],
|
275
|
+
[16, '無限に増殖する'],
|
276
|
+
[22, '不規則な'],
|
277
|
+
[23, 'ガーガー鳴く'],
|
278
|
+
[24, '無数の'],
|
279
|
+
[25, '毛深い'],
|
280
|
+
[26, '色彩のない'],
|
281
|
+
[33, '伸縮する'],
|
282
|
+
[34, 'みだらな'],
|
283
|
+
[35, '膨れ上がった'],
|
284
|
+
[36, '巨大な'],
|
285
|
+
[44, '粘液まみれの'],
|
286
|
+
[45, '絶えず変化する'],
|
287
|
+
[46, '蟲まみれの'],
|
288
|
+
[55, 'キチン質の'],
|
289
|
+
[56, '「本体表を使用する」のような'],
|
290
|
+
[66, '虹色に輝く'],
|
291
|
+
]
|
292
|
+
|
293
|
+
return get_table_by_d66_swap(table)
|
294
|
+
end
|
295
|
+
|
296
|
+
# 本体表
|
297
|
+
def get_body_table
|
298
|
+
table = [
|
299
|
+
[11, '人間'],
|
300
|
+
[12, '犬'],
|
301
|
+
[13, 'ネズミ'],
|
302
|
+
[14, '幽鬼'],
|
303
|
+
[15, 'なめくじ'],
|
304
|
+
[16, '蟲'],
|
305
|
+
[22, '顔'],
|
306
|
+
[23, '猫'],
|
307
|
+
[24, 'ミミズ'],
|
308
|
+
[25, '牛'],
|
309
|
+
[26, '鳥'],
|
310
|
+
[33, '半魚人'],
|
311
|
+
[34, '人造人間'],
|
312
|
+
[35, '蛇'],
|
313
|
+
[36, '老人'],
|
314
|
+
[44, 'アメーバ'],
|
315
|
+
[45, '女性'],
|
316
|
+
[46, '機械'],
|
317
|
+
[55, 'タコ'],
|
318
|
+
[56, '「部位表」を使用する'],
|
319
|
+
[66, '小人'],
|
320
|
+
]
|
321
|
+
|
322
|
+
return get_table_by_d66_swap(table)
|
323
|
+
end
|
324
|
+
|
325
|
+
# 部位表
|
326
|
+
def get_parts_table
|
327
|
+
table = [
|
328
|
+
[11, '胴体'],
|
329
|
+
[12, '足'],
|
330
|
+
[13, '腕'],
|
331
|
+
[14, '髪の毛/たてがみ'],
|
332
|
+
[15, '口'],
|
333
|
+
[16, '乳房'],
|
334
|
+
[22, '顔'],
|
335
|
+
[23, '肌'],
|
336
|
+
[24, '瞳'],
|
337
|
+
[25, '尾'],
|
338
|
+
[26, '触手'],
|
339
|
+
[33, '鼻'],
|
340
|
+
[34, '影'],
|
341
|
+
[35, '牙'],
|
342
|
+
[36, '骨'],
|
343
|
+
[44, '宝石'],
|
344
|
+
[45, '翼'],
|
345
|
+
[46, '脳髄'],
|
346
|
+
[55, '舌'],
|
347
|
+
[56, '枝や葉'],
|
348
|
+
[66, '内臓'],
|
349
|
+
]
|
350
|
+
|
351
|
+
return get_table_by_d66_swap(table)
|
352
|
+
end
|
353
|
+
|
354
|
+
# 感情表
|
355
|
+
def get_fortunechange_table
|
356
|
+
table = [
|
357
|
+
'共感(プラス)/不信(マイナス)',
|
358
|
+
'友情(プラス)/怒り(マイナス)',
|
359
|
+
'愛情(プラス)/妬み(マイナス)',
|
360
|
+
'忠誠(プラス)/侮蔑(マイナス)',
|
361
|
+
'憧憬(プラス)/劣等感(マイナス)',
|
362
|
+
'狂信(プラス)/殺意(マイナス)',
|
363
|
+
]
|
364
|
+
|
365
|
+
return get_table_by_1d6(table)
|
366
|
+
end
|
367
|
+
|
368
|
+
# 職業表
|
369
|
+
def get_job_table
|
370
|
+
table = [
|
371
|
+
[11, '考古学者≪情景≫≪考古学≫'],
|
372
|
+
[12, 'ギャング≪拷問≫≪怒り≫'],
|
373
|
+
[13, '探偵≪第六感≫≪数学≫'],
|
374
|
+
[14, '警察≪射撃≫≪追跡≫'],
|
375
|
+
[15, '好事家≪芸術≫≪人類学≫'],
|
376
|
+
[16, '医師≪切断≫≪医学≫'],
|
377
|
+
[22, '教授 知識分野から好きなものを二つ'],
|
378
|
+
[23, '聖職者≪恥じらい≫≪愛≫'],
|
379
|
+
[24, '心理学者 情動分野から好きなものを二つ'],
|
380
|
+
[25, '学生 知識分野と情動分野から好きなものを一つずつ'],
|
381
|
+
[26, '記者≪驚き≫≪メディア≫'],
|
382
|
+
[33, '技術者≪電子機器≫≪機械≫'],
|
383
|
+
[34, '泥棒≪物陰≫≪罠≫'],
|
384
|
+
[35, '芸能人≪悦び≫≪芸術≫'],
|
385
|
+
[36, '作家≪憂い≫≪教養≫'],
|
386
|
+
[44, '冒険家≪殴打≫≪乗物≫'],
|
387
|
+
[45, '司書≪整理≫≪メディア≫'],
|
388
|
+
[46, '料理人≪焼却≫≪味≫'],
|
389
|
+
[55, 'ビジネスマン≪我慢≫≪効率≫'],
|
390
|
+
[56, '夜の蝶≪笑い≫≪官能≫'],
|
391
|
+
[66, '用心棒 好きな暴力×2'],
|
392
|
+
]
|
393
|
+
|
394
|
+
return get_table_by_d66_swap(table)
|
395
|
+
end
|
396
|
+
|
397
|
+
# バッドエンド表
|
398
|
+
def get_badend_table
|
399
|
+
table = [
|
400
|
+
'あなたの周りに漆黒の闇が、異形の前肢が、無数の触手が集まってくる。彼らは、新たな仲間の誕生を祝福しているのだ。あなたは、もう怪異に怖がることはない。なぜなら、あなた自身が怪異となったからだ。以降、あなたは怪異のNPCとなって登場する。',
|
401
|
+
lambda { return "牢獄のような、手術室のような薄暗い部屋に監禁される。そして、毎日のようにひどい拷問を受けることになった。何とか隙を見て逃げ出すことができたが……。#{get_random_skill_table_text_only}の特技が【恐怖心】になる。" },
|
402
|
+
'間一髪のところを、謎の組織のエージェントに助けられる。「君は見所がある。どうだい? 我々と一緒にやってみないか」あなたは望むなら、忍者/魔法使い/ハンターとして怪異と戦うことができる。その場合、あなたは別のサイコロ・フィクションのキャラクターとして生まれ変わる。',
|
403
|
+
'病院のベッドで目を覚ます。長い間、ひどい悪夢を見ていたような気がする。そのセッションの後遺症判定は、マイナス1の修正がつき、ファンブル値が1上昇する。',
|
404
|
+
'どこかの民家で目を覚ます。素敵な人物に助けられ、手厚い介護を受けたようだ。特にペナルティはなし。',
|
405
|
+
'「危ない!」大いなる絶望が、あなたに襲いかかってくる。1D6マイナス1点のダメージを受ける。これによって【生命力】が0点になった場合、あなたは死亡する。ただし、あなたにプラスの【感情】を持つNPCがいた場合、そのNPCが、そのダメージを無効化してくれる。',
|
406
|
+
'別の新たな怪事件に巻き込まれる。苦労のすえ、そちらは何とか無事解決! 特にペナルティはなし。',
|
407
|
+
'大きな傷を負い、生死の境をさまよう。好きな特技で判定を行うこと。失敗すると死亡する。このとき、減少している【生命力】の分だけマイナスの修正がつく。',
|
408
|
+
'目が覚めると見慣れない場所にいた。ここはどこだ? 私は誰だ? どうやら、恐怖のあまり、記憶を失ってしまったようだ。功績点があれば、それを1点失う。',
|
409
|
+
lambda { return "目を覚ますと、そこはいつもの場所だった。しかし、どこか違和感を覚える。君たち以外、誰も事件のことを知らないようだ。死んだはずのあの人物も生きている。時間を旅したのか、ここは違う世界線か……? #{get_random_skill_table_text_only}の特技が【恐怖心】になる。" },
|
410
|
+
'振り返ると、そこには圧倒的な「それ」が待ち構えていた。無慈悲な一撃が、あなたを襲い、あなたは死亡する。',
|
411
|
+
]
|
412
|
+
return get_table_by_2d6(table)
|
413
|
+
end
|
414
|
+
|
415
|
+
# 指定特技ランダム決定表
|
416
|
+
def get_random_skill_table
|
417
|
+
skillTableFull = [
|
418
|
+
['暴力', ['焼却', '拷問', '緊縛', '脅す', '破壊', '殴打', '切断', '刺す', '射撃', '戦争', '埋葬']],
|
419
|
+
['情動', ['恋', '悦び', '憂い', '恥じらい', '笑い', '我慢', '驚き', '怒り', '恨み', '哀しみ', '愛']],
|
420
|
+
['知覚', ['痛み', '官能', '手触り', 'におい', '味', '物音', '情景', '追跡', '芸術', '第六感', '物陰']],
|
421
|
+
['技術', ['分解', '電子機器', '整理', '薬品', '効率', 'メディア', 'カメラ', '乗物', '機械', '罠', '兵器']],
|
422
|
+
['知識', ['物理学', '数学', '化学', '生物学', '医学', '教養', '人類学', '歴史', '民俗学', '考古学', '天文学']],
|
423
|
+
['怪異', ['時間', '混沌', '深海', '死', '霊魂', '魔術', '暗黒', '終末', '夢', '地底', '宇宙']],
|
424
|
+
]
|
425
|
+
|
426
|
+
skillTable, total_n = get_table_by_1d6(skillTableFull)
|
427
|
+
tableName, skillTable = *skillTable
|
428
|
+
skill, total_n2 = get_table_by_2d6(skillTable)
|
429
|
+
return "「#{tableName}」≪#{skill}≫", "#{total_n},#{total_n2}"
|
430
|
+
end
|
431
|
+
|
432
|
+
# 特技だけ抜きたい時用 あまりきれいでない
|
433
|
+
def get_random_skill_table_text_only
|
434
|
+
text, = get_random_skill_table
|
435
|
+
return text
|
436
|
+
end
|
437
|
+
|
438
|
+
# 指定特技ランダム決定(暴力)
|
439
|
+
def get_violence_skill_table
|
440
|
+
table = [
|
441
|
+
'焼却',
|
442
|
+
'拷問',
|
443
|
+
'緊縛',
|
444
|
+
'脅す',
|
445
|
+
'破壊',
|
446
|
+
'殴打',
|
447
|
+
'切断',
|
448
|
+
'刺す',
|
449
|
+
'射撃',
|
450
|
+
'戦争',
|
451
|
+
'埋葬',
|
452
|
+
]
|
453
|
+
return get_table_by_2d6(table)
|
454
|
+
end
|
455
|
+
|
456
|
+
# 指定特技ランダム決定(情動)
|
457
|
+
def get_emotion_skill_table
|
458
|
+
table = [
|
459
|
+
'恋',
|
460
|
+
'悦び',
|
461
|
+
'憂い',
|
462
|
+
'恥じらい',
|
463
|
+
'笑い',
|
464
|
+
'我慢',
|
465
|
+
'驚き',
|
466
|
+
'怒り',
|
467
|
+
'恨み',
|
468
|
+
'哀しみ',
|
469
|
+
'愛',
|
470
|
+
]
|
471
|
+
return get_table_by_2d6(table)
|
472
|
+
end
|
473
|
+
|
474
|
+
# 指定特技ランダム決定(知覚)
|
475
|
+
def get_perception_skill_table
|
476
|
+
table = [
|
477
|
+
'痛み',
|
478
|
+
'官能',
|
479
|
+
'手触り',
|
480
|
+
'におい',
|
481
|
+
'味',
|
482
|
+
'物音',
|
483
|
+
'情景',
|
484
|
+
'追跡',
|
485
|
+
'芸術',
|
486
|
+
'第六感',
|
487
|
+
'物陰',
|
488
|
+
]
|
489
|
+
return get_table_by_2d6(table)
|
490
|
+
end
|
491
|
+
|
492
|
+
# 指定特技ランダム決定(技術)
|
493
|
+
def get_skill_skill_table
|
494
|
+
table = [
|
495
|
+
'分解',
|
496
|
+
'電子機器',
|
497
|
+
'整理',
|
498
|
+
'薬品',
|
499
|
+
'効率',
|
500
|
+
'メディア',
|
501
|
+
'カメラ',
|
502
|
+
'乗物',
|
503
|
+
'機械',
|
504
|
+
'罠',
|
505
|
+
'兵器',
|
506
|
+
]
|
507
|
+
return get_table_by_2d6(table)
|
508
|
+
end
|
509
|
+
|
510
|
+
# 指定特技ランダム決定(知識)
|
511
|
+
def get_knowledge_skill_table
|
512
|
+
table = [
|
513
|
+
'物理学',
|
514
|
+
'数学',
|
515
|
+
'化学',
|
516
|
+
'生物学',
|
517
|
+
'医学',
|
518
|
+
'教養',
|
519
|
+
'人類学',
|
520
|
+
'歴史',
|
521
|
+
'民俗学',
|
522
|
+
'考古学',
|
523
|
+
'天文学',
|
524
|
+
]
|
525
|
+
return get_table_by_2d6(table)
|
526
|
+
end
|
527
|
+
|
528
|
+
# 指定特技ランダム決定(怪異)
|
529
|
+
def get_mystery_skill_table
|
530
|
+
table = [
|
531
|
+
'時間',
|
532
|
+
'混沌',
|
533
|
+
'深海',
|
534
|
+
'死',
|
535
|
+
'霊魂',
|
536
|
+
'魔術',
|
537
|
+
'暗黒',
|
538
|
+
'終末',
|
539
|
+
'夢',
|
540
|
+
'地底',
|
541
|
+
'宇宙',
|
542
|
+
]
|
543
|
+
return get_table_by_2d6(table)
|
544
|
+
end
|
545
|
+
|
546
|
+
# 会話ホラースケープ表
|
547
|
+
def get_conversation_horror_table
|
548
|
+
table = [
|
549
|
+
"指定特技:死\n会話の最中、あなたはふと、相手の肩越しに目を向ける。なんの前触れもなく、遠くの建物の屋上から女が飛び降りた。声を上げる暇もなく、彼女は吸い込まれるように地面に叩きつけられる。距離があるにもかかわらず、女と目が合ってしまった。―それ以降、女の顔が脳裏にこびりついて、離れようとしない……。",
|
550
|
+
"指定特技:殴打\n地面に横たわった相手を見ながら、あなたは冷や汗が背中に伝うのを感じていた。相手は倒れたまま、不自然に体をねじ曲げて、ぴくりとも動かない。じわじわと血溜まりが広がっていく……。――殺してしまった。動揺して瞬きしたとき、相手の身体は消えていた。血溜まりもなくなっている。あなたは茫然と立ちすくむ。幻覚だったのだろうか……?",
|
551
|
+
"指定特技:電子機器\nあなたが電話で相手と話をしていると、不意に、相手が黙り込んだ。「……なんだあれ?」独り言のように言って、それから慌てたような声を出した。「こっち来る……こっち来る!うわっ!うわああああっ!助けて!助けて!!」それを最後に、電話はぶつりと切れる。かけ直すと話し中だ。ずっと。",
|
552
|
+
"指定特技:物音\nあなたが電話で相手と話していると、ぶつぶつ言う声が聞こえてくる。混線だろうか?不思議に思って聞いているうちに、頭がぼんやりしてくる。ぶつぶつ、ぶつぶつ、ぶつぶつ、ぶつぶつ……。気が付くと、電話をもったままぼーっと立っていた。ただ、とても怖いことを言われたような気がしている。そもそも、あなたは誰と話をしていたんだろう?",
|
553
|
+
"指定特技:拷問\n会話の最中、血の味を感じた。同時に、口の中にごろごろした違和感を覚える。相手が真っ青になってあなたの顔を指差す。どうしたのか訊ねようと口を開くと、ぽろりと何かが地面に落ちた。見下ろすと、血溜まりの中に白々と、あなたの歯が一本落ちていた。",
|
554
|
+
"指定特技:人類学\n会話の最中、視界に違和感を覚えて、あなたは瞬きする。相手の顔が、変になっていた。引き延ばして、かき回したように、グロテスクに歪んでいる。えっ?と思ってよく見るが、歪みは変わらない。相手はまったく気付いていないようだ。きつく目を瞑ってから見直すと、ようやく歪みは消えた。君の心に一つの疑いが生まれる。目の前の相手は、本当に人間なのだろうか?",
|
555
|
+
]
|
556
|
+
return get_table_by_1d6(table)
|
557
|
+
end
|
558
|
+
|
559
|
+
# 街中ホラースケープ表
|
560
|
+
def get_ville_horror_table
|
561
|
+
table = [
|
562
|
+
"指定特技:乗物\nキキィーッ!激しいブレーキ音、そして鈍い音。はっとして振り返ると、止まった車と、その前に倒れている人が目に入った。交通事故だ!慌てて駆け寄り、被害者の顔を見た途端、あなたは凍り付いた。倒れているのは、あなただった。――えっ!?驚いて瞬きすると、路上のあなたも、車も消えていた。",
|
563
|
+
"指定特技:情景\n通りすがりの家の屋根に誰かが立っている。あんなところで何を……?その誰かは踊りを踊っているように見えた。手足を振り回し、頭を激しく動かして、踊っている。尋常な様子ではない。狂ったように踊っている。見ているうちにものすごく不吉な気分になってきた。見たくないのに、どういうわけか、目を逸らすことができない。不吉な予感はどんどん強くなってくる……。",
|
564
|
+
"指定特技:終末\nウゥゥゥゥゥゥゥゥ………… 街にサイレンが鳴り響く。どこで鳴っているのか、いつまで鳴っているのか。こんなに大きな音なのに、どうして誰も騒がないのだろう。不思議に思って歩いていると、道を向こうから歩いてくる人影がある。怪我をしているのか、よろめいて、今にも倒れそうになりながら、がくり、がくりと不自然な歩き方で近づいてくる。あれはいったい………?",
|
565
|
+
"指定特技:脅す\n歩いていると、不意に静かになった。あたりを見渡すと、人も車も誰もいない。無人の街が、どこまでも広がっている。さっきまでたくさん人がいたのに……!?「おい!何やってるんだ!」突然怒鳴られてぎくりとする。振り返ると、作業着をきた男性がこっちへ走ってきていた。「馬鹿野郎!こんなところに来たら――」最後まで聞かないうちに、不意に音が戻ってきた。人と車が行き交う、元通りの街だ。今のは何だったんだ……?",
|
566
|
+
"指定特技:混沌\n電柱の根元に、女性がうずくまっている。お腹を押さえて、苦しそうに顔を伏せている。「大丈夫ですか?」近づいて声をかけたあなたに、女性は頷いた。「はい――ありがとうございます。」そう言って顔を上げた女性の顔には、何もなかった。つるりとした剥き玉子のような皮膚が続いているだけだった。うわっ!?のけぞった途端、意識が遠ざかって、気がつくとあなたは電柱の根元にうずくまっていた。",
|
567
|
+
"指定特技:笑い\n駅に着くと、やけに混雑している。人身事故で電車が止まっているようだ。ツイてないな。そう思っていると、改札付近の人ごみの中から、和服の女性が急ぎ足であなたのほうへ近づいてきた。女性は満面の笑みを浮かべていた。独りごとを言っているのか、口が動いている。すれ違いざまに、女性の声が耳に入った。「やってやった。やってやった。やってやった。ざまあみろ」えっ、と思って振り返るあなたを残して、女性は人ごみの中へ消えていった。",
|
568
|
+
]
|
569
|
+
|
570
|
+
return get_table_by_1d6(table)
|
571
|
+
end
|
572
|
+
|
573
|
+
# 不意訪問ホラースケープ表
|
574
|
+
def get_inattendu_horror_table
|
575
|
+
table = [
|
576
|
+
"指定特技:驚き\nバタバタバタッ!突然の物音に、あなたはぎょっとして振り仰ぐ。天井裏を何かが動き回っているようだ。動物が入り込んだのだろうか?それにしては大きい音だ。――まるで子供がめちゃめちゃに走り回っているような。物音は一瞬止まり、すぐに再開した。ドン!ドン!ドン!ドン!飛び跳ねるような音がするのは、ちょうどあなたの真上だ……。",
|
577
|
+
"指定特技:宇宙\n窓から光が差し込む。窓に目を向けてみると、白く輝く巨大な飛行物体が浮かんでいた。魅せられたように見つめていると、鳥や飛行機とは思えないような、激しく不規則な動きで飛び回り始める。なんだろう、あれは?不思議に思っていると、背後から誰かが囁いた。「あれは………だよ」はっと気付くと、いつの間にか、まったく違う場所にいた。手のひらに何か埋まっているような硬い感触がある……。",
|
578
|
+
"指定特技:におい\n奇妙な荷物が届いた。ガムテープでぐるぐる巻きにされた大きな段ボールだ。差出人名を書いた紙がはってあるが、滲んでしまって読めない。箱の中身は土だった。陶器のかけらや石ころが混ざった、変な臭いのする土が入っていた。わけがわからないので中身は捨てたが、それ以降なんだかツキが落ちている気がする……。",
|
579
|
+
"指定特技:我慢\n壁の向こうから誰かが話している声が聞こえてくる。「……だから。こいつは……しないと」「そうね……わいそ……さなきゃ」ぼそぼそ、ぼそぼそと、陰気な調子で会話は続く。何を話しているのか、内容はよくわからないが、なんとなく自分のことを言われているようで薄気味が悪い。気になって壁に耳を当てたとき、はっきりした声が、壁の向こうからこう言った。「……ねえ、ちゃんと聞いてる?」",
|
580
|
+
"指定特技:手触り\nぽたり。ぽたり。首筋に落ちた生暖かい水滴の感触に、あなたは眉を寄せた。気がつくと机の上に、赤い雫が落ちている。鉄臭いにおいが鼻を突く。ぽたり。ぽたり。ぽたり。雫は勢いを増し、次々と落ちてきて、机の上に広がってゆく。ゆっくりと見上げると、天井には大きく赤黒いしみが広がっていた。ぽたり。ぽたりぽたり。ぽたり。――ぼたぼたぼたっ!高まる水音にあなたは立ちすくむ。天井裏に、いったい何が……?",
|
581
|
+
"指定特技:地底\n見慣れたはずの場所に、見慣れない扉を見つけた。開けてみると、長い下り階段が闇の中に伸びている。不審に思って下りてみると……そこは地下室だった。こんな場所があったなんて。明かりを片手に進んでいくと、何かが近づいてくる気配がする。闇の中から、何者かが、あなたの名を呼んだ。",
|
582
|
+
]
|
583
|
+
|
584
|
+
return get_table_by_1d6(table)
|
585
|
+
end
|
586
|
+
|
587
|
+
# 廃墟遭遇ホラースケープ表
|
588
|
+
def get_ruines_horror_table
|
589
|
+
table = [
|
590
|
+
"指定特技:暗黒\n重く頑丈そうな扉を開ける。部屋の中は真っ暗だった。灯りで照らしてみると、別の部屋へと続く道が何本か見つかった。目ぼしいものはなさそうだ。一旦、入り口に戻ろうと、入ってきた扉のほうを振り返る。そこには壁しかなかった。あの重厚な扉がなくなっている。そんな馬鹿な。しかし、何度探してもどの壁にも扉らしきものは見当たらない。仕方なく、通路を進むことにしたが、じわじわと不吉な気分が込み上げてくる。……あの扉は、開けてはいけなかったのではないだろうか?",
|
591
|
+
"指定特技:整理\nあなたは廃墟の中、ブーン……という低い音に気付いた。冷蔵庫だ。どこから電気が来ているのか、白い冷蔵庫が廃屋の片隅にひっそりと佇んでいる。ガチャリと扉を引き開けてみたあなたは、中にいた何かと、目が合った。……気がつくと、あなたは暗くて冷たいところで体を丸めている。ブーン…という音が聞こえている。ここは涼しくて、狭くて――とても居心地がいい。",
|
592
|
+
"指定特技:追跡\n廃屋のふすまを開けたとき、あなたは強い違和感を覚える。分厚く埃が積もったその部屋には、濃厚な気配が漂っていた。ちゃぶ台の上には中身の残った湯飲み。さっきまで誰かが座っていたみたいに凹んだ座布団。なぜこの茶の間には、こんなに生活感があるのだろうか……。",
|
593
|
+
"指定特技:愛\n廃墟を歩いていると、突然、あなたの携帯に電話がかかってきた。静まりかえった廃墟に鳴り響く着信音に肝を潰しつつも出てみると、電話の向こうから、あなたの祖母がいきなり叱りつけてきた。「あんた、何やってんの!そんなとこ行ったらダメでないの!」え?なぜ祖母が……?「早くそこから出なさい!大変なことになるよ!」わけがわからずに口ごもっているうちに、電話は切れた。ディスプレイには、「圏外」と表示されていた。",
|
594
|
+
"指定特技:罠\n廃墟を歩いていると、いきなり足に激痛が走った。悲鳴をこらえて下を見ると、あなたの足首をがっちりとトラバサミが捕えている。なぜこんな場所に、こんな罠が……?苦労してトラバサミを解除して、改めて周りを見たとき、あなたは愕然とする。罠は一つだけではなかった。瓦礫の下に隠すようにして、いくつもいくつも、トラバサミが仕掛けられていた。",
|
595
|
+
"指定特技:薬品\n不意に、シンナーの匂いが鼻を刺した。廃墟の壁にべったりと、赤いペンキの文字が書かれている。何が書いてあるのかは判然としないが、ひたすら悪意と憎しみを塗り込めたようなタッチにおぞけが走る。そのうちあることに気付いて、あなたは総毛立った。ペンキがまだ新しい。……塗り立てのように新しいのだ。",
|
596
|
+
]
|
597
|
+
|
598
|
+
return get_table_by_1d6(table)
|
599
|
+
end
|
600
|
+
|
601
|
+
# 野外遭遇ホラースケープ表
|
602
|
+
def get_Mlle_horror_table
|
603
|
+
table = [
|
604
|
+
"指定特技:痛み\nブ―――――――ン耳元で甲高い羽音が響いてくる。見たことのない真っ赤な羽虫の群れが飛んでいた。ブ―――――――ン。羽虫を追い払うように、腕を振るう。痛いっ。腕に刺すような痛みが走った。ブ―――――――ン虫たちは、どこかへ去っていく。みるみる腕の表面に不気味な水疱がぽつぽつと浮かび上がってきた。",
|
605
|
+
"指定特技:夢\n木々の間で、何か大きなものが動いているのが見える。肉の腐ったような臭いがぷんと鼻を突く。まだら模様のあれは……毛皮?それとも、ずたずたになった服の切れ端?そいつがあなたを見た。木の葉の合間から除く目は、まるで人のような――目が合った瞬間から記憶がない。気が付くと、人の髪に似た黒い毛が、あなたの全身に付着していた。",
|
606
|
+
"指定特技:恨み\n林の中で出くわした大樹の幹には、たくさんの藁人形が釘で打ち付けられていた。うわあ、と思いながら見上げるうちに、気のめいる事実に気付いてしまった。新しめの藁人形の一つに、名前の書かれた札が貼り付けられている。――ひどく、見覚えのある名前だった。",
|
607
|
+
"指定特技:深海\n……おーい。……お―――い。遠く、呼ぶ声を聴いた気がして、波の合間に目を凝らす。つるりとした黒い影が、浮きつ沈みつ、あなたを差し招いている。ひい、ふう、みい、よう……七人。七人の黒い影が、波間から、あなたに手を振っている。――なんだか、頭がぼうっとしてきた。",
|
608
|
+
"指定特技:物陰\n藪の中に廃車が埋もれている。特徴のない白いバンだ。窓は真っ黒な煤で汚れていて、何も見えない。車体は錆び付いて、塗料も剥がれ、打ち棄てられて久しい廃車であることは確実だ。――それなのに、廃車の中から刺すような視線を感じる。ロックが外れる音がして、ゆっくりと後部座席のドアが開き始める……。",
|
609
|
+
"指定特技:焼却\nパチ……パチ……。火の燃える音がする。空き地で焚火が炎を上げていた。そばには誰もいない。心温まる思いで立ち止まり、木の枝で焚火をかき回していると、炎の中から軽やかな笑い声が聞こえた。ぎょっとするあなたの足許を、猫のような大きさの何かがするりと抜けていった。焚火に目を戻すと、そこにはただ、くすぶる骨の塊が残されているだけだった。",
|
610
|
+
]
|
611
|
+
|
612
|
+
return get_table_by_1d6(table)
|
613
|
+
end
|
614
|
+
|
615
|
+
# 情報潜在ホラースケープ表
|
616
|
+
def get_latence_horror_table
|
617
|
+
table = [
|
618
|
+
"指定特技:味\nのどの渇きを覚えた。調べ物を開始した時間から、時計の針は大分進んでいる。どうやら根をつめ過ぎたようだ。画面に目を戻しつつ、ペットボットルの水を口に含む。すると、口内に違和感が広がった。たまらず水を吐き出す。すると、真っ黒い液体が机の上の資料を汚した。口の中には、ドブ川のような臭いがこびりついている。確認したペットボトルの水は、透明なのだが……?",
|
619
|
+
"指定特技:カメラ\n資料の間から、黄ばんだ封筒に入った写真の束が出てきた。被写体は……あなただ。知らないうちに撮られた、あなたの写真が、何十枚も束ねられている。色褪せた写真を無造作に止めた輪ゴムは劣化して、ねばついていた。――だれが、こんな写真を?何の目的で……?",
|
620
|
+
"指定特技:メディア\nテレビのニュースを見ていると、それまで淀みなく喋っていたアナウンサーが、不意に黙り込んだ。どうしたんだろう、と思っていると、アナウンサーが奇妙なことを言い始めた。「死ぬこともあり得ます。と語りました。また、高確率で、災いが起こります。今日から明日にかけて、厳重に警戒してください。警戒してください。警戒してください」アナウンサーは、画面の向こうからあなたの目をじっと見つめている。あなたが戸惑っていると、ひとりでにテレビの電源が切れた。",
|
621
|
+
"指定特技:民俗学\n資料を漁るうちに、ある寒村に伝わるおぞましい風習に辿り着いた。暴力……儀式……生贄……。とてもまともな人間のやることとは思えない所業に震えあがる。その風習には、なぜか既視感があった。どこで読んだんだろう?考えるうちに、ある記憶が蘇った。あなたの幼い頃の記憶だった。いや……そんな、馬鹿な。あなたの故郷が、こんな寒村のはずがない……。",
|
622
|
+
"指定特技:魔術\n資料の中から、奇妙な古書が出てきた。皮装丁の豪華な本で、妙な臭いがする。文書は支離滅裂で、正気の人間が書いたとは思えない。だが、破れそうなページを一枚一枚めくっていくと、しだいに作者の言っていることがわかってくる。どんどん、どんどん、わかってくる。ああ、もう、わかる。完全にわかる。もう大丈夫だ。きっとこの本は、あなたに読まれるために書かれたのだ。",
|
623
|
+
"指定特技:歴史\n表紙のないレポートが見つかった。パラパラめくってみると、まさにあなたが今調べている件についての調査報告だった。もどかしいことに、あちこち墨塗りされていて、肝心のところがわからない。察するに、どうも、軍による調査のようだ。軍?なぜ軍隊がこの件を調べていたのだろう……?",
|
624
|
+
]
|
625
|
+
|
626
|
+
return get_table_by_1d6(table)
|
627
|
+
end
|
628
|
+
|
629
|
+
# 遭遇表・都市
|
630
|
+
def get_city_table
|
631
|
+
table = [
|
632
|
+
"できそこない×3 基本p246",
|
633
|
+
"にらむ人×1 デッドループp190 犬×1 基本p243",
|
634
|
+
"信奉者×2 基本p243",
|
635
|
+
"顔を隠した女×1 デッドループp192",
|
636
|
+
"幽霊自動車×1 デッドループp193",
|
637
|
+
"怨霊×1 基本p245",
|
638
|
+
]
|
639
|
+
|
640
|
+
return get_table_by_1d6(table)
|
641
|
+
end
|
642
|
+
|
643
|
+
# 遭遇表・山林
|
644
|
+
def get_mountainforest_table
|
645
|
+
table = [
|
646
|
+
"のっぺらぼう×3 デッドループp190",
|
647
|
+
"毒蟲の群れ×2 デッドループp191",
|
648
|
+
"熊×1 デッドループp191",
|
649
|
+
"巨大昆虫×1 デッドループp192",
|
650
|
+
"人狼×1 基本p265",
|
651
|
+
"くねくね×1 デッドループp193",
|
652
|
+
]
|
653
|
+
|
654
|
+
return get_table_by_1d6(table)
|
655
|
+
end
|
656
|
+
|
657
|
+
# 遭遇表・海辺
|
658
|
+
def get_seaside_table
|
659
|
+
table = [
|
660
|
+
"人魂×3 デッドループp190",
|
661
|
+
"深きもの×2 基本p261",
|
662
|
+
"星を渡るもの×1 基本p261",
|
663
|
+
"宇宙人×1 基本p257",
|
664
|
+
"魔女×1 基本p245",
|
665
|
+
"這いずるもの×1 基本p261",
|
666
|
+
]
|
667
|
+
|
668
|
+
return get_table_by_1d6(table)
|
669
|
+
end
|
670
|
+
|
671
|
+
# 残業ホラースケープ表
|
672
|
+
def get_overtime_horror_table
|
673
|
+
table = [
|
674
|
+
"指定特技:死\n窓に目をやったとき、窓の外を落下する人影と目が合った!慌てて窓辺に駆け寄るが、下には何もない。幻覚だったのだろうか……?",
|
675
|
+
"指定特技:機械\n突然、コピー機が唸りを上げて紙を吐き出し始めた。床に舞い散ったコピー用紙には、歪んだ人の顔のようなものが印刷されている。気味が悪い……。",
|
676
|
+
"指定特技:物陰\n蒼白い子供が机の下からあなたを見上げている。うわっ!と叫んで飛び退くと、子供の姿は消えた。",
|
677
|
+
"指定特技:手触り\n仕事をしていると、背後から長い黒髪が垂れ下がってきた。女の長い黒髪だ。……後ろで覗き込んでいるのは、一体誰だ?",
|
678
|
+
"指定特技:憂い\n視界の隅を、暗い顔の男が通り過ぎるのが見えた。振り返ってみても、誰もいない。誰だ?知らないぞ、あんな奴。",
|
679
|
+
"指定特技:暗黒\nバツン!突然の停電でフロアが闇に沈んだ。驚いて顔を上げると、闇の中にたくさんの人影が佇んで、じっとあなたを見ている……!",
|
680
|
+
]
|
681
|
+
|
682
|
+
return get_table_by_1d6(table)
|
683
|
+
end
|
684
|
+
|
685
|
+
# 残業電話表
|
686
|
+
def get_overtimephone_table
|
687
|
+
table = [
|
688
|
+
"「進捗どうですか?」クライアントからの進捗確認の電話。今やってるよ!電話の時間がもったいないんだよ!ストレスで胃が痛い。【生命力】マイナス1。",
|
689
|
+
"「仕様が変わりまして……」クライアントから仕様変更の連絡。今かよ!?殺すぞ!?せっかくの作業が無駄になる。PPマイナス1。",
|
690
|
+
"「最近電話に出ないけど……大丈夫?」恋人や家族など、大切な人からの電話。仕事中にかけてくるなよと思いつつも、少し気が紛れた。【正気度】1回復。",
|
691
|
+
"「特上寿司五人前お願いします!」間違い電話だった。驚かせやがって……。",
|
692
|
+
"「ちょっと、この前の仕事だけどどうなってるんだ!」別件のクレームの電話だ!疲れた精神にダメージを負って、【正気度】マイナス1。",
|
693
|
+
"「……ねばいいのに。」電話の向こうから地獄のような声が囁く。ぞっとして反射的に電話を切る。着信履歴は残っていない……なんだ今の!?《電子機器》で恐怖判定。",
|
694
|
+
]
|
695
|
+
|
696
|
+
return get_table_by_1d6(table)
|
697
|
+
end
|
698
|
+
|
699
|
+
# 残業シーン表
|
700
|
+
def get_overtimework_scene_table
|
701
|
+
table = [
|
702
|
+
"ジジッ……不意に蛍光灯がちらつく。電気系統がおかしいのだろうか?停電は勘弁してほしいのだが…。",
|
703
|
+
"ぴちょん。ぴちょん。どこからか水の滴る音が聞こえる。雨漏りか、蛇口の閉め忘れか?",
|
704
|
+
"ジャバーッ……ズゴゴゴゴ。トイレの水を流す音が響き渡る。誰かトイレにいたのか?それとも、他の階だろうか?",
|
705
|
+
"サイレンの音が近づいてきて、赤色灯の光が窓から射し込む。近くで何かがあったようだが……。",
|
706
|
+
"背後から誰かの話し声が聞こえた気がする。咄嗟に振り返るが……空耳だろうか?",
|
707
|
+
"窓ガラスの向こうに見える夜の灯りを切ない気持ちで見つめる。早く帰りたい……。",
|
708
|
+
"突如、携帯電話の音が鳴り響く。マナーモードにしていたはずなのに……。一体、誰からだろう?",
|
709
|
+
"不意の機械音に驚いてみると、ファックスが紙を吐き出している。こんな時間になんだろう?",
|
710
|
+
"美味しそうな香りが漂ってきて、急に空腹を感じる。どこから来たんだ、この匂いは?",
|
711
|
+
"気分転換に見ていたネットに夢中になって、ふと気付くと何分も経過……いかんいかん。",
|
712
|
+
"ガクンと船を漕いで、ハッと目を覚ました。慌てて時計を見る……えっ、もうこんな時間なの!?",
|
713
|
+
]
|
714
|
+
return get_table_by_2d6(table)
|
715
|
+
end
|
716
|
+
|
717
|
+
# 社名決定表1
|
718
|
+
def get_corporatenameone_table
|
719
|
+
table = [
|
720
|
+
"フライング",
|
721
|
+
"トラブル",
|
722
|
+
"ブラッド",
|
723
|
+
"プリティー",
|
724
|
+
"クリムゾン",
|
725
|
+
"ボンバー",
|
726
|
+
]
|
727
|
+
|
728
|
+
return get_table_by_1d6(table)
|
729
|
+
end
|
730
|
+
|
731
|
+
# 社名決定表2
|
732
|
+
def get_corporatenametwo_table
|
733
|
+
table = [
|
734
|
+
"ウィッチ―ズ",
|
735
|
+
"インテリジェンス",
|
736
|
+
"キャッツ",
|
737
|
+
"バード",
|
738
|
+
"ホラー",
|
739
|
+
"インセイン",
|
740
|
+
]
|
741
|
+
|
742
|
+
return get_table_by_1d6(table)
|
743
|
+
end
|
744
|
+
|
745
|
+
# 社名決定表3
|
746
|
+
def get_corporatenamethree_table
|
747
|
+
table = [
|
748
|
+
"(株)",
|
749
|
+
"(株)",
|
750
|
+
"(株)",
|
751
|
+
"(有)",
|
752
|
+
"(有)",
|
753
|
+
"(有)",
|
754
|
+
]
|
755
|
+
|
756
|
+
return get_table_by_1d6(table)
|
757
|
+
end
|
758
|
+
|
759
|
+
# 反応表
|
760
|
+
def get_reaction_scene_table
|
761
|
+
table = [
|
762
|
+
"「ちょっとこちらにきてもらえますか。」いきなり逮捕、拘束される。「反応表」を使用したキャラクターは、このシーンが終わってから2シーンの間、自分がシーンプレイヤーでないシーンに登場することができなくなる(マスターシーンには登場可能)。",
|
763
|
+
"「私が協力できるのはここまでだ。」協力を求めた人物は、怯えたような様子で手に持った包みをあなたに押し付けた。「反応表」を使用したキャラクターは、何か好きなアイテム一つを獲得する。",
|
764
|
+
"「その件は捜査中です。情報提供ありがとうございます。」協力を求めた人物は、にこにこ笑って、そう答える。何を言っても、同じ返答しか返ってこない。「反応表」を使用したキャラクターは、【正気度】を1点減少する。",
|
765
|
+
"「もしかして、お前、あの事件の関係者か……?」どうやら協力を求めた人物も、ちょうど同じ事件を調査していたようだ。いろいろ情報を提供してくれるようだ。「反応表」を使用したキャラクターは、以降、調査判定を行うときプラス1の修正がつく。",
|
766
|
+
"「夢でも見たんじゃないですか?」どんなに強く訴えても信じてもらえない。……もしかして、おかしいのは私の方なのか?情動の特技分野からランダムに特技一つを選んで恐怖判定を行う。",
|
767
|
+
"「はいはい。我々もヒマじゃないんだよ。」色々話しても相手にしてもらえない。門前払いを喰らう。",
|
768
|
+
"「ちょっと身体検査よろしいでしょうか?」怪しい人物だと思われたらしい。「反応表」を使用したキャラクターが、アイテムや、違法そうなプライズを持っていた場合、このシーンが終わってから2シーンの間、自分がシーンプレイヤーでないシーンに登場することができなくなる(マスターシーンには登場可能)。",
|
769
|
+
"「それは気になりますね。こちらでも調査してみましょう。」親身になって相談に乗ってくれる。何か分かったら連絡してくれると言うが……。1D6を振る。奇数なら、2シーン後に情報をくれる。「反応表」を使用したキャラクターは、好きな【秘密】一つを獲得する。偶数なら調査していたNPCが謎の死を遂げる。「反応表」を使用したキャラクターは、知識の特技分野からランダムに特技一つを選んで恐怖判定を行う。",
|
770
|
+
"「命が惜しければこれ以上関わるな。」あなたは人気のない場所に連れていかれ、殴られた。協力を求めた人物は、助けを求めたはずのあなたを激しく拒絶する。「反応表」を使用したキャラクターは、【生命力】を1点減少する。",
|
771
|
+
"「分かりました。念のためパトロールを強化しましょう。」周辺の警護を約束してくれる。「反応表」を使用したキャラクターは、このセッションの間、一度だけ自分が受けたダメージを無効化することができる。ダメージを無効化した場合、「反応表」を使用したキャラクターは、暴力の特技分野からランダムに一つを選んで恐怖判定を行う。",
|
772
|
+
"「……なんじゃこりゃぁっ!?」助けを求めた相手が突然死亡する。ヤツらの手は、こんなところまで及んでいるのか?「反応表」を使用したキャラクターは、暴力の特技分野からランダムに一つを選んで恐怖判定を行う。",
|
773
|
+
]
|
774
|
+
return get_table_by_2d6(table)
|
775
|
+
end
|
776
|
+
|
777
|
+
# 暫定整理番号作成表
|
778
|
+
def get_interim_reference_number
|
779
|
+
table = [
|
780
|
+
[11, '1'],
|
781
|
+
[12, '2'],
|
782
|
+
[13, '3'],
|
783
|
+
[14, '4'],
|
784
|
+
[15, '5'],
|
785
|
+
[16, '6'],
|
786
|
+
[22, 'G'],
|
787
|
+
[23, 'I'],
|
788
|
+
[24, 'J'],
|
789
|
+
[25, 'K'],
|
790
|
+
[26, 'O'],
|
791
|
+
[33, 'P'],
|
792
|
+
[34, 'Q'],
|
793
|
+
[35, 'S'],
|
794
|
+
[36, 'T'],
|
795
|
+
[44, 'U'],
|
796
|
+
[45, 'V'],
|
797
|
+
[46, 'X'],
|
798
|
+
[55, 'Y'],
|
799
|
+
[56, 'Z'],
|
800
|
+
[66, '-'],
|
801
|
+
]
|
802
|
+
|
803
|
+
number = @randomizer.roll_once(6)
|
804
|
+
total_n = number.to_s
|
805
|
+
counts = 3
|
806
|
+
if number <= 4
|
807
|
+
counts = number + 5
|
808
|
+
elsif number == 5
|
809
|
+
counts = 4
|
810
|
+
end
|
811
|
+
|
812
|
+
output = ''
|
813
|
+
counts.times do
|
814
|
+
character, number = get_table_by_d66_swap(table)
|
815
|
+
output += character
|
816
|
+
total_n += ",#{number}"
|
817
|
+
end
|
818
|
+
return output, total_n
|
819
|
+
end
|
820
|
+
end
|
821
|
+
end
|
822
|
+
end
|