bcdice 3.16.1 → 3.17.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 +111 -0
- data/i18n/Airgetlamh/ja_jp.yml +5 -0
- data/i18n/Airgetlamh/ko_kr.yml +5 -0
- data/i18n/Alsetto/ja_jp.yml +5 -0
- data/i18n/Alsetto/ko_kr.yml +5 -0
- data/i18n/AnimaAnimus/ja_jp.yml +28 -0
- data/i18n/AnimaAnimus/ko_kr.yml +28 -0
- data/i18n/BlackJacket/ja_jp.yml +79 -0
- data/i18n/BlackJacket/ko_kr.yml +79 -0
- data/i18n/Bloodorium/ja_jp.yml +3 -0
- data/i18n/Bloodorium/ko_kr.yml +3 -0
- data/i18n/Cthulhu/ko_kr.yml +1 -1
- data/i18n/Dracurouge/ko_kr.yml +1284 -205
- data/i18n/Emoklore/ja_jp.yml +1 -0
- data/i18n/Emoklore/ko_kr.yml +1 -0
- data/i18n/FutariSousa/ja_jp.yml +70 -0
- data/i18n/FutariSousa/ko_kr.yml +157 -0
- data/i18n/HatsuneMiku/ja_jp.yml +579 -0
- data/i18n/HatsuneMiku/ko_kr.yml +579 -0
- data/i18n/Irisbane/ja_jp.yml +27 -0
- data/i18n/Irisbane/ko_kr.yml +27 -0
- data/i18n/JuinKansen/ja_jp.yml +168 -0
- data/i18n/JuinKansen/ko_kr.yml +168 -0
- data/i18n/KemonoNoMori/ja_jp.yml +229 -0
- data/i18n/KemonoNoMori/ko_kr.yml +229 -0
- data/i18n/KizunaBullet/ko_kr.yml +653 -0
- data/i18n/MagicPunk/ja_jp.yml +5 -0
- data/i18n/MagicPunk/ko_kr.yml +5 -0
- data/i18n/MorkBorg/ja_jp.yml +34 -0
- data/i18n/MorkBorg/ko_kr.yml +34 -0
- data/i18n/Nechronica/ko_kr.yml +43 -0
- data/i18n/NegikureNegimaki/ja_jp.yml +6 -0
- data/i18n/NegikureNegimaki/ko_kr.yml +6 -0
- data/i18n/Nuekagami/ja_jp.yml +219 -0
- data/i18n/Nuekagami/ko_kr.yml +219 -0
- data/i18n/Revulture/ja_jp.yml +8 -0
- data/i18n/Revulture/ko_kr.yml +8 -0
- data/i18n/SRS/ja_jp.yml +4 -0
- data/i18n/SRS/ko_kr.yml +4 -0
- data/i18n/ShinobiGami/ja_jp.yml +879 -0
- data/i18n/ShinobiGami/ko_kr.yml +876 -0
- data/i18n/StarryDolls/ja_jp.yml +456 -0
- data/i18n/StarryDolls/ko_kr.yml +456 -0
- data/i18n/StratoShout/ja_jp.yml +8 -8
- data/i18n/SwordWorld2_5/ja_jp.yml +48 -0
- data/i18n/Ventangle/ja_jp.yml +4 -0
- data/i18n/Ventangle/ko_kr.yml +4 -0
- data/i18n/YearZeroEngine/ja_jp.yml +12 -0
- data/i18n/YearZeroEngine/ko_kr.yml +12 -0
- data/i18n/ZombiLine/ja_jp.yml +27 -0
- data/i18n/ZombiLine/ko_kr.yml +27 -0
- data/i18n/ko_kr.yml +2 -0
- data/i18n/zh_hant.yml +2 -2
- data/lib/bcdice/dice_table/d66_left_range_table.rb +21 -0
- data/lib/bcdice/game_system/Aionia.rb +68 -19
- data/lib/bcdice/game_system/Airgetlamh.rb +64 -41
- data/lib/bcdice/game_system/Airgetlamh_Korean.rb +53 -0
- data/lib/bcdice/game_system/Alsetto.rb +63 -50
- data/lib/bcdice/game_system/Alsetto_Korean.rb +51 -0
- data/lib/bcdice/game_system/AnimaAnimus.rb +15 -32
- data/lib/bcdice/game_system/AnimaAnimus_Korean.rb +39 -0
- data/lib/bcdice/game_system/BlackJacket.rb +57 -113
- data/lib/bcdice/game_system/BlackJacket_Korean.rb +8 -206
- data/lib/bcdice/game_system/Bloodorium.rb +1 -1
- data/lib/bcdice/game_system/Bloodorium_Korean.rb +34 -0
- data/lib/bcdice/game_system/ChroniclesOfDarkness2e.rb +163 -0
- data/lib/bcdice/game_system/Cthulhu7th_Korean.rb +471 -300
- data/lib/bcdice/game_system/DeadlineHeroes_Korean.rb +273 -0
- data/lib/bcdice/game_system/Dracurouge_Korean.rb +25 -19
- data/lib/bcdice/game_system/DungeonsAndDragons5.rb +106 -73
- data/lib/bcdice/game_system/DungeonsAndDragons5_Korean.rb +53 -0
- data/lib/bcdice/game_system/DungeonsAndDragons_Korean.rb +61 -0
- data/lib/bcdice/game_system/Emoklore.rb +34 -9
- data/lib/bcdice/game_system/Emoklore_Korean.rb +10 -2
- data/lib/bcdice/game_system/FateCoreSystem.rb +10 -6
- data/lib/bcdice/game_system/FullMetalPanic_Korean.rb +28 -0
- data/lib/bcdice/game_system/FutariSousa.rb +37 -12
- data/lib/bcdice/game_system/FutariSousa_Korean.rb +25 -8
- data/lib/bcdice/game_system/GaiaCare.rb +40 -0
- data/lib/bcdice/game_system/GardenOrder.rb +2 -2
- data/lib/bcdice/game_system/GardenOrderReEdit.rb +849 -0
- data/lib/bcdice/game_system/GardenOrder_Korean.rb +839 -0
- data/lib/bcdice/game_system/HatsuneMiku.rb +51 -605
- data/lib/bcdice/game_system/HatsuneMiku_Korean.rb +56 -0
- data/lib/bcdice/game_system/HunterTheReckoning5th.rb +15 -11
- data/lib/bcdice/game_system/Irisbane.rb +17 -30
- data/lib/bcdice/game_system/Irisbane_Korean.rb +52 -0
- data/lib/bcdice/game_system/JuinKansen.rb +41 -208
- data/lib/bcdice/game_system/JuinKansen_Korean.rb +8 -213
- data/lib/bcdice/game_system/KemonoNoMori.rb +67 -276
- data/lib/bcdice/game_system/KemonoNoMori_Korean.rb +62 -0
- data/lib/bcdice/game_system/KinAriel.rb +117 -0
- data/lib/bcdice/game_system/KizunaBullet_Korean.rb +109 -0
- data/lib/bcdice/game_system/KutuluRevised.rb +94 -0
- data/lib/bcdice/game_system/LiverLabyrinth.rb +321 -0
- data/lib/bcdice/game_system/Lost.rb +89 -0
- data/lib/bcdice/game_system/MagicPunk.rb +85 -0
- data/lib/bcdice/game_system/MagicPunk_Korean.rb +39 -0
- data/lib/bcdice/game_system/MarvelHeroicRoleplaying.rb +144 -0
- data/lib/bcdice/game_system/MetallicGuardian_Korean.rb +28 -0
- data/lib/bcdice/game_system/MorkBorg.rb +170 -0
- data/lib/bcdice/game_system/MorkBorg_Korean.rb +49 -0
- data/lib/bcdice/game_system/NanimonaiMura.rb +112 -0
- data/lib/bcdice/game_system/Nechronica_Korean.rb +6 -6
- data/lib/bcdice/game_system/NegikureNegimaki.rb +140 -0
- data/lib/bcdice/game_system/NegikureNegimaki_Korean.rb +48 -0
- data/lib/bcdice/game_system/NeonUnderRealm.rb +122 -0
- data/lib/bcdice/game_system/NinjaSlayer2.rb +170 -49
- data/lib/bcdice/game_system/Nuekagami.rb +19 -261
- data/lib/bcdice/game_system/Nuekagami_Korean.rb +43 -0
- data/lib/bcdice/game_system/ParanoiaPerfect.rb +74 -0
- data/lib/bcdice/game_system/PastFutureParadox.rb +2245 -55
- data/lib/bcdice/game_system/PreciousDays.rb +170 -0
- data/lib/bcdice/game_system/Revulture.rb +8 -5
- data/lib/bcdice/game_system/Revulture_Korean.rb +7 -81
- data/lib/bcdice/game_system/Ryutama.rb +46 -46
- data/lib/bcdice/game_system/SRS.rb +4 -4
- data/lib/bcdice/game_system/SRS_Korean.rb +67 -0
- data/lib/bcdice/game_system/ShinobiGami.rb +154 -1047
- data/lib/bcdice/game_system/ShinobiGami_Korean.rb +102 -0
- data/lib/bcdice/game_system/StarryDolls.rb +70 -508
- data/lib/bcdice/game_system/StarryDolls_Korean.rb +80 -0
- data/lib/bcdice/game_system/StratoShout.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +28 -2
- data/lib/bcdice/game_system/SwordWorld2_0.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld2_5.rb +67 -3
- data/lib/bcdice/game_system/TacticalExorcist.rb +222 -0
- data/lib/bcdice/game_system/TenkaRyouran_Korean.rb +30 -0
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +38 -33
- data/lib/bcdice/game_system/Ventangle.rb +8 -7
- data/lib/bcdice/game_system/Ventangle_Korean.rb +6 -95
- data/lib/bcdice/game_system/Warhammer4.rb +202 -6
- data/lib/bcdice/game_system/WerewolfTheApocalypse5th.rb +20 -15
- data/lib/bcdice/game_system/WorldEndScrapyard.rb +333 -0
- data/lib/bcdice/game_system/WorldsEndFrontline_Korean.rb +26 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +7 -7
- data/lib/bcdice/game_system/YearZeroEngine_Korean.rb +46 -0
- data/lib/bcdice/game_system/ZombiLine.rb +29 -36
- data/lib/bcdice/game_system/ZombiLine_Korean.rb +37 -0
- data/lib/bcdice/game_system/cthulhu7th_Korean/full_auto.rb +294 -0
- data/lib/bcdice/game_system/cthulhu7th_Korean/rollable.rb +43 -0
- data/lib/bcdice/game_system/sword_world/rating_options.rb +9 -0
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +19 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +229 -149
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +1 -0
- data/lib/bcdice/game_system.rb +42 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +87 -2
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'bcdice/game_system/KemonoNoMori'
|
|
4
|
+
|
|
5
|
+
module BCDice
|
|
6
|
+
module GameSystem
|
|
7
|
+
class KemonoNoMori_Korean < KemonoNoMori
|
|
8
|
+
# ゲームシステムの識別子
|
|
9
|
+
ID = 'KemonoNoMori:Korean'
|
|
10
|
+
|
|
11
|
+
# ゲームシステム名
|
|
12
|
+
NAME = '짐승의 숲'
|
|
13
|
+
|
|
14
|
+
# ゲームシステム名の読みがな
|
|
15
|
+
SORT_KEY = '国際化:Korean:짐승의 숲'
|
|
16
|
+
|
|
17
|
+
# ダイスボットの使い方
|
|
18
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
|
19
|
+
・행위 판정(성공도 자동 산출)(P119): KAx[±y]
|
|
20
|
+
・지속 판정(성공도+1 고정): KCx[±y]
|
|
21
|
+
x=목표치
|
|
22
|
+
y=목표치에 대한 수정(임의) x+y-z 처럼 여러 개 지정 가능
|
|
23
|
+
예1)KA7+3 → 목표치7에 +3 수정을 더한 행위 판정
|
|
24
|
+
예2)KC6 → 목표치6의 지속 판정
|
|
25
|
+
・함정 작동 체크+먹잇감표(P163): CTR
|
|
26
|
+
함정마다 1D12를 굴려, 12가 나온 경우 생물이 함정을 작동시켜 그 영향을 받고 있다.
|
|
27
|
+
・각종 표(기본 룰북)
|
|
28
|
+
・대실패표(P120): FT
|
|
29
|
+
・능력치 무작위 결정표(P121): RST
|
|
30
|
+
・무작위 소요 시간표(P122): RTT
|
|
31
|
+
・무작위 소모표(P122): RET
|
|
32
|
+
・무작위 날씨표(P128): RWT
|
|
33
|
+
・무작위 날씨 지속표(P128): RWDT
|
|
34
|
+
・무작위 엄폐물표(야외)(P140): ROMT
|
|
35
|
+
・무작위 엄폐물표(실내)(P140): RIMT
|
|
36
|
+
・도주 체험표(P144): EET
|
|
37
|
+
・식재료 채집표(P157): GFT
|
|
38
|
+
・물 채집표(P157): GWT
|
|
39
|
+
・백색 마석 효과표(P186): WST
|
|
40
|
+
・부위 피해 관련 표(참조 페이지는 리플레이&데이터북 「가미신의 연회」 기준)
|
|
41
|
+
・인간 부위표(P216): HPT
|
|
42
|
+
・부위 피해 단계표(P217): PDT
|
|
43
|
+
・네발 동물 부위표(P225): QPT
|
|
44
|
+
・무족류 부위표(P225): APT
|
|
45
|
+
・두발 동물 부위표(P226): TPT
|
|
46
|
+
・새 부위표(P226): BPT
|
|
47
|
+
・두족류 부위표(P227): CPT
|
|
48
|
+
・곤충 부위표(P227): IPT
|
|
49
|
+
・거미 부위표(P228): SPT
|
|
50
|
+
MESSAGETEXT
|
|
51
|
+
|
|
52
|
+
def initialize(command)
|
|
53
|
+
super(command)
|
|
54
|
+
@locale = :ko_kr
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
TABLES = translate_tables(:ko_kr).freeze
|
|
58
|
+
|
|
59
|
+
register_prefix_from_super_class()
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BCDice
|
|
4
|
+
module GameSystem
|
|
5
|
+
class KinAriel < Base
|
|
6
|
+
# ゲームシステムの識別子
|
|
7
|
+
ID = 'KinAriel'
|
|
8
|
+
|
|
9
|
+
# ゲームシステム名
|
|
10
|
+
NAME = 'キナリエル'
|
|
11
|
+
|
|
12
|
+
# ゲームシステム名の読みがな
|
|
13
|
+
SORT_KEY = 'きなりえる'
|
|
14
|
+
|
|
15
|
+
# ダイスボットの使い方
|
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGETEXT
|
|
17
|
+
■判定 KA<=t t: 目標値
|
|
18
|
+
|
|
19
|
+
例)KA<=50: 目標値50で結果を表示(クリティカル、ファンブル、成功、失敗)
|
|
20
|
+
|
|
21
|
+
■対抗判定 VS<=t t: 目標値
|
|
22
|
+
|
|
23
|
+
例)VS<=50: 目標値50で最大5回振って、その結果を表示。
|
|
24
|
+
INFO_MESSAGETEXT
|
|
25
|
+
|
|
26
|
+
register_prefix('KA', 'VS')
|
|
27
|
+
|
|
28
|
+
def eval_game_system_specific_command(command)
|
|
29
|
+
resolute_action(command) || resolute_competition(command)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
# 通常判定
|
|
35
|
+
# @param [String] command
|
|
36
|
+
# @return [Result]
|
|
37
|
+
def resolute_action(command)
|
|
38
|
+
m = /KA<=(\d+)/.match(command)
|
|
39
|
+
return nil unless m
|
|
40
|
+
|
|
41
|
+
target = m[1].to_i
|
|
42
|
+
dice = @randomizer.roll_once(100)
|
|
43
|
+
|
|
44
|
+
output = "(KA<=#{target}) > [#{dice}]"
|
|
45
|
+
|
|
46
|
+
if dice <= target
|
|
47
|
+
if dice <= 5
|
|
48
|
+
output += " > クリティカル"
|
|
49
|
+
return Result.critical(output)
|
|
50
|
+
else
|
|
51
|
+
output += " > 成功"
|
|
52
|
+
return Result.success(output)
|
|
53
|
+
end
|
|
54
|
+
else
|
|
55
|
+
if dice >= 96
|
|
56
|
+
output += " > ファンブル"
|
|
57
|
+
return Result.fumble(output)
|
|
58
|
+
else
|
|
59
|
+
output += " > 失敗"
|
|
60
|
+
return Result.failure(output)
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# 対抗判定用出力
|
|
66
|
+
# @param [String] command
|
|
67
|
+
# @return [Result]
|
|
68
|
+
def resolute_competition(command)
|
|
69
|
+
m = /VS<=(\d+)/.match(command)
|
|
70
|
+
return nil unless m
|
|
71
|
+
|
|
72
|
+
target = m[1].to_i
|
|
73
|
+
output = "(VS<=#{target}) > "
|
|
74
|
+
dice_arr = []
|
|
75
|
+
result = Result.new
|
|
76
|
+
|
|
77
|
+
5.times do
|
|
78
|
+
dice = @randomizer.roll_once(100)
|
|
79
|
+
dice_arr.push(dice)
|
|
80
|
+
result = get_roll_result(dice, target)
|
|
81
|
+
if result.critical?
|
|
82
|
+
output += '[' + dice_arr.join(",") + "] > #{dice_arr.length}回目でクリティカル"
|
|
83
|
+
result.text = output
|
|
84
|
+
return result
|
|
85
|
+
elsif result.fumble?
|
|
86
|
+
output += '[' + dice_arr.join(",") + "] > #{dice_arr.length}回目でファンブル"
|
|
87
|
+
result.text = output
|
|
88
|
+
return result
|
|
89
|
+
elsif result.failure?
|
|
90
|
+
output += '[' + dice_arr.join(",") + "] > #{dice_arr.length}回目で失敗"
|
|
91
|
+
result.text = output
|
|
92
|
+
return result
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
output += '[' + dice_arr.join(",") + "] > #{dice_arr.length}回成功"
|
|
96
|
+
result.text = output
|
|
97
|
+
return result
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def get_roll_result(dice, target)
|
|
101
|
+
if dice <= target
|
|
102
|
+
if dice <= 5
|
|
103
|
+
return Result.critical("")
|
|
104
|
+
else
|
|
105
|
+
return Result.success("")
|
|
106
|
+
end
|
|
107
|
+
else
|
|
108
|
+
if dice >= 96
|
|
109
|
+
return Result.fumble("")
|
|
110
|
+
else
|
|
111
|
+
return Result.failure("")
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
end
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'bcdice/game_system/KizunaBullet'
|
|
4
|
+
require 'bcdice/game_system/kizuna_bullet/tables'
|
|
5
|
+
|
|
6
|
+
module BCDice
|
|
7
|
+
module GameSystem
|
|
8
|
+
class KizunaBullet_Korean < KizunaBullet
|
|
9
|
+
# ゲームシステムの識別子
|
|
10
|
+
ID = 'KizunaBullet:Korean'
|
|
11
|
+
|
|
12
|
+
# ゲームシステム名
|
|
13
|
+
NAME = '키즈나 불릿'
|
|
14
|
+
|
|
15
|
+
# ゲームシステム名の読みがな
|
|
16
|
+
SORT_KEY = '国際化:Korean:키즈나 불릿'
|
|
17
|
+
|
|
18
|
+
# ダイスボットの使い方
|
|
19
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
|
20
|
+
・다이스 롤
|
|
21
|
+
nDM...n개의 6면 다이스를 굴려 가장 높은 값을 사용합니다.
|
|
22
|
+
・[조사 판정]
|
|
23
|
+
nIN…n개의 6면 다이스를 굴려 가장 높은 값이 5 이상이면 성공합니다. ([파트너의 헬프] 사용가능)
|
|
24
|
+
・[진정 판정]
|
|
25
|
+
SEn…2개의 6면 다이스를 굴려 합계치가 n([균열]상태의 [키즈나]의 개수)보다 높으면 성공합니다. ([강제 진정]사용가능)
|
|
26
|
+
・[해결] [액션]의 대미지와[액시던트]의 대미지 경감
|
|
27
|
+
nSO…2+n개의 6면 다이스를 굴려 결과값을 모두 합산합니다. (n은 줄인 【여기치】. 생략 가능)
|
|
28
|
+
|
|
29
|
+
・각종표
|
|
30
|
+
일상 표・장소 OP
|
|
31
|
+
일상 표・내용 OC
|
|
32
|
+
일상 표・장소 및 내용 OPC
|
|
33
|
+
일상 표(일)・장소 OWP
|
|
34
|
+
일상 표(일)・내용 OWC
|
|
35
|
+
일상 표(일)・장소 및 내용 OWPC
|
|
36
|
+
일상 표(휴가)・장소 OHP
|
|
37
|
+
일상 표(휴가)・내용 OHC
|
|
38
|
+
일상 표(휴가)・장소 및 내용 OHPC
|
|
39
|
+
일상 표(출장)・장소 OTP
|
|
40
|
+
일상 표(출장)・내용 OTC
|
|
41
|
+
일상 표(출장)・장소 및 내용 OTPC
|
|
42
|
+
|
|
43
|
+
턴 테마표 TT
|
|
44
|
+
턴 테마표・친밀 TTI
|
|
45
|
+
턴 테마표・쿨 TTC
|
|
46
|
+
턴 테마표・주종 TTH
|
|
47
|
+
|
|
48
|
+
조우 표・장소 EP
|
|
49
|
+
조우 표・출현 순서 EO
|
|
50
|
+
조우 표・상황(첫대면) EF
|
|
51
|
+
조우 표・상황(아는 사이) EA
|
|
52
|
+
조우 표・결착 EE
|
|
53
|
+
조우 표·장소와 등장 순서와 상황(첫대면)과 결착 EFA
|
|
54
|
+
조우 표·장소와 등장순서와 상황(아는 사이)과 결판 EAA
|
|
55
|
+
|
|
56
|
+
교류 표·장소 CP
|
|
57
|
+
교류 표·내용 CC
|
|
58
|
+
교류 표·장소 및 내용 CPC
|
|
59
|
+
|
|
60
|
+
조사 표 · 베이직 IB
|
|
61
|
+
조사 표・다이나믹 ID
|
|
62
|
+
조사 표・베이직과 다이나믹 IBD
|
|
63
|
+
|
|
64
|
+
해저드 표 HA
|
|
65
|
+
|
|
66
|
+
통상 다이제스트: 당신들에게 새로운 명령이 떨어졌다(조사가 의뢰되었다).
|
|
67
|
+
1:그 사건의 내용은……. NI1
|
|
68
|
+
2:조사하러 향한 장소는…… NI2
|
|
69
|
+
3:범인인 기적사는…… NI3
|
|
70
|
+
4:일어난 일은……. NI4
|
|
71
|
+
5:불릿 사이에서는…… NI5
|
|
72
|
+
6:싸움의 결말은…… NI6
|
|
73
|
+
|
|
74
|
+
통상 다이제스트: 당신들은 여행(출장)으로 어느 장소를 찾았다.
|
|
75
|
+
1:그 장소란…… NT1
|
|
76
|
+
2:그곳에서 시작한 것은…… NT2
|
|
77
|
+
3:극한의 상황 속에서…… NT3
|
|
78
|
+
4:범인인 기적사는…… NT4
|
|
79
|
+
5:불릿 사이에서는…… NT5
|
|
80
|
+
6:싸움의 결말은…… NT6
|
|
81
|
+
|
|
82
|
+
홀리데이 다이제스트: 당신들은 휴일에 나가기로 했다.
|
|
83
|
+
1:그 장소란…… HH1
|
|
84
|
+
2:약속하고 만나면…… HH2
|
|
85
|
+
3:그리고 무려……… HH3
|
|
86
|
+
4:두 사람이 결정한 것은…… HH4
|
|
87
|
+
5:결과적으로…… HH5
|
|
88
|
+
6:불릿은 마지막으로…… HH6
|
|
89
|
+
|
|
90
|
+
홀리데이 다이제스트: 당신들은 기묘한 사건을 마주했다.
|
|
91
|
+
1:그 장소란…… HC1
|
|
92
|
+
2:일어난 사건은……. HC2
|
|
93
|
+
3:범인인 시적사는…… HC3
|
|
94
|
+
4:범인을 몰아붙이기 위해…… HC4
|
|
95
|
+
5:싸움의 결과는…… HC5
|
|
96
|
+
6:불릿은 마지막으로……HC6
|
|
97
|
+
MESSAGETEXT
|
|
98
|
+
|
|
99
|
+
def initialize(command)
|
|
100
|
+
super(command)
|
|
101
|
+
@locale = :ko_kr
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
TABLES = translate_tables(:ko_kr)
|
|
105
|
+
|
|
106
|
+
register_prefix_from_super_class()
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module BCDice
|
|
4
|
+
module GameSystem
|
|
5
|
+
class KutuluRevised < Base
|
|
6
|
+
# ゲームシステムの識別子
|
|
7
|
+
ID = 'KutuluRevised'
|
|
8
|
+
|
|
9
|
+
# ゲームシステム名
|
|
10
|
+
NAME = 'Kutulu リバイズド'
|
|
11
|
+
|
|
12
|
+
# ゲームシステム名の読みがな
|
|
13
|
+
SORT_KEY = 'くとうるうりはいすと'
|
|
14
|
+
|
|
15
|
+
# ダイスボットの使い方
|
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGETEXT
|
|
17
|
+
■判定 nKU n: ダイス数(1~9)
|
|
18
|
+
|
|
19
|
+
例)3KU: ダイスを3個振って、その結果を表示(ギリギリでの成功も表示)
|
|
20
|
+
|
|
21
|
+
■対抗判定 nKR n: ダイス数(1~9)
|
|
22
|
+
|
|
23
|
+
例)2KR: ダイスを2個振って、その結果を表示。対抗判定用の3桁の数字も出力。(大きい方が勝利)
|
|
24
|
+
INFO_MESSAGETEXT
|
|
25
|
+
|
|
26
|
+
register_prefix('\dK[UR]')
|
|
27
|
+
|
|
28
|
+
def initialize(command)
|
|
29
|
+
super(command)
|
|
30
|
+
|
|
31
|
+
@sort_barabara_dice = true # バラバラロール(Bコマンド)でソート有
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def eval_game_system_specific_command(command)
|
|
35
|
+
resolute_action(command) || resolute_competition(command)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
private
|
|
39
|
+
|
|
40
|
+
# アクティヴ能力の判定
|
|
41
|
+
# @param [String] command
|
|
42
|
+
# @return [Result]
|
|
43
|
+
def resolute_action(command)
|
|
44
|
+
m = /(\d)KU/.match(command)
|
|
45
|
+
return nil unless m
|
|
46
|
+
|
|
47
|
+
num_dices = m[1].to_i
|
|
48
|
+
|
|
49
|
+
dices = @randomizer.roll_barabara(num_dices, 6).sort
|
|
50
|
+
dice_text = dices.join(",")
|
|
51
|
+
|
|
52
|
+
output = "(#{num_dices}KU) > #{dice_text}"
|
|
53
|
+
|
|
54
|
+
success_num = dices.count { |val| val >= 4 }
|
|
55
|
+
if success_num > 0
|
|
56
|
+
output += " > 成功数#{success_num}"
|
|
57
|
+
if success_num == 1
|
|
58
|
+
output += " > *ギリギリの成功?"
|
|
59
|
+
end
|
|
60
|
+
return Result.success(output)
|
|
61
|
+
else
|
|
62
|
+
output += " > 失敗"
|
|
63
|
+
return Result.failure(output)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# 対抗判定用出力
|
|
68
|
+
# @param [String] command
|
|
69
|
+
# @return [Result]
|
|
70
|
+
def resolute_competition(command)
|
|
71
|
+
m = /(\d)KR/.match(command)
|
|
72
|
+
return nil unless m
|
|
73
|
+
|
|
74
|
+
num_dices = m[1].to_i
|
|
75
|
+
|
|
76
|
+
dices = @randomizer.roll_barabara(num_dices, 6).sort
|
|
77
|
+
dice_text = dices.join(",")
|
|
78
|
+
|
|
79
|
+
counts6 = dices.count(6)
|
|
80
|
+
counts5 = dices.count(5)
|
|
81
|
+
success_num = dices.count { |val| val >= 4 }
|
|
82
|
+
com_text = format("(%d%d%d)", success_num, counts6, counts5)
|
|
83
|
+
|
|
84
|
+
output = "(#{num_dices}KR) > #{dice_text} > #{com_text}"
|
|
85
|
+
|
|
86
|
+
if success_num > 0
|
|
87
|
+
return Result.success(output)
|
|
88
|
+
else
|
|
89
|
+
return Result.failure(output)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|