bcdice 3.0.0.pre.alpha.1 → 3.0.0.pre.alpha.2
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 +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
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "bcdice/game_system/Cthulhu"
|
|
4
|
+
|
|
3
5
|
module BCDice
|
|
4
6
|
module GameSystem
|
|
5
|
-
class Cthulhu_Korean <
|
|
7
|
+
class Cthulhu_Korean < Cthulhu
|
|
6
8
|
# ゲームシステムの識別子
|
|
7
9
|
ID = 'Cthulhu:Korean'
|
|
8
10
|
|
|
@@ -45,195 +47,12 @@ module BCDice
|
|
|
45
47
|
위와 동일
|
|
46
48
|
INFO_MESSAGE_TEXT
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
register_prefix_from_super_class()
|
|
49
51
|
|
|
50
52
|
def initialize(command)
|
|
51
53
|
super(command)
|
|
52
|
-
@special_percentage = 20
|
|
53
|
-
@critical_percentage = 1
|
|
54
|
-
@fumble_percentage = 1
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def eval_game_system_specific_command(command)
|
|
58
|
-
case command
|
|
59
|
-
when /CCB/i
|
|
60
|
-
# 5%
|
|
61
|
-
@critical_percentage = 5
|
|
62
|
-
@fumble_percentage = 5
|
|
63
|
-
return getCheckResult(command)
|
|
64
|
-
when /CC/i
|
|
65
|
-
# 1%
|
|
66
|
-
@critical_percentage = 1
|
|
67
|
-
@fumble_percentage = 1
|
|
68
|
-
return getCheckResult(command)
|
|
69
|
-
when /RESB/i
|
|
70
|
-
# 5%
|
|
71
|
-
@critical_percentage = 5
|
|
72
|
-
@fumble_percentage = 5
|
|
73
|
-
return getRegistResult(command)
|
|
74
|
-
when /CBRB/i
|
|
75
|
-
# 5%
|
|
76
|
-
@critical_percentage = 5
|
|
77
|
-
@fumble_percentage = 5
|
|
78
|
-
return getCombineRoll(command)
|
|
79
|
-
when /RES/i
|
|
80
|
-
# 1%
|
|
81
|
-
@critical_percentage = 1
|
|
82
|
-
@fumble_percentage = 1
|
|
83
|
-
return getRegistResult(command)
|
|
84
|
-
when /CBR/i
|
|
85
|
-
# 1%
|
|
86
|
-
@critical_percentage = 1
|
|
87
|
-
@fumble_percentage = 1
|
|
88
|
-
return getCombineRoll(command)
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
return nil
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def getCheckResult(command)
|
|
95
|
-
broken_num = 0
|
|
96
|
-
diff = 0
|
|
97
|
-
|
|
98
|
-
if (m = /CC(B)?(\d+)<=(\d+)/i.match(command))
|
|
99
|
-
# /\(\d+\)/의()는 pattern-killer로 해석되는 듯 함
|
|
100
|
-
broken_num = m[2].to_i
|
|
101
|
-
diff = m[3].to_i
|
|
102
|
-
elsif (m = /CC(B)?<=(\d+)/i.match(command))
|
|
103
|
-
diff = m[2].to_i
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
output = ""
|
|
107
|
-
|
|
108
|
-
if diff > 0
|
|
109
|
-
output = "(1D100<=#{diff})"
|
|
110
|
-
|
|
111
|
-
if broken_num > 0
|
|
112
|
-
output += " 고장넘버[#{broken_num}]"
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
total_n = @randomizer.roll_once(100)
|
|
116
|
-
|
|
117
|
-
output += " > #{total_n}"
|
|
118
|
-
output += " > #{getCheckResultText(total_n, diff, broken_num)}"
|
|
119
|
-
else
|
|
120
|
-
# 1D100단순 치환 취급
|
|
121
|
-
# 필요없을지도
|
|
122
|
-
total_n = @randomizer.roll_once(100)
|
|
123
|
-
output = "(1D100) > #{total_n}"
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
return output
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
def getCheckResultText(total_n, diff, broken_num = 0)
|
|
130
|
-
result = ""
|
|
131
|
-
diff_special = 0
|
|
132
|
-
fumble = false
|
|
133
|
-
|
|
134
|
-
if @special_percentage > 0
|
|
135
|
-
# special의 값설정이 없는 경우 크리티컬/펌블 판정도 없다
|
|
136
|
-
diff_special = (diff * @special_percentage / 100).floor
|
|
137
|
-
if diff_special < 1
|
|
138
|
-
diff_special = 1
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
if (total_n <= diff) && (total_n < 100)
|
|
143
|
-
result = "성공"
|
|
144
|
-
|
|
145
|
-
if diff_special > 0
|
|
146
|
-
if total_n <= @critical_percentage
|
|
147
|
-
if total_n <= diff_special
|
|
148
|
-
result = "크리티컬/스페셜"
|
|
149
|
-
else
|
|
150
|
-
result = "크리티컬"
|
|
151
|
-
end
|
|
152
|
-
else
|
|
153
|
-
if total_n <= diff_special
|
|
154
|
-
result = "스페셜"
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
else
|
|
159
|
-
result = "실패"
|
|
160
|
-
|
|
161
|
-
if diff_special > 0
|
|
162
|
-
if (total_n >= (101 - @fumble_percentage)) && (diff < 100)
|
|
163
|
-
result = "펌블"
|
|
164
|
-
fumble = true
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
|
|
169
|
-
if broken_num > 0
|
|
170
|
-
if total_n >= broken_num
|
|
171
|
-
if fumble
|
|
172
|
-
result += "/고장"
|
|
173
|
-
else
|
|
174
|
-
result = "고장"
|
|
175
|
-
end
|
|
176
|
-
end
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
return result
|
|
180
|
-
end
|
|
181
|
-
|
|
182
|
-
def getRegistResult(command)
|
|
183
|
-
m = /RES(B)?([-\d]+)/i.match(command)
|
|
184
|
-
unless m
|
|
185
|
-
return "1"
|
|
186
|
-
end
|
|
187
|
-
|
|
188
|
-
value = m[2].to_i
|
|
189
|
-
target = value * 5 + 50
|
|
190
|
-
|
|
191
|
-
if target < 5
|
|
192
|
-
return "(1d100<=#{target}) > 자동실패"
|
|
193
|
-
end
|
|
194
|
-
|
|
195
|
-
if target > 95
|
|
196
|
-
return "(1d100<=#{target}) > 자동성공"
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
# 통상판정
|
|
200
|
-
total_n = @randomizer.roll_once(100)
|
|
201
|
-
result = getCheckResultText(total_n, target)
|
|
202
|
-
|
|
203
|
-
return "(1d100<=#{target}) > #{total_n} > #{result}"
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
def getCombineRoll(command)
|
|
207
|
-
m = /CBR(B)?\((\d+),(\d+)\)/i.match(command)
|
|
208
|
-
unless m
|
|
209
|
-
return "1"
|
|
210
|
-
end
|
|
211
|
-
|
|
212
|
-
diff_1 = m[2].to_i
|
|
213
|
-
diff_2 = m[3].to_i
|
|
214
|
-
|
|
215
|
-
total = @randomizer.roll_once(100)
|
|
216
|
-
|
|
217
|
-
result_1 = getCheckResultText(total, diff_1)
|
|
218
|
-
result_2 = getCheckResultText(total, diff_2)
|
|
219
|
-
|
|
220
|
-
successList = ["크리티컬/스페셜", "크리티컬", "스페셜", "성공"]
|
|
221
|
-
|
|
222
|
-
succesCount = 0
|
|
223
|
-
succesCount += 1 if successList.include?(result_1)
|
|
224
|
-
succesCount += 1 if successList.include?(result_2)
|
|
225
|
-
debug("succesCount", succesCount)
|
|
226
|
-
|
|
227
|
-
rank =
|
|
228
|
-
if succesCount >= 2
|
|
229
|
-
"성공"
|
|
230
|
-
elsif succesCount == 1
|
|
231
|
-
"부분적 성공"
|
|
232
|
-
else
|
|
233
|
-
"실패"
|
|
234
|
-
end
|
|
235
54
|
|
|
236
|
-
|
|
55
|
+
@locale = :ko_kr
|
|
237
56
|
end
|
|
238
57
|
end
|
|
239
58
|
end
|
|
@@ -29,7 +29,7 @@ module BCDice
|
|
|
29
29
|
例)BT1 BT2 BT[1...3]
|
|
30
30
|
INFO_MESSAGE_TEXT
|
|
31
31
|
|
|
32
|
-
register_prefix(
|
|
32
|
+
register_prefix('DB.*', 'BT.*', '3R6.*')
|
|
33
33
|
|
|
34
34
|
def replace_text(string)
|
|
35
35
|
return string unless string =~ /DB/i
|
|
@@ -78,13 +78,17 @@ module BCDice
|
|
|
78
78
|
diff = m[9].to_i
|
|
79
79
|
end
|
|
80
80
|
|
|
81
|
-
total, out_str
|
|
81
|
+
total, out_str = get_dice(mod, abl, skl)
|
|
82
82
|
output = "(#{string}) > #{out_str}"
|
|
83
83
|
|
|
84
84
|
if signOfInequality != "" # 成功度判定処理
|
|
85
|
-
dice_total = dice_list.inject(&:+)
|
|
86
85
|
cmp_op = Normalize.comparison_operator(signOfInequality)
|
|
87
|
-
output +=
|
|
86
|
+
output +=
|
|
87
|
+
if total.send(cmp_op, diff)
|
|
88
|
+
" > 成功"
|
|
89
|
+
else
|
|
90
|
+
" > 失敗"
|
|
91
|
+
end
|
|
88
92
|
end
|
|
89
93
|
|
|
90
94
|
return output
|
|
@@ -126,7 +130,7 @@ module BCDice
|
|
|
126
130
|
|
|
127
131
|
output = "#{total}[#{dice_str}]#{resultText}"
|
|
128
132
|
|
|
129
|
-
return total, output
|
|
133
|
+
return total, output
|
|
130
134
|
end
|
|
131
135
|
|
|
132
136
|
def eval_game_system_specific_command(command)
|
|
@@ -17,7 +17,8 @@ module BCDice
|
|
|
17
17
|
・判定
|
|
18
18
|
スペシャル/ファンブル/成功/失敗を判定
|
|
19
19
|
・各種表
|
|
20
|
-
|
|
20
|
+
RTTn ランダム特技決定表(n:分野番号、省略可能)
|
|
21
|
+
RCT ランダム分野決定表
|
|
21
22
|
ABRT アビリティ決定表
|
|
22
23
|
DT ダメージ表
|
|
23
24
|
FT 失敗表
|
|
@@ -46,7 +47,6 @@ module BCDice
|
|
|
46
47
|
|
|
47
48
|
def initialize(command)
|
|
48
49
|
super(command)
|
|
49
|
-
@enabled_d66 = true
|
|
50
50
|
@d66_sort_type = D66SortType::ASC
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -67,20 +67,22 @@ module BCDice
|
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
def eval_game_system_specific_command(command)
|
|
70
|
-
roll_tables(command, TABLES)
|
|
70
|
+
roll_tables(command, TABLES) ||
|
|
71
|
+
RTT.roll_command(randomizer, command)
|
|
71
72
|
end
|
|
72
|
-
|
|
73
|
+
RTT = DiceTable::SaiFicSkillTable.new(
|
|
74
|
+
[
|
|
75
|
+
['背景', ['呪い', '絶望', '孤児', '死別', '一般人', '獲物', '憧れ', '友人', '挑戦者', '血縁', '永遠']],
|
|
76
|
+
['仕事', ['脅迫', '捨てる', '拉致', '盗む', 'ハッキング', '侵入', '変装', 'だます', '隠す', 'のぞく', '聞き出す']],
|
|
77
|
+
['捜索', ['トイレ', '食事', '自然', '運動施設', '街', '友愛会', '暗部', '史跡', '文化施設', '温泉', '宿泊']],
|
|
78
|
+
['趣味', ['お酒', 'グルメ', 'ダンス', 'スポーツ', '健康', 'ファッション', '恋愛', 'フェス', '音楽', '物語', '学問']],
|
|
79
|
+
['雰囲気', ['だらしない', 'のんびり', '暖かい', '明るい', '甘い', '普通', '洗練', '渋い', '静か', '真面目', '冷たい']],
|
|
80
|
+
['戦闘法', ['忍術', '古武術', '剣術', '棒術', '拳法', 'ケンカ', '総合格闘技', 'レスリング', '軍隊格闘術', '射撃', '弓術']],
|
|
81
|
+
],
|
|
82
|
+
rtt_format: "ランダム指定特技表(%<category_dice>d,%<row_dice>d) > %<category_name>s《%<skill_name>s》"
|
|
83
|
+
)
|
|
73
84
|
TABLES = {
|
|
74
|
-
|
|
75
|
-
[
|
|
76
|
-
['背景', ['呪い', '絶望', '孤児', '死別', '一般人', '獲物', '憧れ', '友人', '挑戦者', '血縁', '永遠']],
|
|
77
|
-
['仕事', ['脅迫', '捨てる', '拉致', '盗む', 'ハッキング', '侵入', '変装', 'だます', '隠す', 'のぞく', '聞き出す']],
|
|
78
|
-
['捜索', ['トイレ', '食事', '自然', '運動施設', '街', '友愛会', '暗部', '史跡', '文化施設', '温泉', '宿泊']],
|
|
79
|
-
['趣味', ['お酒', 'グルメ', 'ダンス', 'スポーツ', '健康', 'ファッション', '恋愛', 'フェス', '音楽', '物語', '学問']],
|
|
80
|
-
['雰囲気', ['だらしない', 'のんびり', '暖かい', '明るい', '甘い', '普通', '洗練', '渋い', '静か', '真面目', '冷たい']],
|
|
81
|
-
['戦闘法', ['忍術', '古武術', '剣術', '棒術', '拳法', 'ケンカ', '総合格闘技', 'レスリング', '軍隊格闘術', '射撃', '弓術']],
|
|
82
|
-
]
|
|
83
|
-
),
|
|
85
|
+
|
|
84
86
|
"ABRT" => DiceTable::D66Table.new(
|
|
85
87
|
"アビリティ決定表",
|
|
86
88
|
D66SortType::ASC,
|
|
@@ -419,7 +421,7 @@ module BCDice
|
|
|
419
421
|
),
|
|
420
422
|
}.freeze
|
|
421
423
|
|
|
422
|
-
register_prefix(
|
|
424
|
+
register_prefix(RTT.prefixes, TABLES.keys)
|
|
423
425
|
end
|
|
424
426
|
end
|
|
425
427
|
end
|
|
@@ -25,7 +25,7 @@ module BCDice
|
|
|
25
25
|
DS+2@10 → 2D6+2で目標値10の判定
|
|
26
26
|
MESSAGETEXT
|
|
27
27
|
|
|
28
|
-
register_prefix(
|
|
28
|
+
register_prefix('(\d+)?(A)?DS([-+\d]*)(@\d+)?')
|
|
29
29
|
|
|
30
30
|
def eval_game_system_specific_command(command)
|
|
31
31
|
return nil unless (m = /(\d+)?(A)?DS([-+\d]*)(@(\d+))?$/i.match(command.upcase))
|
|
@@ -32,12 +32,12 @@ module BCDice
|
|
|
32
32
|
・リアルネームチャート 日本(RNCJ)、海外(RNCO)
|
|
33
33
|
INFO_MESSAGE_TEXT
|
|
34
34
|
|
|
35
|
-
register_prefix(
|
|
35
|
+
register_prefix(
|
|
36
36
|
'DLH\\d+([\\+\\-]\\d+)*',
|
|
37
37
|
'DC(L|S|C)\d+',
|
|
38
38
|
'RNC[JO]',
|
|
39
39
|
'HNC'
|
|
40
|
-
|
|
40
|
+
)
|
|
41
41
|
|
|
42
42
|
def eval_game_system_specific_command(command)
|
|
43
43
|
case command
|
|
@@ -28,13 +28,12 @@ module BCDice
|
|
|
28
28
|
・D66ダイスあり
|
|
29
29
|
INFO_MESSAGE_TEXT
|
|
30
30
|
|
|
31
|
-
register_prefix(
|
|
31
|
+
register_prefix('[NAMUC]?URGE\d+')
|
|
32
32
|
|
|
33
33
|
def initialize(command)
|
|
34
34
|
super(command)
|
|
35
35
|
|
|
36
36
|
@sort_add_dice = true
|
|
37
|
-
@enabled_d66 = true
|
|
38
37
|
@d66_sort_type = D66SortType::NO_SORT
|
|
39
38
|
end
|
|
40
39
|
|
|
@@ -26,19 +26,12 @@ module BCDice
|
|
|
26
26
|
・気力バッドエンド表 WBET (WillBadEndTable)
|
|
27
27
|
INFO_MESSAGE_TEXT
|
|
28
28
|
|
|
29
|
-
register_prefix(
|
|
30
|
-
'\d+DS.*', '\d+JD.*',
|
|
31
|
-
'SST', 'StrengthStigmaTable',
|
|
32
|
-
'WST', 'WillStigmaTable',
|
|
33
|
-
'SBET', 'StrengthBadEndTable',
|
|
34
|
-
'WBET', 'WillBadEndTable'
|
|
35
|
-
])
|
|
29
|
+
register_prefix('\d+DS', '\d+JD')
|
|
36
30
|
|
|
37
31
|
def initialize(command)
|
|
38
32
|
super(command)
|
|
39
33
|
|
|
40
34
|
@sort_add_dice = true
|
|
41
|
-
@enabled_d66 = true
|
|
42
35
|
@d66_sort_type = D66SortType::ASC
|
|
43
36
|
end
|
|
44
37
|
|
|
@@ -46,31 +39,32 @@ module BCDice
|
|
|
46
39
|
debug("eval_game_system_specific_command begin string", command)
|
|
47
40
|
|
|
48
41
|
result = checkRoll(command)
|
|
49
|
-
return result
|
|
42
|
+
return result if result
|
|
50
43
|
|
|
51
44
|
result = checkJudgeValue(command)
|
|
52
|
-
return result
|
|
45
|
+
return result if result
|
|
53
46
|
|
|
54
47
|
debug("各種表として処理")
|
|
55
|
-
return
|
|
48
|
+
return roll_tables(ALIAS[command] || command, self.class::TABLES)
|
|
56
49
|
end
|
|
57
50
|
|
|
58
51
|
# 通常判定 xDS or xDSy or xDS>=z or xDSy>=z
|
|
59
52
|
def checkRoll(string)
|
|
60
53
|
debug("checkRoll begin string", string)
|
|
61
54
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
55
|
+
m = /^(\d+)DS(\d+)?(?:>=(\d+))?$/i.match(string)
|
|
56
|
+
unless m
|
|
57
|
+
return nil
|
|
58
|
+
end
|
|
65
59
|
|
|
66
|
-
skill =
|
|
67
|
-
flag =
|
|
68
|
-
target =
|
|
60
|
+
skill = m[1].to_i
|
|
61
|
+
flag = m[2].to_i
|
|
62
|
+
target = m[3]&.to_i || 8
|
|
69
63
|
|
|
70
|
-
result = "
|
|
64
|
+
result = translate("DetatokoSaga.DS.input_options", skill: skill, flag: flag, target: target)
|
|
71
65
|
|
|
72
66
|
total, rollText = getRollResult(skill)
|
|
73
|
-
result += " > #{total}[#{rollText}] >
|
|
67
|
+
result += " > #{total}[#{rollText}] > " + translate("DetatokoSaga.total_value", total: total)
|
|
74
68
|
|
|
75
69
|
success = getSuccess(total, target)
|
|
76
70
|
result += " > #{success}"
|
|
@@ -97,10 +91,10 @@ module BCDice
|
|
|
97
91
|
|
|
98
92
|
def getSuccess(check, target)
|
|
99
93
|
if check >= target
|
|
100
|
-
|
|
94
|
+
translate("DetatokoSaga.DS.success")
|
|
95
|
+
else
|
|
96
|
+
translate("DetatokoSaga.DS.failure")
|
|
101
97
|
end
|
|
102
|
-
|
|
103
|
-
return "目標値未満…【失敗】"
|
|
104
98
|
end
|
|
105
99
|
|
|
106
100
|
def getCheckFlagResult(total, flag)
|
|
@@ -108,11 +102,8 @@ module BCDice
|
|
|
108
102
|
return ""
|
|
109
103
|
end
|
|
110
104
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
result += "【判定値変更不可】"
|
|
114
|
-
|
|
115
|
-
return result
|
|
105
|
+
will = getDownWill(flag)
|
|
106
|
+
return translate("DetatokoSaga.less_than_flag", will: will)
|
|
116
107
|
end
|
|
117
108
|
|
|
118
109
|
def getDownWill(flag)
|
|
@@ -128,17 +119,20 @@ module BCDice
|
|
|
128
119
|
def checkJudgeValue(string)
|
|
129
120
|
debug("checkJudgeValue begin string", string)
|
|
130
121
|
|
|
131
|
-
|
|
122
|
+
m = %r{^(\d+)JD(\d+)?(([+-/])(\d+))?$}i.match(string)
|
|
123
|
+
unless m
|
|
124
|
+
return nil
|
|
125
|
+
end
|
|
132
126
|
|
|
133
|
-
skill =
|
|
134
|
-
flag =
|
|
135
|
-
operator =
|
|
136
|
-
value =
|
|
127
|
+
skill = m[1].to_i
|
|
128
|
+
flag = m[2].to_i
|
|
129
|
+
operator = m[4]
|
|
130
|
+
value = m[5].to_i
|
|
137
131
|
|
|
138
|
-
result = "
|
|
132
|
+
result = translate("DetatokoSaga.JD.input_options", skill: skill, flag: flag)
|
|
139
133
|
|
|
140
134
|
modifyText = getModifyText(operator, value)
|
|
141
|
-
result += "
|
|
135
|
+
result += translate("DetatokoSaga.JD.modifier", modifier: modifyText) unless modifyText.empty?
|
|
142
136
|
|
|
143
137
|
total, rollText = getRollResult(skill)
|
|
144
138
|
result += " > #{total}[#{rollText}]#{modifyText}"
|
|
@@ -172,139 +166,44 @@ module BCDice
|
|
|
172
166
|
def getTotalResultValue(total, value, operator)
|
|
173
167
|
case operator
|
|
174
168
|
when "+"
|
|
175
|
-
return "#{total}+#{value} >
|
|
169
|
+
return "#{total}+#{value} > " + translate("DetatokoSaga.total_value", total: total + value)
|
|
176
170
|
when "-"
|
|
177
|
-
return "#{total}-#{value} >
|
|
171
|
+
return "#{total}-#{value} > " + translate("DetatokoSaga.total_value", total: total - value)
|
|
178
172
|
when "/"
|
|
179
173
|
return getTotalResultValueWhenSlash(total, value)
|
|
180
174
|
else
|
|
181
|
-
return "
|
|
175
|
+
return translate("DetatokoSaga.total_value", total: total)
|
|
182
176
|
end
|
|
183
177
|
end
|
|
184
178
|
|
|
185
179
|
def getTotalResultValueWhenSlash(total, value)
|
|
186
|
-
return "
|
|
180
|
+
return translate("DetatokoSaga.division_by_zero_error") if value == 0
|
|
187
181
|
|
|
188
182
|
quotient = ((1.0 * total) / value).ceil
|
|
189
183
|
|
|
190
|
-
result = "#{total}÷#{value} >
|
|
184
|
+
result = "#{total}÷#{value} > " + translate("DetatokoSaga.total_value", total: quotient)
|
|
191
185
|
return result
|
|
192
186
|
end
|
|
193
187
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
debug("eval_game_system_specific_command command", command)
|
|
188
|
+
ALIAS = {
|
|
189
|
+
"StrengthStigmaTable" => "SST",
|
|
190
|
+
"WillStigmaTable" => "WST",
|
|
191
|
+
"StrengthBadEndTable" => "SBET",
|
|
192
|
+
"WillBadEndTable" => "WBET",
|
|
193
|
+
}.transform_keys(&:upcase).freeze
|
|
201
194
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
when "WST", "WillStigmaTable".upcase
|
|
210
|
-
name, text, total = choiceWillStigmaTable()
|
|
211
|
-
when "SBET", "StrengthBadEndTable".upcase
|
|
212
|
-
name, text, total = choiceStrengthBadEndTable()
|
|
213
|
-
when "WBET", "WillBadEndTable".upcase
|
|
214
|
-
name, text, total = choiceWillBadEndTable()
|
|
215
|
-
else
|
|
216
|
-
return
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
result = "#{name}(#{total}) > #{text}"
|
|
220
|
-
|
|
221
|
-
return result
|
|
222
|
-
end
|
|
223
|
-
|
|
224
|
-
# ##表一覧
|
|
225
|
-
|
|
226
|
-
def choiceStrengthStigmaTable()
|
|
227
|
-
name = "体力烙印表"
|
|
228
|
-
table = [
|
|
229
|
-
'あなたは【烙印】を2つ受ける。この表をさらに2回振って受ける【烙印】を決める(その結果、再びこの出目が出ても【烙印】は増えない)。',
|
|
230
|
-
'【痛手】手負い傷を負った。何とか戦えているが……。',
|
|
231
|
-
'【流血】血があふれ出し、目がかすむ……。',
|
|
232
|
-
'【衰弱】体が弱り、その心さえも萎えてしまいそうだ……。',
|
|
233
|
-
'【苦悶】痛みと苦しみ、情けなさ。目に涙がにじむ。',
|
|
234
|
-
'【衝撃】吹き飛ばされ、壁や樹木にめりこむ。早く起き上がらねば。',
|
|
235
|
-
'【疲労】あなたの顔に疲労の色が強まる……この戦いがつらくなってきた。',
|
|
236
|
-
'【怒号】うっとうしい攻撃に怒りの叫びを放つ。怒りが戦いを迷わせるか?',
|
|
237
|
-
'【負傷】手傷を負わされた……。',
|
|
238
|
-
'【軽症】あなたの肌に傷が残った。これだけなら何ということもない。',
|
|
239
|
-
'奇跡的にあなたは【烙印】を受けなかった。'
|
|
240
|
-
]
|
|
241
|
-
|
|
242
|
-
text, total = get_table_by_2d6(table)
|
|
243
|
-
return name, text, total
|
|
195
|
+
def self.translate_tables(locale)
|
|
196
|
+
{
|
|
197
|
+
"SST" => DiceTable::Table.from_i18n("DetatokoSaga.table.SST", locale),
|
|
198
|
+
"WST" => DiceTable::Table.from_i18n("DetatokoSaga.table.WST", locale),
|
|
199
|
+
"SBET" => DiceTable::Table.from_i18n("DetatokoSaga.table.SBET", locale),
|
|
200
|
+
"WBET" => DiceTable::Table.from_i18n("DetatokoSaga.table.WBET", locale),
|
|
201
|
+
}
|
|
244
202
|
end
|
|
245
203
|
|
|
246
|
-
|
|
247
|
-
name = "気力烙印表"
|
|
248
|
-
|
|
249
|
-
table = [
|
|
250
|
-
'あなたは【烙印】を2つ受ける。この表をさらに2回振って受ける【烙印】を決める(その結果、再びこの出目が出ても【烙印】は増えない)。',
|
|
251
|
-
'【絶望】どうしようもない状況。希望は失われ……膝を付くことしかできない。',
|
|
252
|
-
'【号泣】あまりの理不尽に、子供のように泣き叫ぶことしかできない。',
|
|
253
|
-
'【後悔】こんなはずじゃなかったのに。しかし現実は非情だった。',
|
|
254
|
-
'【恐怖】恐怖に囚われてしまった!敵が、己の手が、恐ろしくてならない!',
|
|
255
|
-
'【葛藤】本当にこれでいいのか?何度も自身への問いかけが起こる……。',
|
|
256
|
-
'【憎悪】怒りと憎しみに囚われたあなたは、本来の力を発揮できるだろうか?',
|
|
257
|
-
'【呆然】これは現実なのか?ぼんやりとしながらあなたは考える。',
|
|
258
|
-
'【迷い】迷いを抱いてしまった。それは戦う意志を鈍らせるだろうか?',
|
|
259
|
-
'【悪夢】これから時折、あなたはこの時を悪夢に見ることだろう。',
|
|
260
|
-
'奇跡的にあなたは【烙印】を受けなかった。'
|
|
261
|
-
]
|
|
262
|
-
|
|
263
|
-
text, total = get_table_by_2d6(table)
|
|
264
|
-
return name, text, total
|
|
265
|
-
end
|
|
204
|
+
TABLES = translate_tables(:ja_jp).freeze
|
|
266
205
|
|
|
267
|
-
|
|
268
|
-
name = "体力バッドエンド表"
|
|
269
|
-
|
|
270
|
-
table = [
|
|
271
|
-
'【死亡】あなたは死んだ。次のセッションに参加するには、クラス1つを『モンスター』か『暗黒』にクラスチェンジしなくてはいけない。',
|
|
272
|
-
'【命乞】あなたは恐怖に駆られ、命乞いをしてしまった!次のセッション開始時に、クラス1つが『ザコ』に変更される!',
|
|
273
|
-
'【忘却】あなたは記憶を失い、ぼんやりと立ち尽くす。次のセッションに参加するには、クラス1つを変更しなくてはならない。',
|
|
274
|
-
'【悲劇】あなたの攻撃は敵ではなく味方を撃った!全てが終わるまであなたは立ち尽くしていた。任意の味方の【体力】を1D6点減少させる。',
|
|
275
|
-
'【暴走】あなたは正気を失い、衝動のまま暴走する!同じシーンにいる全員の【体力】を1D6点減少させる。',
|
|
276
|
-
'【転落】あなたは断崖絶壁から転落した。',
|
|
277
|
-
'【虜囚】あなたは敵に囚われた。',
|
|
278
|
-
'【逃走】あなたは恐れをなし、仲間を見捨てて逃げ出した。',
|
|
279
|
-
'【重症】あなたはどうしようもない痛手を負い、倒れた。',
|
|
280
|
-
'【気絶】あなたは気を失った。そして目覚めれば全てが終わっていた。',
|
|
281
|
-
'それでもまだ立ち上がる!あなたはバッドエンドを迎えなかった。体力の【烙印】を1つ打ち消してよい。'
|
|
282
|
-
]
|
|
283
|
-
|
|
284
|
-
text, total = get_table_by_2d6(table)
|
|
285
|
-
return name, text, total
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
def choiceWillBadEndTable()
|
|
289
|
-
name = "気力バッドエンド表"
|
|
290
|
-
|
|
291
|
-
table = [
|
|
292
|
-
'【自害】あなたは自ら死を選んだ。次のセッションに参加するには、クラス1つを『暗黒』にクラスチェンジしなくてはいけない。',
|
|
293
|
-
'【堕落】あなたは心の中の闇に飲まれた。次のセッション開始時に、クラス1つが『暗黒』か『モンスター』に変更される!',
|
|
294
|
-
'【隷属】あなたは敵の言うことに逆らえない。次のセッションであなたのスタンスは『従属』になる。',
|
|
295
|
-
'【裏切】裏切りの衝動。任意の味方の【体力】を1D6点減少させ、その場から逃げ出す。',
|
|
296
|
-
'【暴走】あなたは正気を失い、衝動のまま暴走する!同じシーンにいる全員の【体力】を1D6点減少させる。',
|
|
297
|
-
'【呪い】心の闇が顕在化したのか。敵の怨嗟か。呪いに蝕まれたあなたは、のたうちまわることしかできない。',
|
|
298
|
-
'【虜囚】あなたは敵に囚われ、その場から連れ去られる。',
|
|
299
|
-
'【逃走】あなたは恐れをなし、仲間を見捨てて逃げ出した。',
|
|
300
|
-
'【放心】あなたはただぼんやりと立ち尽くすしかなかった。我に返った時、全ては終わっていた。',
|
|
301
|
-
'【気絶】あなたは気を失った。そして目覚めれば全てが終わっていた。',
|
|
302
|
-
'それでもまだ諦めない!あなたはバッドエンドを迎えなかった。あなたは気力の【烙印】を1つ打ち消してよい。'
|
|
303
|
-
]
|
|
304
|
-
|
|
305
|
-
text, total = get_table_by_2d6(table)
|
|
306
|
-
return name, text, total
|
|
307
|
-
end
|
|
206
|
+
register_prefix(TABLES.keys, ALIAS.keys)
|
|
308
207
|
end
|
|
309
208
|
end
|
|
310
209
|
end
|