bcdice 3.1.2 → 3.4.0
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/CHANGELOG.md +154 -75
- data/README.md +3 -2
- data/i18n/Cthulhu/zh_hans.yml +11 -0
- data/i18n/MagicaLogia/zh_hans.yml +564 -0
- data/i18n/StellarKnights/ja_jp.yml +498 -0
- data/i18n/StellarKnights/ko_kr.yml +498 -0
- data/i18n/zh_hans.yml +7 -0
- data/lib/bcdice/command/parsed.rb +11 -3
- data/lib/bcdice/command/parser.rb +179 -100
- data/lib/bcdice/common_command/add_dice.rb +1 -1
- data/lib/bcdice/common_command/barabara_dice/node.rb +2 -2
- data/lib/bcdice/common_command/barabara_dice/result.rb +6 -0
- data/lib/bcdice/common_command/calc.rb +1 -1
- data/lib/bcdice/common_command/choice.rb +78 -7
- data/lib/bcdice/dice_table.rb +3 -0
- data/lib/bcdice/dice_table/d66_half_grid_table.rb +33 -0
- data/lib/bcdice/dice_table/d66_left_range_table.rb +29 -0
- data/lib/bcdice/dice_table/d66_one_third_table.rb +34 -0
- data/lib/bcdice/game_system.rb +10 -0
- data/lib/bcdice/game_system/AceKillerGene.rb +1 -1
- data/lib/bcdice/game_system/Ainecadette.rb +68 -0
- data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
- data/lib/bcdice/game_system/Alsetto.rb +1 -1
- data/lib/bcdice/game_system/AlterRaise.rb +2 -2
- data/lib/bcdice/game_system/Amadeus.rb +110 -93
- data/lib/bcdice/game_system/AngelGear.rb +10 -5
- data/lib/bcdice/game_system/AnimaAnimus.rb +16 -9
- data/lib/bcdice/game_system/Arianrhod.rb +6 -8
- data/lib/bcdice/game_system/Avandner.rb +1 -1
- data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
- data/lib/bcdice/game_system/BattleTech.rb +109 -28
- data/lib/bcdice/game_system/BeastBindTrinity.rb +28 -12
- data/lib/bcdice/game_system/BeginningIdol.rb +5 -5
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +5 -5
- data/lib/bcdice/game_system/BladeOfArcana.rb +1 -1
- data/lib/bcdice/game_system/BlindMythos.rb +39 -38
- data/lib/bcdice/game_system/BloodCrusade.rb +6 -7
- data/lib/bcdice/game_system/BloodMoon.rb +9 -8
- data/lib/bcdice/game_system/CardRanker.rb +8 -7
- data/lib/bcdice/game_system/ChaosFlare.rb +21 -15
- data/lib/bcdice/game_system/Chill.rb +10 -10
- data/lib/bcdice/game_system/Chill3.rb +9 -9
- data/lib/bcdice/game_system/CodeLayerd.rb +39 -39
- data/lib/bcdice/game_system/ColossalHunter.rb +34 -47
- data/lib/bcdice/game_system/CrashWorld.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th.rb +50 -12
- 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/Cthulhu_SimplifiedChinese.rb +60 -0
- data/lib/bcdice/game_system/DarkBlaze.rb +0 -11
- data/lib/bcdice/game_system/DarkDaysDrive.rb +8 -7
- data/lib/bcdice/game_system/DeadlineHeroes.rb +11 -10
- data/lib/bcdice/game_system/DemonParasite.rb +5 -13
- data/lib/bcdice/game_system/DesperateRun.rb +1 -1
- data/lib/bcdice/game_system/DoubleCross.rb +3 -1
- data/lib/bcdice/game_system/Dracurouge.rb +3 -2
- data/lib/bcdice/game_system/EclipsePhase.rb +14 -14
- data/lib/bcdice/game_system/Elric.rb +18 -14
- data/lib/bcdice/game_system/Elysion.rb +1 -1
- data/lib/bcdice/game_system/EmbryoMachine.rb +9 -8
- data/lib/bcdice/game_system/Emoklore.rb +25 -20
- data/lib/bcdice/game_system/Fiasco.rb +1 -1
- data/lib/bcdice/game_system/FilledWith.rb +4 -0
- data/lib/bcdice/game_system/FutariSousa.rb +12 -10
- data/lib/bcdice/game_system/GURPS.rb +17 -28
- data/lib/bcdice/game_system/Garako.rb +1 -1
- data/lib/bcdice/game_system/GardenOrder.rb +12 -7
- data/lib/bcdice/game_system/GeishaGirlwithKatana.rb +1 -1
- data/lib/bcdice/game_system/GoblinSlayer.rb +1 -1
- data/lib/bcdice/game_system/Gorilla.rb +2 -8
- data/lib/bcdice/game_system/GranCrest.rb +189 -417
- data/lib/bcdice/game_system/Gundog.rb +9 -8
- data/lib/bcdice/game_system/GundogRevised.rb +10 -9
- data/lib/bcdice/game_system/GundogZero.rb +1 -1
- data/lib/bcdice/game_system/GurpsFW.rb +16 -16
- data/lib/bcdice/game_system/HarnMaster.rb +19 -26
- data/lib/bcdice/game_system/HatsuneMiku.rb +1 -1
- data/lib/bcdice/game_system/Hieizan.rb +12 -21
- data/lib/bcdice/game_system/HouraiGakuen.rb +1 -1
- data/lib/bcdice/game_system/HuntersMoon.rb +5 -10
- data/lib/bcdice/game_system/InfiniteFantasia.rb +19 -17
- data/lib/bcdice/game_system/Insane.rb +13 -20
- data/lib/bcdice/game_system/Irisbane.rb +154 -0
- data/lib/bcdice/game_system/IthaWenUa.rb +8 -15
- data/lib/bcdice/game_system/JamesBond.rb +10 -10
- data/lib/bcdice/game_system/JekyllAndHyde.rb +1 -1
- data/lib/bcdice/game_system/Kamigakari.rb +1 -1
- data/lib/bcdice/game_system/KanColle.rb +4 -9
- data/lib/bcdice/game_system/KemonoNoMori.rb +26 -39
- data/lib/bcdice/game_system/KillDeathBusiness.rb +7 -15
- data/lib/bcdice/game_system/KurayamiCrying.rb +141 -2
- data/lib/bcdice/game_system/LiveraDoll.rb +254 -304
- data/lib/bcdice/game_system/LogHorizon.rb +13 -10
- data/lib/bcdice/game_system/MagicaLogia_SimplifiedChinese.rb +66 -0
- data/lib/bcdice/game_system/MeikyuDays.rb +10 -8
- data/lib/bcdice/game_system/MeikyuKingdom.rb +26 -26
- data/lib/bcdice/game_system/MeikyuKingdomBasic.rb +4 -3
- data/lib/bcdice/game_system/MetalHead.rb +12 -22
- data/lib/bcdice/game_system/MetalHeadExtream.rb +5 -5
- data/lib/bcdice/game_system/MonotoneMuseum.rb +8 -6
- data/lib/bcdice/game_system/Nechronica.rb +63 -90
- data/lib/bcdice/game_system/NinjaSlayer.rb +6 -7
- data/lib/bcdice/game_system/NjslyrBattle.rb +8 -11
- data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
- data/lib/bcdice/game_system/Paradiso.rb +3 -3
- data/lib/bcdice/game_system/ParasiteBlood.rb +1 -1
- data/lib/bcdice/game_system/Peekaboo.rb +4 -9
- data/lib/bcdice/game_system/Pendragon.rb +7 -7
- data/lib/bcdice/game_system/PersonaO.rb +86 -0
- data/lib/bcdice/game_system/PhantasmAdventure.rb +8 -8
- data/lib/bcdice/game_system/Postman.rb +1 -1
- data/lib/bcdice/game_system/PulpCthulhu.rb +1 -1
- data/lib/bcdice/game_system/Raisondetre.rb +2 -2
- data/lib/bcdice/game_system/Revulture.rb +123 -0
- data/lib/bcdice/game_system/RuneQuest.rb +8 -8
- data/lib/bcdice/game_system/Ryutama.rb +1 -1
- data/lib/bcdice/game_system/SRS.rb +17 -16
- data/lib/bcdice/game_system/SamsaraBallad.rb +38 -11
- data/lib/bcdice/game_system/Satasupe.rb +32 -32
- data/lib/bcdice/game_system/ScreamHighSchool.rb +5 -5
- data/lib/bcdice/game_system/SharedFantasia.rb +19 -23
- data/lib/bcdice/game_system/ShinobiGami.rb +14 -6
- data/lib/bcdice/game_system/Skynauts.rb +103 -142
- data/lib/bcdice/game_system/SkynautsBouken.rb +228 -0
- data/lib/bcdice/game_system/StarryDolls.rb +318 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +25 -7
- data/lib/bcdice/game_system/StellarKnights.rb +85 -706
- data/lib/bcdice/game_system/StellarKnights_Korean.rb +79 -0
- data/lib/bcdice/game_system/SterileLife.rb +2 -3
- data/lib/bcdice/game_system/StratoShout.rb +8 -16
- data/lib/bcdice/game_system/Strave.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +16 -7
- data/lib/bcdice/game_system/SwordWorld2_0.rb +2 -2
- data/lib/bcdice/game_system/SwordWorld2_5.rb +2 -2
- data/lib/bcdice/game_system/TherapieSein.rb +1 -1
- data/lib/bcdice/game_system/TokumeiTenkousei.rb +4 -3
- data/lib/bcdice/game_system/TokyoGhostResearch.rb +1 -1
- data/lib/bcdice/game_system/TorgEternity.rb +2 -2
- data/lib/bcdice/game_system/ToshiakiHolyGrailWar.rb +92 -0
- data/lib/bcdice/game_system/TrinitySeven.rb +279 -280
- data/lib/bcdice/game_system/TunnelsAndTrolls.rb +1 -1
- data/lib/bcdice/game_system/Utakaze.rb +53 -48
- data/lib/bcdice/game_system/Villaciel.rb +1 -1
- data/lib/bcdice/game_system/WARPS.rb +11 -9
- data/lib/bcdice/game_system/WaresBlade.rb +4 -9
- data/lib/bcdice/game_system/Warhammer.rb +15 -6
- data/lib/bcdice/game_system/Warhammer4.rb +15 -11
- data/lib/bcdice/game_system/WitchQuest.rb +1 -1
- data/lib/bcdice/game_system/YankeeYogSothoth.rb +4 -9
- data/lib/bcdice/game_system/Yggdrasill.rb +1 -1
- data/lib/bcdice/game_system/ZettaiReido.rb +20 -25
- data/lib/bcdice/game_system/meikyu_kingdom_basic/kingdom_table.rb +1 -1
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +4 -4
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +1 -1
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +26 -8
- data/lib/bcdice/repl.rb +1 -1
- data/lib/bcdice/result.rb +26 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +22 -5
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "bcdice/game_system/StellarKnights"
|
|
4
|
+
|
|
5
|
+
module BCDice
|
|
6
|
+
module GameSystem
|
|
7
|
+
class StellarKnights_Korean < StellarKnights
|
|
8
|
+
# ゲームシステムの識別子
|
|
9
|
+
ID = "StellarKnights:Korean"
|
|
10
|
+
|
|
11
|
+
# ゲームシステム名
|
|
12
|
+
NAME = "은검의 스텔라나이츠"
|
|
13
|
+
|
|
14
|
+
# ゲームシステム名の読みがな
|
|
15
|
+
SORT_KEY = "国際化:Korean:은검의 스텔라나이츠"
|
|
16
|
+
|
|
17
|
+
# ダイスボットの使い方
|
|
18
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
|
19
|
+
・판정 nSK[d][,k>l,...]
|
|
20
|
+
[]안은 생략 가능.
|
|
21
|
+
n: 다이스 개수, d: 공격 판정 대상의 방어력, k>l: 다이스를 굴려 k가 나오면 l로 변경(아마란서스 스킬 중「시작의 방」용)
|
|
22
|
+
d 생략 시 다이스를 굴린 결과만 표시. (nSK는 nB6과 동일)
|
|
23
|
+
|
|
24
|
+
4SK: 다이스 4개를 굴린 결과 표시.
|
|
25
|
+
4+2SK: ダイスを4+2 (=6) 個振って、その結果を表示
|
|
26
|
+
5/2SK: ダイスを5個の半分 (=2) 個振って、その結果を表示
|
|
27
|
+
(5+3)/2SK: ダイスを(5+3)個の半分 (=4) 個振って、その結果を表示
|
|
28
|
+
5SK3: 【공격 판정: 5다이스】, 대상의 방어력을 3으로 계산해 성공 수 표시.
|
|
29
|
+
3SK,1>6: 다이스 3개 굴림, 1이 나오면 전부 6으로 변경, 대상의 방어력을 4로 계산해 성공 수 표시.
|
|
30
|
+
6SK4,1>6,2>6: 【공격 판정: 6다이스】, 1과 2가 나오면 전부 6으로 변경, 대상의 방어력을 4로 계산해 성공 수 표시.
|
|
31
|
+
|
|
32
|
+
・기본
|
|
33
|
+
TT: 소재 표
|
|
34
|
+
STA: 상황 표 A: 시간 (Situation Table A)
|
|
35
|
+
STB: 상황 표 B-1: 장소 (ST B)
|
|
36
|
+
STB2[n]: 상황 표 B-2: 학원편 (ST B 2)
|
|
37
|
+
n: 1(아셀트레이 공립대학), 2(이데아글로리아 예술종합대학), 3(시트라 여학원), 4(필로소피아 대학), 5(성 아제티아 학원), 6(스폰 오브 아셀트레이)
|
|
38
|
+
STC: 상황 표 C: 화제 (ST C)
|
|
39
|
+
ALLS: 상황 표 전체 일괄 굴림 (학원편 제외)
|
|
40
|
+
GAT: 소속 조직 결정 (Gakuen Table)
|
|
41
|
+
HOT: 희망 표 (Hope Table)
|
|
42
|
+
DET: 절망 표 (Despair Table)
|
|
43
|
+
WIT: 소원 표 (Wish Table)
|
|
44
|
+
YST: 당신의 이야기 표 (Your Story Table)
|
|
45
|
+
YSTA: 당신의 이야기 표 (이세계) (YST Another World)
|
|
46
|
+
PET: 성격 표 (Personality Table)
|
|
47
|
+
성격 표를 2번 굴려 성격을 결정한다.
|
|
48
|
+
|
|
49
|
+
・안개와 벚꽃의 마르지날리아
|
|
50
|
+
YSTM: 당신의 이야기 표 (마르지날리아) (YST Marginalia)
|
|
51
|
+
STM: 상황 표: 마르지날리아 (ST Marginalia)
|
|
52
|
+
YSTL: 당신의 이야기 표 (편지) (YST Letter)
|
|
53
|
+
YSTR: 당신의 이야기 표 (리콜렉트 돌) (YST Recollect-doll)
|
|
54
|
+
STBR: 상황 표 B: 장소 (리콜렉트 돌) (ST B Recollect-doll)
|
|
55
|
+
STCR: 상황 표 C: 리콜렉트 (ST C Recollect)
|
|
56
|
+
STBS: 상황 표 B: 시트라 세팅 (ST B Sut Tu Real)
|
|
57
|
+
STE: 상황 표: 이클립스 전용 (ST Eclipse)
|
|
58
|
+
|
|
59
|
+
・자탄의 알트리부트
|
|
60
|
+
FT: 프래그먼트 표 (Fragment Table)
|
|
61
|
+
프래그먼트 표를 5번 굴린다.
|
|
62
|
+
FTx: 프래그먼트 표를 x회 굴린다.
|
|
63
|
+
YSTB: 당신의 이야기 (브링거) (YST Bringer)
|
|
64
|
+
YSTF: 당신의 이야기 (포지) (YST Forge)
|
|
65
|
+
STAL: 상황 표 (알트리부트) (ST Alt-Levoot)
|
|
66
|
+
INFO_MESSAGE_TEXT
|
|
67
|
+
|
|
68
|
+
register_prefix_from_super_class()
|
|
69
|
+
|
|
70
|
+
def initialize(command)
|
|
71
|
+
super(command)
|
|
72
|
+
|
|
73
|
+
@locale = :ko_kr
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
TABLES = translate_tables(:ko_kr).freeze
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -37,8 +37,7 @@ module BCDice
|
|
|
37
37
|
・超未来の宇宙船内 INT
|
|
38
38
|
MESSAGETEXT
|
|
39
39
|
|
|
40
|
-
register_prefix('
|
|
41
|
-
|
|
40
|
+
register_prefix('\d*DA', 'VPFT', 'VNFT', 'VNRT', 'AAFT', 'AST', 'RNST', 'RET', 'TRST', 'TRAT', 'TRMT', 'TROT', 'TET', 'ENT', 'CUT', 'NAT', 'INT')
|
|
42
41
|
def eval_game_system_specific_command(command) # ダイスロールコマンド
|
|
43
42
|
# 通常判定部分をgetJudgeResultコマンドに切り分け
|
|
44
43
|
output = getJudgeResult(command)
|
|
@@ -104,7 +103,7 @@ module BCDice
|
|
|
104
103
|
|
|
105
104
|
def getJudgeResult(command)
|
|
106
105
|
case command
|
|
107
|
-
when /(\d+)
|
|
106
|
+
when /(\d+)?DA([\d+*\-]*\d)?\[(\d+),(\d+)(,(\d+))?\]/i
|
|
108
107
|
number = (Regexp.last_match(1) || 1).to_i
|
|
109
108
|
correction = (Regexp.last_match(2) || 0).to_i
|
|
110
109
|
single = (Regexp.last_match(3) || 4).to_i
|
|
@@ -32,22 +32,14 @@ module BCDice
|
|
|
32
32
|
@d66_sort_type = D66SortType::ASC
|
|
33
33
|
end
|
|
34
34
|
|
|
35
|
-
def
|
|
36
|
-
return
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
translate("StratoShout.critical")
|
|
44
|
-
elsif total >= target
|
|
45
|
-
translate("success")
|
|
46
|
-
else
|
|
47
|
-
translate("failure")
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
return " > #{result}"
|
|
35
|
+
def result_2d6(_total, dice_total, _dice_list, cmp_op, _target)
|
|
36
|
+
return nil unless cmp_op == :>=
|
|
37
|
+
|
|
38
|
+
if dice_total <= 2
|
|
39
|
+
Result.fumble(translate("StratoShout.fumble"))
|
|
40
|
+
elsif dice_total >= 12
|
|
41
|
+
Result.critical(translate("StratoShout.critical"))
|
|
42
|
+
end
|
|
51
43
|
end
|
|
52
44
|
|
|
53
45
|
def eval_game_system_specific_command(command)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "bcdice/base"
|
|
3
4
|
require "bcdice/game_system/sword_world/rating_parser"
|
|
4
5
|
|
|
5
6
|
module BCDice
|
|
@@ -9,7 +10,7 @@ module BCDice
|
|
|
9
10
|
ID = 'SwordWorld'
|
|
10
11
|
|
|
11
12
|
# ゲームシステム名
|
|
12
|
-
NAME = '
|
|
13
|
+
NAME = 'ソード・ワールドRPG'
|
|
13
14
|
|
|
14
15
|
# ゲームシステム名の読みがな
|
|
15
16
|
SORT_KEY = 'そおとわあると'
|
|
@@ -17,7 +18,7 @@ module BCDice
|
|
|
17
18
|
# ダイスボットの使い方
|
|
18
19
|
HELP_MESSAGE = "・SW レーティング表 (Kx[c]+m$f) (x:キー, c:クリティカル値, m:ボーナス, f:出目修正)\n"
|
|
19
20
|
|
|
20
|
-
register_prefix('H?K
|
|
21
|
+
register_prefix('H?K')
|
|
21
22
|
|
|
22
23
|
def initialize(command)
|
|
23
24
|
super(command)
|
|
@@ -125,10 +126,17 @@ module BCDice
|
|
|
125
126
|
break unless dice >= command.critical
|
|
126
127
|
end
|
|
127
128
|
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
result_text, critical, fumble = getResultText(
|
|
130
|
+
totalValue, command, diceResults, diceResultTotals,
|
|
131
|
+
rateResults, diceOnlyTotal, round
|
|
132
|
+
)
|
|
133
|
+
output += result_text
|
|
130
134
|
|
|
131
|
-
return
|
|
135
|
+
return Result.new.tap do |r|
|
|
136
|
+
r.text = output
|
|
137
|
+
r.critical = critical
|
|
138
|
+
r.fumble = fumble
|
|
139
|
+
end
|
|
132
140
|
end
|
|
133
141
|
|
|
134
142
|
def getSW2_0_RatingTable
|
|
@@ -301,6 +309,7 @@ module BCDice
|
|
|
301
309
|
# @param rateResults [Array<String>]
|
|
302
310
|
# @param dice_total [Integer]
|
|
303
311
|
# @param round [Integer]
|
|
312
|
+
# @return [Array(String, Boolean, Boolean)] output, critical, fumble
|
|
304
313
|
def getResultText(rating_total, command, diceResults, diceResultTotals,
|
|
305
314
|
rateResults, dice_total, round)
|
|
306
315
|
sequence = []
|
|
@@ -310,7 +319,7 @@ module BCDice
|
|
|
310
319
|
if dice_total <= 2
|
|
311
320
|
sequence.push(rateResults.join(','))
|
|
312
321
|
sequence.push("自動的失敗")
|
|
313
|
-
return sequence.join(" > ")
|
|
322
|
+
return sequence.join(" > "), false, true
|
|
314
323
|
end
|
|
315
324
|
|
|
316
325
|
# rate回数が1回で、修正値がない時には途中式と最終結果が一致するので、途中式を省略する
|
|
@@ -347,7 +356,7 @@ module BCDice
|
|
|
347
356
|
total_text = total.to_s
|
|
348
357
|
sequence.push(total_text)
|
|
349
358
|
|
|
350
|
-
return sequence.join(" > ")
|
|
359
|
+
return sequence.join(" > "), round > 1, false
|
|
351
360
|
end
|
|
352
361
|
end
|
|
353
362
|
end
|
|
@@ -12,7 +12,7 @@ module BCDice
|
|
|
12
12
|
ID = 'SwordWorld2.0'
|
|
13
13
|
|
|
14
14
|
# ゲームシステム名
|
|
15
|
-
NAME = '
|
|
15
|
+
NAME = 'ソード・ワールド2.0'
|
|
16
16
|
|
|
17
17
|
# ゲームシステム名の読みがな
|
|
18
18
|
SORT_KEY = 'そおとわあると2.0'
|
|
@@ -68,7 +68,7 @@ module BCDice
|
|
|
68
68
|
絡み効果表を出すことができます。
|
|
69
69
|
INFO_MESSAGE_TEXT
|
|
70
70
|
|
|
71
|
-
register_prefix('H?K
|
|
71
|
+
register_prefix('H?K', 'Gr', '2D6?@\d+', 'FT', 'TT')
|
|
72
72
|
|
|
73
73
|
def initialize(command)
|
|
74
74
|
super(command)
|
|
@@ -9,7 +9,7 @@ module BCDice
|
|
|
9
9
|
ID = 'SwordWorld2.5'
|
|
10
10
|
|
|
11
11
|
# ゲームシステム名
|
|
12
|
-
NAME = '
|
|
12
|
+
NAME = 'ソード・ワールド2.5'
|
|
13
13
|
|
|
14
14
|
# ゲームシステム名の読みがな
|
|
15
15
|
SORT_KEY = 'そおとわあると2.5'
|
|
@@ -76,7 +76,7 @@ module BCDice
|
|
|
76
76
|
アビスカース表を出すことができます。
|
|
77
77
|
INFO_MESSAGE_TEXT
|
|
78
78
|
|
|
79
|
-
register_prefix('H?K
|
|
79
|
+
register_prefix('H?K', 'Gr', '2D6?@\d+', 'FT', 'TT', 'Dru', 'ABT')
|
|
80
80
|
|
|
81
81
|
ABYSS_CURSE_TABLE = DiceTable::D66GridTable.new(
|
|
82
82
|
'アビスカース表', [
|
|
@@ -52,18 +52,19 @@ module BCDice
|
|
|
52
52
|
|
|
53
53
|
result =
|
|
54
54
|
if cmd.cmp_op
|
|
55
|
-
total.send(cmd.cmp_op, cmd.target_number) ? "成功" : "失敗"
|
|
55
|
+
total.send(cmd.cmp_op, cmd.target_number) ? Result.success("成功") : Result.failure("失敗")
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
sequence = [
|
|
59
59
|
"(#{cmd})",
|
|
60
60
|
interim_expr(cmd, dice_total),
|
|
61
61
|
total.to_s,
|
|
62
|
-
result,
|
|
62
|
+
result.text,
|
|
63
63
|
epp(count_one)
|
|
64
64
|
].compact
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
result.text = sequence.join(" > ")
|
|
67
|
+
return result
|
|
67
68
|
end
|
|
68
69
|
|
|
69
70
|
# 出目が全て同じか
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BCDice
|
|
4
|
+
module GameSystem
|
|
5
|
+
class ToshiakiHolyGrailWar < Base
|
|
6
|
+
# ゲームシステムの識別子
|
|
7
|
+
ID = 'ToshiakiHolyGrailWar'
|
|
8
|
+
# ゲームシステム名
|
|
9
|
+
NAME = 'としあきの聖杯戦争TRPG'
|
|
10
|
+
# ゲームシステム名の読みがな
|
|
11
|
+
SORT_KEY = 'としあきのせいはいせんそうTRPG'
|
|
12
|
+
# ダイスボットの使い方
|
|
13
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
|
14
|
+
■ 判定 (Fx+y-z@a>=t)
|
|
15
|
+
補正値ペナルティを自動計算してダイスの面数を決定しダイスロールを実行します。
|
|
16
|
+
ダイス面数は2以上、10以下の範囲に制限されます。
|
|
17
|
+
x: ステータス
|
|
18
|
+
y: 補正値 (任意)
|
|
19
|
+
z: マイナス補正値 (任意)
|
|
20
|
+
a: ダイス面数の増量 (任意)
|
|
21
|
+
t: 目標値 (任意)
|
|
22
|
+
例)
|
|
23
|
+
F8+11, F8+11-5, F8+11-5@1, F8+11+9-3-2@-1, F8+11-5>=50, F8
|
|
24
|
+
INFO_MESSAGE_TEXT
|
|
25
|
+
|
|
26
|
+
register_prefix('F')
|
|
27
|
+
|
|
28
|
+
def eval_game_system_specific_command(command)
|
|
29
|
+
roll_f(command)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
def roll_f(command)
|
|
35
|
+
parser = Command::Parser.new(/F(\d+)(\+\d+)*(-\d+)*/, round_type: RoundType::CEIL)
|
|
36
|
+
.disable_modifier
|
|
37
|
+
.enable_critical
|
|
38
|
+
cmd = parser.parse(command)
|
|
39
|
+
unless cmd
|
|
40
|
+
return nil
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
m = cmd.command.match(/^F(\d+)((?:\+\d+)+)?((?:-\d+)+)?$/)
|
|
44
|
+
unless m
|
|
45
|
+
return nil
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
status = m[1].to_i
|
|
49
|
+
positive_modifier = m[2] ? Arithmetic.eval(m[2], RoundType::CEIL) : 0
|
|
50
|
+
negative_modifier = m[3] ? Arithmetic.eval(m[3], RoundType::CEIL) : 0
|
|
51
|
+
side_bonus = cmd.critical || 0
|
|
52
|
+
|
|
53
|
+
times = [status + positive_modifier + negative_modifier, 0].max
|
|
54
|
+
sides = (6 - positive_modifier_penalty(positive_modifier) + negative_modifier_bonus(negative_modifier) + side_bonus).clamp(2, 10)
|
|
55
|
+
|
|
56
|
+
list = @randomizer.roll_barabara(times, sides)
|
|
57
|
+
total = list.sum()
|
|
58
|
+
result =
|
|
59
|
+
if cmd.cmp_op.nil?
|
|
60
|
+
Result.new
|
|
61
|
+
elsif total.send(cmd.cmp_op, cmd.target_number)
|
|
62
|
+
Result.success("成功")
|
|
63
|
+
else
|
|
64
|
+
Result.failure("失敗")
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
sequence = [
|
|
68
|
+
cmd,
|
|
69
|
+
"(#{times}D#{sides}#{cmd.cmp_op}#{cmd.target_number})",
|
|
70
|
+
"#{total}[#{list.join(',')}]",
|
|
71
|
+
total,
|
|
72
|
+
result.text,
|
|
73
|
+
].compact
|
|
74
|
+
|
|
75
|
+
result.text = sequence.join(" > ")
|
|
76
|
+
return result
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
def positive_modifier_penalty(modifier)
|
|
80
|
+
if modifier <= 10
|
|
81
|
+
0
|
|
82
|
+
else
|
|
83
|
+
modifier / 10
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def negative_modifier_bonus(modifier)
|
|
88
|
+
modifier <= -5 ? 1 : 0
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require "bcdice/dice_table/table"
|
|
4
|
+
require "bcdice/format"
|
|
5
|
+
|
|
3
6
|
module BCDice
|
|
4
7
|
module GameSystem
|
|
5
8
|
class TrinitySeven < Base
|
|
@@ -17,15 +20,15 @@ module BCDice
|
|
|
17
20
|
クリティカルが変動した命中及び、7の出目がある場合のダメージ計算が行なえます。
|
|
18
21
|
なお、通常の判定としても利用できます。
|
|
19
22
|
|
|
20
|
-
・発動/命中 [TR(±c*)<=(x
|
|
21
|
-
"TR(クリティカルの修正値*)
|
|
23
|
+
・発動/命中 [TR(±c*)<=(x)±(y*) 又は TR<=(x) など]*は必須ではない項目です。
|
|
24
|
+
"TR(クリティカルの修正値*)<=(発動/命中)±(発動/命中の修正値*)"
|
|
22
25
|
加算減算のみ修正値も付けられます。 [修正値]は必須ではありません。
|
|
23
|
-
例)TR<=50
|
|
26
|
+
例)TR<=50 TR<=60+20 TR7<=40 TR-7<=80 TR+10<=80+20
|
|
24
27
|
|
|
25
|
-
・ダメージ計算
|
|
26
|
-
"(ダイス数)DM(7の出目の数*)
|
|
28
|
+
・ダメージ計算 [(x)DM(c*)±(y*) 又は (x)DM(c*) 又は (x)DM±(y*)]*は必須ではない項目です。
|
|
29
|
+
"(ダイス数)DM(7の出目の数*)+(修正*)"
|
|
27
30
|
加算減算のみ修正値も付けられます。 [7の出目の数]および[修正値]は必須ではありません。
|
|
28
|
-
例)6DM2+1
|
|
31
|
+
例)6DM2+1 5DM2 4DM 3DM+3
|
|
29
32
|
後から7の出目に変更する場合はC(7*6+5)のように入力して計算してください。
|
|
30
33
|
|
|
31
34
|
・名前表 [TRNAME]
|
|
@@ -33,87 +36,77 @@ module BCDice
|
|
|
33
36
|
|
|
34
37
|
MESSAGETEXT
|
|
35
38
|
|
|
36
|
-
register_prefix('
|
|
39
|
+
register_prefix('\d+DM', 'TR', 'TRNAME')
|
|
37
40
|
|
|
38
41
|
def eval_game_system_specific_command(command) # スパゲッティなコードだけど許して!!! → 絶対に許さない。全力でリファクタリングした。
|
|
39
42
|
debug("eval_game_system_specific_command command", command)
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return "#{firstName} , #{secondName}"
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
if /^TR([+\-\d]*)<=(\d*)([+\-\d]*)/ =~ command
|
|
48
|
-
critical = Regexp.last_match(1).to_i + 7
|
|
49
|
-
target = Regexp.last_match(2).to_i
|
|
50
|
-
modify = Regexp.last_match(3).to_i
|
|
51
|
-
return rollHit(command, critical, target, modify)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
if /^(\d*)DM(\d*)([+\-\d]*)$/ =~ command
|
|
55
|
-
diceCount = Regexp.last_match(1).to_i
|
|
56
|
-
critical = Regexp.last_match(2).to_i
|
|
57
|
-
modify = Regexp.last_match(3).to_i
|
|
58
|
-
return rollDamage(command, diceCount, critical, modify)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
return ''
|
|
44
|
+
roll_hit(command) ||
|
|
45
|
+
roll_damage(command) ||
|
|
46
|
+
roll_name(command)
|
|
62
47
|
end
|
|
63
48
|
|
|
64
|
-
def
|
|
65
|
-
|
|
49
|
+
def roll_hit(command)
|
|
50
|
+
parser = Command::Parser.new(/TR\d*/, round_type: round_type)
|
|
51
|
+
.restrict_cmp_op_to(:<=)
|
|
52
|
+
cmd = parser.parse(command)
|
|
53
|
+
return nil unless cmd
|
|
66
54
|
|
|
67
|
-
|
|
68
|
-
|
|
55
|
+
modify = cmd.command[2..-1].to_i + cmd.modify_number
|
|
56
|
+
critical = 7 + modify
|
|
57
|
+
target = cmd.target_number
|
|
69
58
|
|
|
70
|
-
|
|
71
|
-
|
|
59
|
+
total = @randomizer.roll_once(100)
|
|
60
|
+
result = get_hit_roll_result(total, target, critical)
|
|
72
61
|
|
|
73
|
-
|
|
74
|
-
|
|
62
|
+
cmd.command = "TR"
|
|
63
|
+
cmd.modify_number = modify
|
|
75
64
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return "クリティカル" if total <= critical
|
|
65
|
+
result.text = "(#{cmd}) > #{total} > #{result.text}"
|
|
66
|
+
debug("eval_game_system_specific_command result text", result.text)
|
|
79
67
|
|
|
80
|
-
|
|
68
|
+
result
|
|
69
|
+
end
|
|
81
70
|
|
|
82
|
-
|
|
71
|
+
def get_hit_roll_result(total, target, critical)
|
|
72
|
+
if total >= 96
|
|
73
|
+
Result.fumble("ファンブル")
|
|
74
|
+
elsif total <= critical
|
|
75
|
+
Result.critical("クリティカル")
|
|
76
|
+
elsif total <= target
|
|
77
|
+
Result.success("成功")
|
|
78
|
+
else
|
|
79
|
+
Result.failure("失敗")
|
|
80
|
+
end
|
|
83
81
|
end
|
|
84
82
|
|
|
85
|
-
def
|
|
86
|
-
|
|
83
|
+
def roll_damage(command)
|
|
84
|
+
parser = Command::Parser.new(/\d+DM\d*/, round_type: round_type)
|
|
85
|
+
.restrict_cmp_op_to(nil)
|
|
86
|
+
cmd = parser.parse(command)
|
|
87
|
+
return nil unless cmd
|
|
87
88
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
diceText = dice_list.join(",")
|
|
89
|
+
dice_count, critical = cmd.command.split("DM", 2).map(&:to_i)
|
|
90
|
+
modify = cmd.modify_number
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
dice_list = @randomizer.roll_barabara(dice_count, 6).sort
|
|
93
|
+
dice_text = dice_list.join(",")
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
total, additionalList = get_roll_damage_result(dice_count, critical, dice_list, modify)
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
modifyText = "+#{modify}" if modify > 0
|
|
99
|
-
modifyText = modify.to_s if modify < 0
|
|
97
|
+
additionalListText = additionalList.nil? ? "" : "→[#{additionalList.join(',')}]"
|
|
100
98
|
|
|
101
|
-
text = "(#{
|
|
99
|
+
text = "(#{cmd}) > [#{dice_text}]#{additionalListText}#{Format.modifier(modify)} > #{total}"
|
|
102
100
|
|
|
103
101
|
return text
|
|
104
102
|
end
|
|
105
103
|
|
|
106
|
-
def
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
total += modify
|
|
111
|
-
return total, diceList
|
|
104
|
+
def get_roll_damage_result(diceCount, critical, diceList, modify)
|
|
105
|
+
if critical <= 0
|
|
106
|
+
total = diceList.sum() + modify
|
|
107
|
+
return total, nil
|
|
112
108
|
end
|
|
113
109
|
|
|
114
|
-
diceList = diceText.split(/,/).map(&:to_i)
|
|
115
|
-
|
|
116
|
-
diceList.sort!
|
|
117
110
|
restDice = diceList.clone
|
|
118
111
|
|
|
119
112
|
critical = diceCount if critical > diceCount
|
|
@@ -127,238 +120,244 @@ module BCDice
|
|
|
127
120
|
max = restDice.pop
|
|
128
121
|
max = 1 if max.nil?
|
|
129
122
|
|
|
130
|
-
total = max * (7**critical) + modify
|
|
131
|
-
restDice.each { |i| total += i }
|
|
123
|
+
total = max * (7**critical) + restDice.sum() + modify
|
|
132
124
|
|
|
133
125
|
return total, diceList
|
|
134
126
|
end
|
|
135
127
|
|
|
136
|
-
def
|
|
128
|
+
def result_1d100(_total, dice_total, _cmp_op, _target)
|
|
137
129
|
if dice_total >= 96
|
|
138
|
-
"
|
|
130
|
+
Result.fumble("ファンブル")
|
|
139
131
|
elsif dice_total <= 7
|
|
140
|
-
"
|
|
132
|
+
Result.critical("クリティカル")
|
|
141
133
|
end
|
|
142
134
|
end
|
|
143
135
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
[2, '浅見'],
|
|
149
|
-
[3, '風間'],
|
|
150
|
-
[4, '神無月'],
|
|
151
|
-
[5, '倉田'],
|
|
152
|
-
[6, '不動'],
|
|
153
|
-
[7, '山奈'],
|
|
154
|
-
[8, 'シャルロック'],
|
|
155
|
-
[9, '霧隠'],
|
|
156
|
-
[10, '果心'],
|
|
157
|
-
[11, '今井'],
|
|
158
|
-
[12, '長瀬'],
|
|
159
|
-
[13, '明智'],
|
|
160
|
-
[14, '風祭'],
|
|
161
|
-
[15, '志貫'],
|
|
162
|
-
[16, '一文字'],
|
|
163
|
-
[17, '月夜野'],
|
|
164
|
-
[18, '桜田門'],
|
|
165
|
-
[19, '果瀬'],
|
|
166
|
-
[20, '九十九'],
|
|
167
|
-
[21, '速水'],
|
|
168
|
-
[22, '片桐'],
|
|
169
|
-
[23, '葉月'],
|
|
170
|
-
[24, 'ウィンザー'],
|
|
171
|
-
[25, '時雨里'],
|
|
172
|
-
[26, '神城'],
|
|
173
|
-
[27, '水際'],
|
|
174
|
-
[28, '一ノ江'],
|
|
175
|
-
[29, '仁藤'],
|
|
176
|
-
[30, '北千住'],
|
|
177
|
-
[31, '西村'],
|
|
178
|
-
[32, '諏訪'],
|
|
179
|
-
[33, '藤宮'],
|
|
180
|
-
[34, '御代'],
|
|
181
|
-
[35, '橘'],
|
|
182
|
-
[36, '霧生'],
|
|
183
|
-
[37, '白石'],
|
|
184
|
-
[38, '椎名'],
|
|
185
|
-
[39, '綾小路'],
|
|
186
|
-
[40, '二条'],
|
|
187
|
-
[41, '光明寺'],
|
|
188
|
-
[42, '春秋'],
|
|
189
|
-
[43, '雪見'],
|
|
190
|
-
[44, '刀条院'],
|
|
191
|
-
[45, 'ランカスター'],
|
|
192
|
-
[46, 'ハクア'],
|
|
193
|
-
[47, 'エルタニア'],
|
|
194
|
-
[48, 'ハーネス'],
|
|
195
|
-
[49, 'アウグストゥス'],
|
|
196
|
-
[50, '椎名町'],
|
|
197
|
-
[51, '鍵守'],
|
|
198
|
-
[52, '茜ヶ崎'],
|
|
199
|
-
[53, '鎮宮'],
|
|
200
|
-
[54, '美柳'],
|
|
201
|
-
[55, '鎖々塚'],
|
|
202
|
-
[56, '櫻ノ杜'],
|
|
203
|
-
[57, '鏡ヶ守'],
|
|
204
|
-
[58, '輝井'],
|
|
205
|
-
[59, '南陽'],
|
|
206
|
-
[60, '雪乃城'],
|
|
207
|
-
[61, '六角屋'],
|
|
208
|
-
[62, '鈴々'],
|
|
209
|
-
[63, '東三条'],
|
|
210
|
-
[64, '朱雀院'],
|
|
211
|
-
[65, '青龍院'],
|
|
212
|
-
[66, '白虎院'],
|
|
213
|
-
[67, '玄武院'],
|
|
214
|
-
[68, '麒麟院'],
|
|
215
|
-
[69, 'リーシュタット'],
|
|
216
|
-
[70, 'サンクチュアリ'],
|
|
217
|
-
[71, '六実'],
|
|
218
|
-
[72, '須藤'],
|
|
219
|
-
[73, 'ミレニアム'],
|
|
220
|
-
[74, '七里'],
|
|
221
|
-
[75, '三枝'],
|
|
222
|
-
[76, '八殿'],
|
|
223
|
-
[77, '藤里'],
|
|
224
|
-
[78, '久宝'],
|
|
225
|
-
[79, '東'],
|
|
226
|
-
[80, '赤西'],
|
|
227
|
-
[81, '神ヶ崎'],
|
|
228
|
-
[82, 'グランシア'],
|
|
229
|
-
[83, 'ダークブーレード'],
|
|
230
|
-
[84, '天光寺'],
|
|
231
|
-
[85, '月見里'],
|
|
232
|
-
[86, '璃宮'],
|
|
233
|
-
[87, '藤見澤'],
|
|
234
|
-
[88, '赤聖'],
|
|
235
|
-
[89, '姫宮'],
|
|
236
|
-
[90, '華ノ宮'],
|
|
237
|
-
[91, '天才'],
|
|
238
|
-
[92, '達人'],
|
|
239
|
-
[93, '賢者'],
|
|
240
|
-
[94, '疾風'],
|
|
241
|
-
[95, '海の'],
|
|
242
|
-
[96, '最強'],
|
|
243
|
-
[97, '凶器'],
|
|
244
|
-
[98, '灼熱'],
|
|
245
|
-
[99, '人間兵器'],
|
|
246
|
-
[100, '魔王'],
|
|
247
|
-
]
|
|
136
|
+
def roll_name(command)
|
|
137
|
+
unless command == "TRNAME"
|
|
138
|
+
return nil
|
|
139
|
+
end
|
|
248
140
|
|
|
249
|
-
|
|
141
|
+
first_name = NAME1.roll(@randomizer).last_body
|
|
142
|
+
second_name = NAME2.roll(@randomizer).last_body
|
|
250
143
|
|
|
251
|
-
|
|
144
|
+
text = "#{first_name} , #{second_name}"
|
|
145
|
+
return text
|
|
252
146
|
end
|
|
253
147
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
148
|
+
NAME1 = DiceTable::Table.new(
|
|
149
|
+
"名字表",
|
|
150
|
+
"1D100",
|
|
151
|
+
[
|
|
152
|
+
'春日', # 1
|
|
153
|
+
'浅見',
|
|
154
|
+
'風間',
|
|
155
|
+
'神無月',
|
|
156
|
+
'倉田',
|
|
157
|
+
'不動',
|
|
158
|
+
'山奈',
|
|
159
|
+
'シャルロック',
|
|
160
|
+
'霧隠',
|
|
161
|
+
'果心', # 10
|
|
162
|
+
'今井',
|
|
163
|
+
'長瀬',
|
|
164
|
+
'明智',
|
|
165
|
+
'風祭',
|
|
166
|
+
'志貫',
|
|
167
|
+
'一文字',
|
|
168
|
+
'月夜野',
|
|
169
|
+
'桜田門',
|
|
170
|
+
'果瀬',
|
|
171
|
+
'九十九', # 20
|
|
172
|
+
'速水',
|
|
173
|
+
'片桐',
|
|
174
|
+
'葉月',
|
|
175
|
+
'ウィンザー',
|
|
176
|
+
'時雨里',
|
|
177
|
+
'神城',
|
|
178
|
+
'水際',
|
|
179
|
+
'一ノ江',
|
|
180
|
+
'仁藤',
|
|
181
|
+
'北千住', # 30
|
|
182
|
+
'西村',
|
|
183
|
+
'諏訪',
|
|
184
|
+
'藤宮',
|
|
185
|
+
'御代',
|
|
186
|
+
'橘',
|
|
187
|
+
'霧生',
|
|
188
|
+
'白石',
|
|
189
|
+
'椎名',
|
|
190
|
+
'綾小路',
|
|
191
|
+
'二条', # 40
|
|
192
|
+
'光明寺',
|
|
193
|
+
'春秋',
|
|
194
|
+
'雪見',
|
|
195
|
+
'刀条院',
|
|
196
|
+
'ランカスター',
|
|
197
|
+
'ハクア',
|
|
198
|
+
'エルタニア',
|
|
199
|
+
'ハーネス',
|
|
200
|
+
'アウグストゥス',
|
|
201
|
+
'椎名町', # 50
|
|
202
|
+
'鍵守',
|
|
203
|
+
'茜ヶ崎',
|
|
204
|
+
'鎮宮',
|
|
205
|
+
'美柳',
|
|
206
|
+
'鎖々塚',
|
|
207
|
+
'櫻ノ杜',
|
|
208
|
+
'鏡ヶ守',
|
|
209
|
+
'輝井',
|
|
210
|
+
'南陽',
|
|
211
|
+
'雪乃城', # 60
|
|
212
|
+
'六角屋',
|
|
213
|
+
'鈴々',
|
|
214
|
+
'東三条',
|
|
215
|
+
'朱雀院',
|
|
216
|
+
'青龍院',
|
|
217
|
+
'白虎院',
|
|
218
|
+
'玄武院',
|
|
219
|
+
'麒麟院',
|
|
220
|
+
'リーシュタット',
|
|
221
|
+
'サンクチュアリ', # 70
|
|
222
|
+
'六実',
|
|
223
|
+
'須藤',
|
|
224
|
+
'ミレニアム',
|
|
225
|
+
'七里',
|
|
226
|
+
'三枝',
|
|
227
|
+
'八殿',
|
|
228
|
+
'藤里',
|
|
229
|
+
'久宝',
|
|
230
|
+
'東',
|
|
231
|
+
'赤西', # 80
|
|
232
|
+
'神ヶ崎',
|
|
233
|
+
'グランシア',
|
|
234
|
+
'ダークブーレード',
|
|
235
|
+
'天光寺',
|
|
236
|
+
'月見里',
|
|
237
|
+
'璃宮',
|
|
238
|
+
'藤見澤',
|
|
239
|
+
'赤聖',
|
|
240
|
+
'姫宮',
|
|
241
|
+
'華ノ宮', # 90
|
|
242
|
+
'"天才"',
|
|
243
|
+
'"達人"',
|
|
244
|
+
'"賢者"',
|
|
245
|
+
'"疾風"',
|
|
246
|
+
'"海の"',
|
|
247
|
+
'"最強"',
|
|
248
|
+
'"凶器"',
|
|
249
|
+
'"灼熱"',
|
|
250
|
+
'"人間兵器"',
|
|
251
|
+
'"魔王"', # 100
|
|
356
252
|
]
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
253
|
+
)
|
|
254
|
+
|
|
255
|
+
NAME2 = DiceTable::Table.new(
|
|
256
|
+
"名字表",
|
|
257
|
+
"1D100",
|
|
258
|
+
[
|
|
259
|
+
'アラタ/聖', # 1
|
|
260
|
+
'アビィス/リリス',
|
|
261
|
+
'ルーグ/レヴィ',
|
|
262
|
+
'ラスト/アリン',
|
|
263
|
+
'ソラ/ユイ',
|
|
264
|
+
'イーリアス/アキオ',
|
|
265
|
+
'アカーシャ/ミラ',
|
|
266
|
+
'アリエス/リーゼロッテ',
|
|
267
|
+
'ムラサメ/シャルム',
|
|
268
|
+
'龍貴/竜姫', # 10
|
|
269
|
+
'英樹/春菜',
|
|
270
|
+
'準一/湊',
|
|
271
|
+
'急司郎/光理',
|
|
272
|
+
'夕也/愛奈',
|
|
273
|
+
'晴彦/アキ',
|
|
274
|
+
'疾風/ヤシロ',
|
|
275
|
+
'カガリ/灯花',
|
|
276
|
+
'次郎/優都',
|
|
277
|
+
'春太郎/静理',
|
|
278
|
+
'ジン/時雨', # 20
|
|
279
|
+
'イオリ/伊織',
|
|
280
|
+
'ユウヒ/優姫',
|
|
281
|
+
'サツキ/翠名',
|
|
282
|
+
'シュライ/サクラ',
|
|
283
|
+
'ミナヅキ/姫乃',
|
|
284
|
+
'カエデ/優樹菜',
|
|
285
|
+
'ハル/フユ',
|
|
286
|
+
'ドール/瑞江',
|
|
287
|
+
'ニトゥレスト/キリカ',
|
|
288
|
+
'スカー/綾瀬', # 30
|
|
289
|
+
'真夏/小夏',
|
|
290
|
+
'光一/ののか',
|
|
291
|
+
'彩/翠',
|
|
292
|
+
'トウカ/柊花',
|
|
293
|
+
'命/ミコト',
|
|
294
|
+
'司/つかさ',
|
|
295
|
+
'ゆとり/なごみ',
|
|
296
|
+
'冬彦/観月',
|
|
297
|
+
'カレン/華恋',
|
|
298
|
+
'清次郎/亜矢', # 40
|
|
299
|
+
'サード/夢子',
|
|
300
|
+
'ボックス/詩子',
|
|
301
|
+
'ヘリオス/カエデ',
|
|
302
|
+
'ゲート/京香',
|
|
303
|
+
'オンリー/パトリシア',
|
|
304
|
+
'ザッハーク/アーリ',
|
|
305
|
+
'ラスタバン/ラスティ',
|
|
306
|
+
'桜花/燁澄',
|
|
307
|
+
'計都/リヴィア',
|
|
308
|
+
'カルヴァリオ/香夜', # 50
|
|
309
|
+
'悠人/夜々子',
|
|
310
|
+
'太子/羽菜',
|
|
311
|
+
'夕立/夕凪',
|
|
312
|
+
'アルフ/愛美',
|
|
313
|
+
'ファロス/灯利',
|
|
314
|
+
'スプートニク/詩姫',
|
|
315
|
+
'アーネスト/累',
|
|
316
|
+
'ナイン/カグヤ',
|
|
317
|
+
'クリア/ヒマワリ',
|
|
318
|
+
'ウォーカー/オリビア', # 60
|
|
319
|
+
'ダーク/クオン',
|
|
320
|
+
'ウェイヴ/凛',
|
|
321
|
+
'ルーン/マリエ',
|
|
322
|
+
'エンギ/セイギ',
|
|
323
|
+
'シラヌイ/ミライ',
|
|
324
|
+
'ブライン/キズナ',
|
|
325
|
+
'クロウ/カナタ',
|
|
326
|
+
'スレイヤー/ヒカル',
|
|
327
|
+
'レス/ミリアリア',
|
|
328
|
+
'ミフユ/サリエル', # 70
|
|
329
|
+
'鳴央/音央',
|
|
330
|
+
'モンジ/理亜',
|
|
331
|
+
'パルデモントゥム/スナオ',
|
|
332
|
+
'ミシェル/詩穂',
|
|
333
|
+
'フレンズ/サン',
|
|
334
|
+
'サトリ/識',
|
|
335
|
+
'ロード/唯花',
|
|
336
|
+
'クロノス/久宝',
|
|
337
|
+
'フィラデルフィア/冬海',
|
|
338
|
+
'ティンダロス/美星', # 80
|
|
339
|
+
'勇弥/ユーリス',
|
|
340
|
+
'エイト/アンジェラ',
|
|
341
|
+
'サタン/ルシエル',
|
|
342
|
+
'エース/小波',
|
|
343
|
+
'セージ/胡蝶',
|
|
344
|
+
'忍/千之',
|
|
345
|
+
'重吾/キリコ',
|
|
346
|
+
'マイケル/ミホシ',
|
|
347
|
+
'カズマ/鶴香',
|
|
348
|
+
'ヤマト/エリシエル', # 90
|
|
349
|
+
'歴史上の人物の名前(信長、ジャンヌなど)',
|
|
350
|
+
'スポーツ選手の名前(ベッカム、沙保里など)',
|
|
351
|
+
'学者の名前(ソクラテス、エレナなど)',
|
|
352
|
+
'アイドルの名前(タクヤ、聖子など)',
|
|
353
|
+
'土地、国、町の名前(イングランド、ワシントンなど)',
|
|
354
|
+
'モンスターの名前(ドラゴン、ラミアなど)',
|
|
355
|
+
'武器防具の名前(ソード、メイルなど)',
|
|
356
|
+
'自然現象の名前(カザンハリケーンなど)',
|
|
357
|
+
'機械の名前(洗濯機、テレビなど)',
|
|
358
|
+
'目についた物の名前(シャーペン、メガネなど)', # 100
|
|
359
|
+
]
|
|
360
|
+
)
|
|
362
361
|
end
|
|
363
362
|
end
|
|
364
363
|
end
|