bcdice 3.0.0.pre.alpha.1 → 3.0.0.pre.alpha.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +1 -1
- data/.rubocop.yml +12 -0
- data/.rubocop_todo.yml +1 -0
- data/CHANGELOG.md +34 -0
- data/Gemfile +6 -3
- data/Rakefile +52 -18
- data/bcdice.gemspec +2 -0
- data/i18n/Amadeus/ja_jp.yml +386 -0
- data/i18n/Amadeus/ko_kr.yml +148 -0
- data/i18n/Cthulhu/ja_jp.yml +11 -0
- data/i18n/Cthulhu/ko_kr.yml +11 -0
- data/i18n/Cthulhu/zh_hant.yml +11 -0
- data/i18n/DetatokoSaga/ja_jp.yml +74 -0
- data/i18n/DetatokoSaga/ko_kr.yml +74 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +53 -0
- data/i18n/Dracurouge/ja_jp.yml +1374 -0
- data/i18n/Dracurouge/ko_kr.yml +295 -0
- data/i18n/Fiasco/ja_jp.yml +10 -0
- data/i18n/Fiasco/ko_kr.yml +10 -0
- data/i18n/FutariSousa/ja_jp.yml +720 -0
- data/i18n/FutariSousa/ko_kr.yml +746 -0
- data/i18n/Insane/ja_jp.yml +454 -0
- data/i18n/Insane/ko_kr.yml +502 -0
- data/i18n/Kamigakari/ja_jp.yml +276 -0
- data/i18n/Kamigakari/ko_kr.yml +204 -0
- data/i18n/KillDeathBusiness/ja_jp.yml +1092 -0
- data/i18n/KillDeathBusiness/ko_kr.yml +1062 -0
- data/i18n/LogHorizon/ja_jp.yml +3082 -0
- data/i18n/LogHorizon/ko_kr.yml +923 -0
- data/i18n/MagicaLogia/ja_jp.yml +564 -0
- data/i18n/MonotoneMuseum/ja_jp.yml +525 -0
- data/i18n/MonotoneMuseum/ko_kr.yml +89 -0
- data/i18n/Nechronica/ja_jp.yml +57 -0
- data/i18n/Nechronica/ko_kr.yml +14 -0
- data/i18n/StratoShout/ja_jp.yml +160 -0
- data/i18n/StratoShout/ko_kr.yml +160 -0
- data/i18n/ja_jp.yml +5 -0
- data/i18n/ko_kr.yml +7 -0
- data/i18n/zh_hant.yml +3 -0
- data/lib/bcdice/arithmetic/node.rb +154 -0
- data/lib/bcdice/base.rb +87 -101
- data/lib/bcdice/common_command.rb +2 -0
- data/lib/bcdice/common_command/add_dice.rb +5 -41
- data/lib/bcdice/common_command/add_dice/node.rb +92 -16
- data/lib/bcdice/common_command/add_dice/parser.rb +374 -274
- data/lib/bcdice/common_command/add_dice/parser.y +153 -0
- data/lib/bcdice/common_command/add_dice/randomizer.rb +25 -33
- data/lib/bcdice/common_command/barabara_dice.rb +6 -47
- data/lib/bcdice/common_command/barabara_dice/node.rb +84 -0
- data/lib/bcdice/common_command/barabara_dice/parser.rb +336 -0
- data/lib/bcdice/common_command/barabara_dice/parser.y +107 -0
- data/lib/bcdice/common_command/calc.rb +7 -30
- data/lib/bcdice/common_command/calc/node.rb +30 -0
- data/lib/bcdice/common_command/calc/parser.rb +271 -0
- data/lib/bcdice/common_command/calc/parser.y +79 -0
- data/lib/bcdice/common_command/choice.rb +137 -19
- data/lib/bcdice/common_command/d66_dice.rb +48 -34
- data/lib/bcdice/common_command/lexer.rb +46 -0
- data/lib/bcdice/common_command/repeat.rb +102 -0
- data/lib/bcdice/common_command/reroll_dice.rb +8 -158
- data/lib/bcdice/common_command/reroll_dice/node.rb +198 -0
- data/lib/bcdice/common_command/reroll_dice/parser.rb +421 -0
- data/lib/bcdice/common_command/reroll_dice/parser.y +158 -0
- data/lib/bcdice/common_command/upper_dice.rb +10 -129
- data/lib/bcdice/common_command/upper_dice/node.rb +181 -0
- data/lib/bcdice/common_command/upper_dice/parser.rb +412 -0
- data/lib/bcdice/common_command/upper_dice/parser.y +143 -0
- data/lib/bcdice/common_command/version.rb +9 -17
- data/lib/bcdice/deprecated/checker.rb +78 -0
- data/lib/bcdice/dice_table/d66_grid_table.rb +8 -0
- data/lib/bcdice/dice_table/d66_table.rb +10 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table.rb +75 -17
- data/lib/bcdice/dice_table/sai_fic_skill_table/category.rb +25 -0
- data/lib/bcdice/dice_table/sai_fic_skill_table/skill.rb +23 -0
- data/lib/bcdice/dice_table/table.rb +8 -0
- data/lib/bcdice/game_system.rb +7 -1
- data/lib/bcdice/game_system/AFF2e.rb +1 -1
- data/lib/bcdice/game_system/AceKillerGene.rb +2 -2
- data/lib/bcdice/game_system/Airgetlamh.rb +3 -3
- data/lib/bcdice/game_system/Alsetto.rb +1 -1
- data/lib/bcdice/game_system/Alshard.rb +1 -1
- data/lib/bcdice/game_system/AlterRaise.rb +2 -2
- data/lib/bcdice/game_system/Amadeus.rb +46 -507
- data/lib/bcdice/game_system/Amadeus_Korean.rb +12 -456
- data/lib/bcdice/game_system/AnimaAnimus.rb +1 -1
- data/lib/bcdice/game_system/Arianrhod.rb +0 -1
- data/lib/bcdice/game_system/ArsMagica.rb +1 -1
- data/lib/bcdice/game_system/Avandner.rb +1 -1
- data/lib/bcdice/game_system/BBN.rb +1 -1
- data/lib/bcdice/game_system/BadLife.rb +1 -1
- data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
- data/lib/bcdice/game_system/BeastBindTrinity.rb +1 -2
- data/lib/bcdice/game_system/BeginningIdol.rb +2 -3
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +2 -3
- data/lib/bcdice/game_system/BladeOfArcana.rb +2 -2
- data/lib/bcdice/game_system/BlindMythos.rb +1 -1
- data/lib/bcdice/game_system/BloodCrusade.rb +0 -1
- data/lib/bcdice/game_system/BloodMoon.rb +0 -1
- data/lib/bcdice/game_system/CardRanker.rb +1 -2
- data/lib/bcdice/game_system/ChaosFlare.rb +1 -1
- data/lib/bcdice/game_system/Chill.rb +1 -1
- data/lib/bcdice/game_system/CodeLayerd.rb +1 -1
- data/lib/bcdice/game_system/ColossalHunter.rb +1 -2
- data/lib/bcdice/game_system/Comes.rb +50 -0
- data/lib/bcdice/game_system/CrashWorld.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu.rb +94 -97
- data/lib/bcdice/game_system/Cthulhu7th.rb +108 -67
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +1 -1
- data/lib/bcdice/game_system/CthulhuTech.rb +8 -14
- data/lib/bcdice/game_system/Cthulhu_ChineseTraditional.rb +7 -190
- data/lib/bcdice/game_system/Cthulhu_Korean.rb +5 -186
- data/lib/bcdice/game_system/DarkBlaze.rb +9 -5
- data/lib/bcdice/game_system/DarkDaysDrive.rb +17 -15
- data/lib/bcdice/game_system/DarkSouls.rb +1 -1
- data/lib/bcdice/game_system/DeadlineHeroes.rb +2 -2
- data/lib/bcdice/game_system/DemonParasite.rb +1 -2
- data/lib/bcdice/game_system/DetatokoSaga.rb +48 -149
- data/lib/bcdice/game_system/DetatokoSaga_Korean.rb +6 -274
- data/lib/bcdice/game_system/DiceOfTheDead.rb +9 -6
- data/lib/bcdice/game_system/DoubleCross.rb +102 -81
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +13 -330
- data/lib/bcdice/game_system/Dracurouge.rb +376 -1678
- data/lib/bcdice/game_system/Dracurouge_Korean.rb +16 -271
- data/lib/bcdice/game_system/EarthDawn.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn3.rb +1 -1
- data/lib/bcdice/game_system/EarthDawn4.rb +1 -1
- data/lib/bcdice/game_system/Elysion.rb +3 -4
- data/lib/bcdice/game_system/EmbryoMachine.rb +1 -1
- data/lib/bcdice/game_system/Emoklore.rb +131 -0
- data/lib/bcdice/game_system/EndBreaker.rb +1 -2
- data/lib/bcdice/game_system/EtrianOdysseySRS.rb +1 -1
- data/lib/bcdice/game_system/Fiasco.rb +87 -70
- data/lib/bcdice/game_system/Fiasco_Korean.rb +7 -95
- data/lib/bcdice/game_system/FilledWith.rb +462 -566
- data/lib/bcdice/game_system/FullMetalPanic.rb +1 -1
- data/lib/bcdice/game_system/FutariSousa.rb +103 -938
- data/lib/bcdice/game_system/FutariSousa_Korean.rb +7 -948
- data/lib/bcdice/game_system/{Gurps.rb → GURPS.rb} +184 -217
- data/lib/bcdice/game_system/Garako.rb +131 -39
- data/lib/bcdice/game_system/GardenOrder.rb +2 -2
- data/lib/bcdice/game_system/GehennaAn.rb +1 -1
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
- data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
- data/lib/bcdice/game_system/GoldenSkyStories.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +1 -1
- data/lib/bcdice/game_system/GranCrest.rb +2 -3
- data/lib/bcdice/game_system/GundogRevised.rb +1 -1
- data/lib/bcdice/game_system/GundogZero.rb +1 -1
- data/lib/bcdice/game_system/GurpsFW.rb +2 -3
- data/lib/bcdice/game_system/HarnMaster.rb +2 -2
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -2
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/HuntersMoon.rb +1 -2
- data/lib/bcdice/game_system/Illusio.rb +2 -2
- data/lib/bcdice/game_system/Insane.rb +90 -717
- data/lib/bcdice/game_system/Insane_Korean.rb +7 -719
- data/lib/bcdice/game_system/Kamigakari.rb +47 -242
- data/lib/bcdice/game_system/Kamigakari_Korean.rb +6 -394
- data/lib/bcdice/game_system/KanColle.rb +3 -3
- data/lib/bcdice/game_system/KemonoNoMori.rb +1 -1
- data/lib/bcdice/game_system/KillDeathBusiness.rb +162 -1144
- data/lib/bcdice/game_system/KillDeathBusiness_Korean.rb +6 -1459
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/LiveraDoll.rb +2 -2
- data/lib/bcdice/game_system/LogHorizon.rb +350 -3379
- data/lib/bcdice/game_system/LogHorizon_Korean.rb +55 -1357
- data/lib/bcdice/game_system/LostRecord.rb +0 -1
- data/lib/bcdice/game_system/LostRoyal.rb +1 -2
- data/lib/bcdice/game_system/MagicaLogia.rb +158 -1044
- data/lib/bcdice/game_system/MeikyuDays.rb +1 -2
- data/lib/bcdice/game_system/MeikyuKingdom.rb +4 -4
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -5
- data/lib/bcdice/game_system/MetalHead.rb +1 -1
- data/lib/bcdice/game_system/MetalHeadExtream.rb +2 -2
- data/lib/bcdice/game_system/MetallicGuardian.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum.rb +38 -239
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +10 -270
- data/lib/bcdice/game_system/NSSQ.rb +159 -0
- data/lib/bcdice/game_system/Nechronica.rb +34 -73
- data/lib/bcdice/game_system/Nechronica_Korean.rb +11 -128
- data/lib/bcdice/game_system/NeverCloud.rb +1 -1
- data/lib/bcdice/game_system/NightWizard.rb +1 -1
- data/lib/bcdice/game_system/NightWizard3rd.rb +1 -1
- data/lib/bcdice/game_system/NinjaSlayer.rb +12 -11
- data/lib/bcdice/game_system/NjslyrBattle.rb +1 -1
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -2
- data/lib/bcdice/game_system/OracleEngine.rb +1 -1
- data/lib/bcdice/game_system/OrgaRain.rb +2 -2
- data/lib/bcdice/game_system/Paradiso.rb +1 -1
- data/lib/bcdice/game_system/Paranoia.rb +1 -1
- data/lib/bcdice/game_system/ParanoiaRebooted.rb +1 -1
- data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
- data/lib/bcdice/game_system/Peekaboo.rb +22 -122
- data/lib/bcdice/game_system/Postman.rb +2 -2
- data/lib/bcdice/game_system/PulpCthulhu.rb +3 -3
- data/lib/bcdice/game_system/Raisondetre.rb +2 -2
- data/lib/bcdice/game_system/RecordOfLodossWar.rb +1 -1
- data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
- data/lib/bcdice/game_system/RokumonSekai2.rb +1 -1
- data/lib/bcdice/game_system/RuinBreakers.rb +296 -0
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/SRS.rb +1 -2
- data/lib/bcdice/game_system/SamsaraBallad.rb +1 -1
- data/lib/bcdice/game_system/Satasupe.rb +1 -2
- data/lib/bcdice/game_system/ScreamHighSchool.rb +2 -2
- data/lib/bcdice/game_system/SevenFortressMobius.rb +1 -1
- data/lib/bcdice/game_system/ShadowRun5.rb +2 -2
- data/lib/bcdice/game_system/SharedFantasia.rb +1 -1
- data/lib/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb +1 -1
- data/lib/bcdice/game_system/ShinkuuGakuen.rb +2 -2
- data/lib/bcdice/game_system/ShinobiGami.rb +1 -2
- data/lib/bcdice/game_system/ShoujoTenrankai.rb +2 -2
- data/lib/bcdice/game_system/Skynauts.rb +1 -1
- data/lib/bcdice/game_system/SteamPunkers.rb +1 -1
- data/lib/bcdice/game_system/StellarKnights.rb +1 -2
- data/lib/bcdice/game_system/SterileLife.rb +1 -1
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +1 -2
- data/lib/bcdice/game_system/StratoShout.rb +44 -247
- data/lib/bcdice/game_system/StratoShout_Korean.rb +6 -282
- data/lib/bcdice/game_system/Strave.rb +2 -2
- data/lib/bcdice/game_system/SwordWorld.rb +8 -9
- data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -3
- data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -3
- data/lib/bcdice/game_system/TherapieSein.rb +1 -1
- data/lib/bcdice/game_system/TokumeiTenkousei.rb +1 -1
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +2 -2
- data/lib/bcdice/game_system/Torg.rb +2 -2
- data/lib/bcdice/game_system/Torg1_5.rb +1 -1
- data/lib/bcdice/game_system/TorgEternity.rb +1 -1
- data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/TwilightGunsmoke.rb +1 -2
- data/lib/bcdice/game_system/UnsungDuet.rb +139 -0
- data/lib/bcdice/game_system/Utakaze.rb +1 -1
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +1 -1
- data/lib/bcdice/game_system/Villaciel.rb +1 -2
- data/lib/bcdice/game_system/Warhammer.rb +1 -1
- data/lib/bcdice/game_system/Warhammer4.rb +329 -0
- data/lib/bcdice/game_system/WitchQuest.rb +1 -1
- data/lib/bcdice/game_system/WorldOfDarkness.rb +1 -1
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +15 -15
- data/lib/bcdice/game_system/YearZeroEngine.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +1 -1
- data/lib/bcdice/game_system/filled_with/cook_tables.rb +119 -0
- data/lib/bcdice/game_system/filled_with/lot_tables.rb +155 -0
- data/lib/bcdice/loader.rb +6 -8
- data/lib/bcdice/preprocessor.rb +15 -40
- data/lib/bcdice/repl.rb +1 -1
- data/lib/bcdice/result.rb +83 -0
- data/lib/bcdice/translate.rb +11 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +80 -4
@@ -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
|