bcdice 3.14.0 → 3.15.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 +59 -0
- data/i18n/Cthulhu/zh_hant.yml +1 -1
- data/i18n/CyberpunkRed/ko_kr.yml +389 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +52 -0
- data/i18n/FutariSousa/ja_jp.yml +138 -138
- data/i18n/KillDeathBusiness/ja_jp.yml +198 -0
- data/i18n/MagicaLogia/ko_kr.yml +2 -2
- data/i18n/MonotoneMuseum/ko_kr.yml +227 -0
- data/i18n/SkynautsBouken/ko_kr.yml +114 -0
- data/i18n/StratoShout/ko_kr.yml +102 -102
- data/i18n/zh_hant.yml +5 -0
- data/lib/bcdice/game_system/Aionia.rb +131 -0
- data/lib/bcdice/game_system/Arianrhod_Korean.rb +2 -0
- data/lib/bcdice/game_system/ArknightsFan.rb +245 -87
- data/lib/bcdice/game_system/BlackJacket_Korean.rb +244 -0
- data/lib/bcdice/game_system/CharonSanctions.rb +112 -0
- data/lib/bcdice/game_system/Cthulhu7th.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/full_auto.rb +293 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/rollable.rb +43 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +470 -306
- data/lib/bcdice/game_system/CyberpunkRed.rb +1 -2
- data/lib/bcdice/game_system/CyberpunkRed_Korean.rb +66 -0
- data/lib/bcdice/game_system/DoubleCross.rb +18 -1
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +5 -1
- data/lib/bcdice/game_system/FullFace.rb +25 -3
- data/lib/bcdice/game_system/FutariSousa.rb +17 -5
- data/lib/bcdice/game_system/Garactier.rb +479 -0
- data/lib/bcdice/game_system/GardenOrder.rb +390 -9
- data/lib/bcdice/game_system/GundogRevised.rb +8 -8
- data/lib/bcdice/game_system/KillDeathBusiness.rb +155 -3
- data/lib/bcdice/game_system/KimitoYell.rb +568 -0
- data/lib/bcdice/game_system/Magius.rb +125 -0
- data/lib/bcdice/game_system/Magius_3rdNewTokyoCity.rb +62 -0
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/NSSQ.rb +17 -9
- data/lib/bcdice/game_system/NervWhitePaper.rb +129 -0
- data/lib/bcdice/game_system/RogueLikeHalf.rb +198 -0
- data/lib/bcdice/game_system/RuneQuestRoleplayingInGlorantha.rb +16 -13
- data/lib/bcdice/game_system/ShinobiGami.rb +73 -43
- data/lib/bcdice/game_system/SkynautsBouken.rb +4 -4
- data/lib/bcdice/game_system/SkynautsBouken_Korean.rb +57 -0
- data/lib/bcdice/game_system/StratoShout_Korean.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +4 -0
- data/lib/bcdice/game_system/SwordWorld2_5.rb +3 -2
- data/lib/bcdice/game_system/TensaiGunshiNiNaro.rb +51 -17
- data/lib/bcdice/game_system/TheIndieHack.rb +82 -0
- data/lib/bcdice/game_system/TorgEternity.rb +35 -6
- data/lib/bcdice/game_system/WoW.rb +161 -0
- data/lib/bcdice/game_system/YankeeMustDie.rb +192 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +225 -28
- data/lib/bcdice/game_system/YuMyoKishi.rb +141 -0
- data/lib/bcdice/game_system/sword_world/rating_lexer.rb +1 -0
- data/lib/bcdice/game_system/sword_world/rating_options.rb +4 -1
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +5 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +129 -115
- data/lib/bcdice/game_system.rb +15 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +22 -6
data/i18n/StratoShout/ko_kr.yml
CHANGED
@@ -4,12 +4,12 @@ ko_kr:
|
|
4
4
|
fumble: "펌블! (드라마페이즈: 【디스코드】+2 / 라이브페이즈: 【컨디션】-2)"
|
5
5
|
RTT:
|
6
6
|
items:
|
7
|
-
- ['
|
7
|
+
- ['가치관', ['과거', '연인', '동료', '가족', '자신', '지금', '이유', '꿈', '세계', '행복', '미래']]
|
8
8
|
- ['신체', ['머리', '눈', '귀', '입', '가슴', '심장', '피', '등', '손', 'XXX', '발']]
|
9
|
-
- ['모티브', ['어둠', '무기', '
|
10
|
-
- ['정서', ['슬픔', '분노', '불안', '공포', '
|
11
|
-
- ['행동', ['
|
12
|
-
- ['역경', ['죽음', '상실', '폭력', '고독', '후회', '실력', '
|
9
|
+
- ['모티브', ['어둠', '무기', '마법', '동물', '도시', '노래', '창문', '꽃', '하늘', '계절', '빛']]
|
10
|
+
- ['정서', ['슬픔', '분노', '불안', '공포', '놀람', '두근거림', '정열', '확신', '기대', '즐거움', '기쁨']]
|
11
|
+
- ['행동', ['울다', '잊다', '지우다', '부수다', '외치다', '노래하다', '춤추다', '달리다', '만나다', '부르다', '웃다']]
|
12
|
+
- ['역경', ['죽음', '상실', '폭력', '고독', '후회', '실력', '따분함', '본성', '재산', '연애', '삶']]
|
13
13
|
rtt_format: '특기 리스트 > [%<category_dice>d,%<row_dice>d] > %<text>s'
|
14
14
|
rttn_format: '특기 리스트(%<category_name>s분야) > [%<row_dice>d] > %<text>s'
|
15
15
|
table:
|
@@ -17,144 +17,144 @@ ko_kr:
|
|
17
17
|
name: 보컬 트러블표(P167)
|
18
18
|
type: 1D6
|
19
19
|
items:
|
20
|
-
- 가사를
|
21
|
-
-
|
20
|
+
- 가사를 까먹어버렸다! 아무 말도 나오지 않아…
|
21
|
+
- 마이크선에 발이 걸리고 말았다! 위험해!
|
22
22
|
- 마이크 스탠드가 쓰러져버렸다!
|
23
|
-
- 음정이
|
24
|
-
-
|
25
|
-
- 목이 갈라질 것
|
23
|
+
- 음정이 안 맞게 됐는데 다시 잘 부르지 못하겠어!
|
24
|
+
- 박자가 안 맞는 것 같은데… 못 맞추겠어!
|
25
|
+
- 목이 말라서 갈라질 것 같아. 무리가 가지 않게 잘해야…!
|
26
26
|
GUT:
|
27
27
|
name: 기타 트러블표(P169)
|
28
28
|
type: 1D6
|
29
29
|
items:
|
30
|
-
-
|
31
|
-
-
|
32
|
-
- 기타 소리에 노이즈가 낀 것
|
33
|
-
- 어라? 지금 곡의 어느
|
34
|
-
- 현이
|
35
|
-
- 피크가
|
30
|
+
- 큰일났다. 코드를 틀렸어! 어떻게 얼버무려 보자…
|
31
|
+
- 윽, 실드(앰프에 연결하는 실드 케이블)가 빠졌어! 소리가 안 나와!
|
32
|
+
- 기타 소리에 노이즈가 낀 것 같은데… 좀 고쳐져라…!
|
33
|
+
- 어라? 지금 곡의 어느 부분이었지…?
|
34
|
+
- 현이 끊어져버렸어! 너무 불길한데…
|
35
|
+
- 피크가 날아가버렸어! 핑거링으로 칠 수밖에…!
|
36
36
|
BAT:
|
37
37
|
name: 베이스 트러블표(P171)
|
38
38
|
type: 1D6
|
39
39
|
items:
|
40
|
-
-
|
41
|
-
-
|
42
|
-
- 베이스 소리에 노이즈가
|
43
|
-
- 어라? 지금
|
44
|
-
-
|
45
|
-
- 템포가
|
40
|
+
- 큰일났다. 코드를 틀렸어! 어떻게 얼버무려 보자…
|
41
|
+
- 윽, 실드(앰프에 연결하는 실드 케이블)가 빠졌어! 소리가 안 나와!
|
42
|
+
- 베이스 소리에 노이즈가 낀 것 같은데… 좀 고쳐져라…!
|
43
|
+
- 어라? 지금 곡의 어느 부분이었지…?
|
44
|
+
- 손끝의 감각이 마비되기 시작했다. 안 움직여…!
|
45
|
+
- 템포가 빨라지기 시작했는데 멈출 수가 없어!
|
46
46
|
KEYT:
|
47
47
|
name: 키보드 트러블표(P173)
|
48
48
|
type: 1D6
|
49
49
|
items:
|
50
|
-
-
|
51
|
-
-
|
52
|
-
- 어라? 지금
|
53
|
-
-
|
54
|
-
-
|
55
|
-
-
|
50
|
+
- 손끝의 감각이 마비되기 시작했다. 안 움직여…!
|
51
|
+
- 볼륨 슬라이드를 잘못 건드려 버렸어! 엄청난 소음이!
|
52
|
+
- 어라? 지금 곡의 어느 부분이었지…?
|
53
|
+
- 소리가 안 나는 건반이 있어… 고장?!
|
54
|
+
- 음색이 틀렸어! 원래 음색이 몇 번이었지…?!
|
55
|
+
- 손을 놓는 위치가 잘못됐어! 불협화음이야!
|
56
56
|
DRT:
|
57
57
|
name: 드럼 트러블표(P175)
|
58
58
|
type: 1D6
|
59
59
|
items:
|
60
|
-
-
|
61
|
-
- 어라? 지금
|
62
|
-
- 하이햇이
|
63
|
-
-
|
64
|
-
- 템포가
|
65
|
-
- 스틱이
|
60
|
+
- 손이 꼬여버렸다! 얼른 바로잡아야…!
|
61
|
+
- 어라? 지금 곡의 어느 부분이었지…?
|
62
|
+
- 하이햇이 안 열려! 볼트가 풀려있나…?!
|
63
|
+
- 애드리브 했는데 다음 프레이즈가 안 떠올라…!
|
64
|
+
- 템포가 빨라지기 시작했는데 멈출 수가 없어!
|
65
|
+
- 스틱이 날아가버렸다! 대신 쓸만한 게 있나…
|
66
66
|
EMO:
|
67
67
|
name: 감정표(P183)
|
68
68
|
type: 1D6
|
69
69
|
items:
|
70
70
|
- 공감/불신
|
71
71
|
- 우정/질투
|
72
|
-
-
|
73
|
-
-
|
72
|
+
- 호적수/짜증남
|
73
|
+
- 필요/기피
|
74
74
|
- 존경/열등감
|
75
|
-
-
|
75
|
+
- 애정/빚
|
76
76
|
SCENE:
|
77
77
|
name: 장면표(P199)
|
78
78
|
type: 2D6
|
79
79
|
items:
|
80
|
-
- 혼자만의
|
81
|
-
- 어디선가
|
82
|
-
-
|
83
|
-
- 동료와 함께 식사를
|
84
|
-
-
|
85
|
-
- 햇볕이 드는
|
86
|
-
- 스마트폰에서
|
87
|
-
-
|
88
|
-
-
|
89
|
-
-
|
90
|
-
-
|
80
|
+
- 혼자만의 시간. 불현듯 과거의 기억이 떠오른다. 그러고 보니 이전에 그런 일이 있었던 것 같은…
|
81
|
+
- 어디선가 말싸움을 하는 것 같은 소리가 들렸다. 싸움인가?
|
82
|
+
- 날이 어두워지고, 주변은 적막에 휩싸였다. 그녀석은 지금 뭘하고 있을까.
|
83
|
+
- 동료와 함께 식사를 하고 있자니 화제가 자연스럽게 그 이야기로…
|
84
|
+
- 웃음이 가득한 공간. 이런 시간이 계속 이어지면 좋을 텐데.
|
85
|
+
- 햇볕이 드는 곳. 바쁜 일상에서 벗어나서 조용한 시간을 보낸다.
|
86
|
+
- 스마트폰에서 알림음이 울렸다. 전화? 문자? 누구일까.
|
87
|
+
- 갑자기 당신에게 찾아온 사람이 있었다. 뭔가 전하고 싶은 것이 있는 듯하다.
|
88
|
+
- 분실물 하나를 발견했다. 찾아주는 것이 좋을까.
|
89
|
+
- 누가 뜬소문을 얘기하고 있다. 들을 생각은 없었지만 멋대로 듣게 됐다.
|
90
|
+
- 왠지 오한이 느껴진다. 뭔가 좋지 않은 일이 일어난 것 같은데…
|
91
91
|
MACHI:
|
92
92
|
name: 거리 장면표(P199)
|
93
93
|
type: 2D6
|
94
94
|
items:
|
95
|
-
-
|
96
|
-
-
|
97
|
-
-
|
98
|
-
- 횡단보도에서
|
99
|
-
-
|
100
|
-
-
|
101
|
-
- 연습을 끝내고
|
102
|
-
- 여기저기서
|
103
|
-
-
|
104
|
-
-
|
105
|
-
-
|
95
|
+
- 가본 적 없는 곳에 처음으로 오고 말았다. 약간 긴장된다.
|
96
|
+
- 알바하는 곳. 알바 동료가 의외의 사실을 알려주었다.
|
97
|
+
- 말도 제대로 안 들릴 정도의 대음량으로 들리는 음악. 그 자리에 있는 것만으로도 기분이 고조된다.
|
98
|
+
- 횡단보도에서 신호가 바뀌기를 기다리니 낯익은 인물의 모습을 발견했다.
|
99
|
+
- 갑작스러운 비에 발길을 서두르는 사람들. 나도 빨리 돌아가야지.
|
100
|
+
- 그냥 들린 가게에서 지인과 마주쳤다. 이런 곳에서 뭘 하는 거지?
|
101
|
+
- 연습을 끝내고 들린 음식점에서 의외의 인물을 발견했다. 잠깐 상황을 볼까.
|
102
|
+
- 여기저기서 아이들이 웃고 떠드는 소리가 들린다. 나도 저런 시절이 있었나.
|
103
|
+
- 소리 하나 없는 정적 속 세계. 가끔은 소리에서 벗어나는 것도 좋다.
|
104
|
+
- 전철 안. 손잡이를 잡은 채로 흔들리고 있자니 낯익은 승객을 발견했다.
|
105
|
+
- 노래방의 복도를 걷고 있자니 어디선가 낯익은 목소리가…?
|
106
106
|
GAKKO:
|
107
107
|
name: 학교 장면표(P199)
|
108
108
|
type: 2D6
|
109
109
|
items:
|
110
|
-
-
|
111
|
-
- 어느
|
112
|
-
-
|
113
|
-
-
|
114
|
-
- 쉬는 시간. 교실
|
115
|
-
- 모든 것이
|
116
|
-
-
|
117
|
-
-
|
118
|
-
-
|
119
|
-
- 슬슬
|
120
|
-
- 스피커에서
|
110
|
+
- 교사 뒤편. 무언가 얘기를 나누던 두 사람을 발견했다. 대체 무슨 얘기를 하고 있던 걸까…?
|
111
|
+
- 어느 부실. 부원들은 부활동에 전념하고 있는 것 같지만…
|
112
|
+
- 선생님이 타깃에 대해 물어본다. 뭔가 신경 쓰일만한 점이 있는 것 같다.
|
113
|
+
- 나무들 사이로 아침햇살이 비추는 통학로. 어떤 이는 서두르고, 어떤 이는 즐겁게 학교로 가고 있다.
|
114
|
+
- 쉬는 시간. 교실 여기저기서 들려오는 시덥잖은 잡담. 그 중에서 신경쓰이는 얘기를 들었다.
|
115
|
+
- 모든 것이 붉게 물드는 해질녘. 학생들은 학업에서 해방되어 남은 하루를 자유롭게 보낸다.
|
116
|
+
- 이동 수업. 이동하는 복도에서 아래를 보니 낯익은 사람이 있었다.
|
117
|
+
- 점심시간. 학생들은 각자 자리를 찾아 점심을 먹는다. 자, 나는 어디서 먹을까.
|
118
|
+
- 선생님에게 심부름 하나를 부탁받았다. 빨리 끝내버리자.
|
119
|
+
- 슬슬 학교가 문닫을 시간이다. 불이 켜져 있는 교실은 별로 없다.
|
120
|
+
- 스피커에서 교내 방송이 울려퍼진다. 누군가를 부르는 것 같은데…?
|
121
121
|
BAND:
|
122
122
|
name: 밴드 장면표(P199)
|
123
123
|
type: 2D6
|
124
124
|
items:
|
125
|
-
- 음악 전문
|
126
|
-
- 의외의 장소에서
|
127
|
-
-
|
128
|
-
- 라이브를
|
129
|
-
-
|
130
|
-
-
|
131
|
-
- 어디선가 악기 소리가
|
132
|
-
- 열기로
|
133
|
-
-
|
134
|
-
- 최신
|
135
|
-
-
|
125
|
+
- 인터넷에서 음악 전문 뉴스 사이트를 확인한다. 꽤 다양한 기사가 실려있다.
|
126
|
+
- 의외의 장소에서 연습하는 인물을 발견했다. 잠깐 말 걸어볼까.
|
127
|
+
- 약간 벽을 느끼고 말았다. 다른 사람이랑 상담해보는 게 좋을지도…
|
128
|
+
- 라이브를 보려고 라이브 하우스에 왔다. 어떤 무대일까.
|
129
|
+
- 상의하기 위해서 라이브 하우스에 와있는 것은 우리 뿐만이 아닌 것 같다.
|
130
|
+
- 연습을 끝내고 집에 돌아가는 길. 그녀석도 연습이 끝났을 즈음인가.
|
131
|
+
- 어디선가 악기 소리가 들린다. 누가 연주하고 있는 건가.
|
132
|
+
- 열기로 가득 찬 방을 나와서 잠시 숨을 돌리는 스튜디오 대기실. 소파에 앉아있는 것은…
|
133
|
+
- 들린 악기점에서 낯익은 인물을 발견했다. 뭘 하러 온 걸까.
|
134
|
+
- 최신 히트송을 틀어놓은 CD샵 내부. 다음은 어떤 곡을 할까…
|
135
|
+
- 그냥 내본 소리가 어느새 즉석 세션으로 이어졌다. 가볍게 실력을 발휘해볼까.
|
136
136
|
TENKAI:
|
137
137
|
name: 장면 전개표(P201)
|
138
138
|
d66_sort_type: ASC
|
139
139
|
items:
|
140
|
-
11: "절망 :
|
141
|
-
12: "붕괴 :
|
142
|
-
13: "단절 : 장면 플레이어는
|
143
|
-
14: "공포 :
|
144
|
-
15: "오해 : 장면 플레이어가
|
145
|
-
16: "시련 : 장면 플레이어는
|
146
|
-
22: "
|
147
|
-
23: "속박 :
|
148
|
-
24: "흉조 :
|
149
|
-
25: "가속 : 장면 플레이어는
|
150
|
-
26: "일상 : 장면 플레이어는
|
151
|
-
33: "휴식 :
|
152
|
-
34: "길조 :
|
153
|
-
35: "발견 : 장면 플레이어는
|
154
|
-
36: "희망 : 장면
|
155
|
-
44: "성장 :
|
156
|
-
45: "애정 :
|
157
|
-
46: "낭보 :
|
158
|
-
55: "호전 :
|
159
|
-
56: "직감 :
|
160
|
-
66: "기적 :
|
140
|
+
11: "절망 : 스텝을 더 어렵게 하거나, 장면 플레이어를 파멸로 몰아넣는 상황에 빠집니다. 【디스코드】 +2점."
|
141
|
+
12: "붕괴 : 스텝으로 인해 장면 플레이어의 소중한 것이 붕괴하는, 또는 붕괴 직전에 놓입니다. 【디스코드】 +2점."
|
142
|
+
13: "단절 : 장면 플레이어는 스텝에 의해 무언가와 절연하게 됩니다. 【디스코드】 +2점."
|
143
|
+
14: "공포 : 스텝을 두렵게 만드는 일과 조우합니다. 【디스코드】 +2점."
|
144
|
+
15: "오해 : 장면 플레이어가 스텝에 관한 어떤 오해를 삽니다. 【디스코드】 +2점."
|
145
|
+
16: "시련 : 장면 플레이어는 스텝에 관한 시련과 직면합니다. 【디스코드】 +2점."
|
146
|
+
22: "심마 : 장면 플레이어는 나쁜 생각을 갖게 되어 스텝을 불합리하게 해결하려고 합니다. 【디스코드】 +1점."
|
147
|
+
23: "속박 : 스텝에 관한 무언가에 속박되어 자유롭게 행동하지 못하게 됩니다. 【디스코드】 +1점."
|
148
|
+
24: "흉조 : 스텝에 관해서 무언가 나쁜 일이 일어날 것 같은 전조가 찾아옵니다. 【디스코드】 +1점."
|
149
|
+
25: "가속 : 장면 플레이어는 스텝 해결에 쫓기게 됩니다. 【디스코드】 +1점."
|
150
|
+
26: "일상 : 장면 플레이어는 느긋하게 일상을 보냅니다. 【컨디션】 +1점."
|
151
|
+
33: "휴식 : 스텝에 대해 잊어버릴 것 같은 평온한 한때를 보냅니다. 【컨디션】 +1점."
|
152
|
+
34: "길조 : 스텝에 관해서 무언가 좋은 일이 일어날 것 같은 전조가 찾아옵니다. 【컨디션】 +1점."
|
153
|
+
35: "발견 : 장면 플레이어는 스텝에 대해 무언가를 발견합니다. 【컨디션】 +1점."
|
154
|
+
36: "희망 : 장면 플레이어에게 스텝에 대한 긍정적인 노력을 할 의지가 생깁니다. 【컨디션】 +1점."
|
155
|
+
44: "성장 : 스텝을 통해 장면 플레이어가 성장합니다. 【컨디션】 +2점."
|
156
|
+
45: "애정 : 스텝을 통해 장면 플레이어가 애정을 느낍니다. 【컨디션】 +2점."
|
157
|
+
46: "낭보 : 스텝에 관한 좋은 소식을 맞이합니다. 【컨디션】 +2점."
|
158
|
+
55: "호전 : 스텝이 좋은 방향으로 향하는 사건이 일어납니다. 【컨디션】 +3점."
|
159
|
+
56: "직감 : 스텝을 해결할 수 있는 결정적인 깨달음을 얻습니다. 【컨디션】 +3점."
|
160
|
+
66: "기적 : 스텝에 관한 기적적인 행운을 맞이합니다. 【컨디션】 +3점."
|
data/i18n/zh_hant.yml
CHANGED
@@ -0,0 +1,131 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class Aionia < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = "Aionia"
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = "慈悲なきアイオニア"
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = "しひなきあいおにあ"
|
14
|
+
|
15
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
16
|
+
- 技能判定(クリティカル・ファンブルなし)
|
17
|
+
AB{n}>={dif} n=10面ダイスの数、dif=難易度
|
18
|
+
- 技能判定(クリティカル・ファンブルあり)
|
19
|
+
ABT{n}>={dif} n=10面ダイスの数、dif=難易度
|
20
|
+
|
21
|
+
例:AB2>=5 (一般技能を活用して難易度5の技能判定。 クリファンなし。)
|
22
|
+
例:ABT3>=15 (専門技能を活用して難易度15の技能判定。クリファンあり。)
|
23
|
+
例:AB1+2>=8 (一般技能を活用せず難易度8の技能判定。 ボーナスとして+2点の補正あり。 クリファンなし。)
|
24
|
+
例:ABT3-3>=10 (専門技能を活用して難易度10の技能判定。ペナルティとして-3点の補正あり。クリファンあり。)
|
25
|
+
例:ABT2>=4/8/12 (一般技能を活用して難易度4/8/12の段階的な技能判定。クリファンあり。)
|
26
|
+
INFO_MESSAGE_TEXT
|
27
|
+
|
28
|
+
register_prefix('ABT?\d+([\+\-]\d+)?>=\d+(\/\d+)*')
|
29
|
+
|
30
|
+
def eval_game_system_specific_command(command)
|
31
|
+
return roll_skills(command)
|
32
|
+
end
|
33
|
+
|
34
|
+
def roll_skills(command)
|
35
|
+
m = %r{AB(T?)(\d+)([+-]\d+)?>=((\d+)((/\d+)*))}.match(command)
|
36
|
+
return nil unless m
|
37
|
+
|
38
|
+
# 値の取得
|
39
|
+
use_cf = m[1] != ''
|
40
|
+
times = m[2].to_i
|
41
|
+
bonus = m[3].to_i
|
42
|
+
targets = m[4].split('/').map(&:to_i)
|
43
|
+
target = targets[0]
|
44
|
+
min_target = targets.min
|
45
|
+
max_target = targets.max
|
46
|
+
|
47
|
+
# ダイスロール
|
48
|
+
dice_list = @randomizer.roll_barabara(times, 10)
|
49
|
+
dice_total = dice_list.sum
|
50
|
+
total = dice_total + bonus
|
51
|
+
|
52
|
+
# Result用変数宣言
|
53
|
+
is_success = false
|
54
|
+
has_critical = false
|
55
|
+
has_fumble = false
|
56
|
+
|
57
|
+
# 結果判定
|
58
|
+
# 難易度が一つの場合
|
59
|
+
if targets.count == 1
|
60
|
+
if total >= target
|
61
|
+
is_success = true
|
62
|
+
if total >= target + 20 && use_cf
|
63
|
+
result = 'クリティカル'
|
64
|
+
has_critical = true
|
65
|
+
elsif target <= times
|
66
|
+
result = '自動成功'
|
67
|
+
else
|
68
|
+
result = '成功'
|
69
|
+
end
|
70
|
+
else
|
71
|
+
is_success = false
|
72
|
+
if dice_list.count(1) == times && use_cf
|
73
|
+
result = 'ファンブル'
|
74
|
+
has_fumble = true
|
75
|
+
elsif target > 10 * times
|
76
|
+
result = '自動失敗'
|
77
|
+
else
|
78
|
+
result = '失敗'
|
79
|
+
end
|
80
|
+
end
|
81
|
+
# 段階的な難易度判定の場合
|
82
|
+
else
|
83
|
+
if total >= min_target
|
84
|
+
is_success = true
|
85
|
+
if total >= max_target + 20 && use_cf
|
86
|
+
result = 'クリティカル'
|
87
|
+
has_critical = true
|
88
|
+
elsif max_target <= times
|
89
|
+
result = '自動成功'
|
90
|
+
elsif total >= max_target
|
91
|
+
result = '全成功'
|
92
|
+
else
|
93
|
+
times_suc = targets.count { |x| x <= total }
|
94
|
+
result = "#{times_suc}段階成功"
|
95
|
+
end
|
96
|
+
else
|
97
|
+
is_success = false
|
98
|
+
if dice_list.count(1) == times && use_cf
|
99
|
+
result = 'ファンブル'
|
100
|
+
has_fumble = true
|
101
|
+
elsif min_target > 10 * times
|
102
|
+
result = '自動失敗'
|
103
|
+
else
|
104
|
+
result = '失敗'
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# ボーナスがある場合の処理
|
110
|
+
bonus_text = ''
|
111
|
+
bonus_result = ''
|
112
|
+
if bonus != 0
|
113
|
+
if bonus > 0
|
114
|
+
bonus_text = "+"
|
115
|
+
end
|
116
|
+
bonus_text += bonus.to_s
|
117
|
+
bonus_result = "#{total} > "
|
118
|
+
end
|
119
|
+
|
120
|
+
# Resultクラスに結果を入れる
|
121
|
+
Result.new.tap do |r|
|
122
|
+
r.text = "(#{command}) > #{dice_total}[#{dice_list.join(',')}]#{bonus_text} > #{bonus_result}#{result}"
|
123
|
+
r.critical = has_critical
|
124
|
+
r.fumble = has_fumble
|
125
|
+
r.success = is_success
|
126
|
+
r.failure = !is_success
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|