Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions i18n/Emoklore/ja_jp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ ja_jp:
triple: トリプル
miracle: ミラクル
catastrophe: カタストロフ
dice_count_zero: "ダイス数が0以下 > 確定失敗"
1 change: 1 addition & 0 deletions i18n/Emoklore/ko_kr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ ko_kr:
triple: 트리플
miracle: 미라클
catastrophe: 카타스트로프
dice_count_zero: "주사위 개수가 0 이하 > 확정 실패"
4 changes: 2 additions & 2 deletions lib/bcdice/game_system/Emoklore.rb
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def roll_dm(command)

# ダイス数が0以下の場合は確定失敗
if num_dice <= 0
return Result.fumble("(#{command}) > ダイス数が0以下 > 確定失敗")
return Result.fumble("(#{command}) > #{translate('Emoklore.dice_count_zero')}")
end

# ダイスロール本体
Expand Down Expand Up @@ -146,7 +146,7 @@ def roll_da(command)
success_threshold = m[1].to_i + m[2].to_i

if num_dice <= 0
return Result.fumble("(#{command}) > ダイス数が0以下 > 確定失敗")
return Result.fumble("(#{command}) > #{translate('Emoklore.dice_count_zero')}")
end

result = dice_roll(num_dice, success_threshold)
Expand Down
10 changes: 8 additions & 2 deletions lib/bcdice/game_system/Emoklore_Korean.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,16 @@ class Emoklore_Korean < Emoklore

# ダイスボットの使い方
HELP_MESSAGE = <<~MESSAGETEXT
・기능치 판정(xDM<=y)
・기능치 판정(xDM<=y / xDM<=yEz
"(개수)DM<=(판정치)"로 판정합니다.
주사위의 개수는 생략 가능하며, 생략 시 1개로 설정됩니다.
ex)2DM<=5 DM<=8
주사위 개수와 판정치에는 사칙연산(+-*/)을 사용할 수 있습니다.
수식 끝에 Ez를 붙이면 주사위 수에 z를 더합니다. E-z로 빼기도 가능합니다.
ex)2DM<=5 DM<=8 2DM<=3+2
2+2DM<=5 → 주사위 4개로 판정치 5
2DM<=5E2 → 주사위 2+2 = 주사위 4개로 판정치 5
3DM<=5E-1 → 주사위 3-1 = 주사위 2개로 판정치 5
※주사위 수가 0 이하가 되는 경우 확정 실패

・기능치 판정(sDAa+z)
"(기능 레벨)DA(능력치)+(주사위 보너스)"로 판정합니다.
Expand Down
110 changes: 110 additions & 0 deletions test/data/Emoklore_Korean.toml
Original file line number Diff line number Diff line change
Expand Up @@ -308,3 +308,113 @@ rands = [
{ sides = 10, value = 10 },
{ sides = 10, value = 10 },
]

# 산술식 테스트: 주사위 개수에 더하기
[[ test ]]
game_system = "Emoklore:Korean"
input = "2+2DM<=5"
output = "(2+2DM<=5) > (4DM<=5) > [3, 4, 6, 7] > 2 > 성공 수 2, 더블"
success = true
critical = true
rands = [
{ sides = 10, value = 3 },
{ sides = 10, value = 4 },
{ sides = 10, value = 6 },
{ sides = 10, value = 7 },
]

# 산술식 테스트: 주사위 개수에 곱하기
[[ test ]]
game_system = "Emoklore:Korean"
input = "2*3DM<=5"
output = "(2*3DM<=5) > (6DM<=5) > [1, 2, 3, 6, 7, 8] > 4 > 성공 수 4, 미라클"
success = true
critical = true
rands = [
{ sides = 10, value = 1 },
{ sides = 10, value = 2 },
{ sides = 10, value = 3 },
{ sides = 10, value = 6 },
{ sides = 10, value = 7 },
{ sides = 10, value = 8 },
]

# 산술식 테스트: 판정값에 산술식
[[ test ]]
game_system = "Emoklore:Korean"
input = "2DM<=3+2"
output = "(2DM<=3+2) > (2DM<=5) > [3, 6] > 1 > 성공 수 1, 성공"
success = true
rands = [
{ sides = 10, value = 3 },
{ sides = 10, value = 6 },
]

# 산술식 테스트: 주사위 수와 판정값 모두에 산술식
[[ test ]]
game_system = "Emoklore:Korean"
input = "1+2DM<=3+2"
output = "(1+2DM<=3+2) > (3DM<=5) > [3, 6, 7] > 1 > 성공 수 1, 성공"
success = true
rands = [
{ sides = 10, value = 3 },
{ sides = 10, value = 6 },
{ sides = 10, value = 7 },
]

# 산술식 테스트: 주사위 수가 0 이하일 경우 실패로 확정
[[ test ]]
game_system = "Emoklore:Korean"
input = "3-5DM<=5"
output = "(3-5DM<=5) > 주사위 개수가 0 이하 > 확정 실패"
failure = true
fumble = true
rands = []

# 주사위 보너스: Ez로 합산
[[ test ]]
game_system = "Emoklore:Korean"
input = "2DM<=5E2"
output = "(2DM<=5E2) > (4DM<=5) > [3, 4, 6, 7] > 2 > 성공 수 2, 더블"
success = true
critical = true
rands = [
{ sides = 10, value = 3 },
{ sides = 10, value = 4 },
{ sides = 10, value = 6 },
{ sides = 10, value = 7 },
]

# 주사위 패널티: E-z에서 차감
[[ test ]]
game_system = "Emoklore:Korean"
input = "3DM<=5E-1"
output = "(3DM<=5E-1) > (2DM<=5) > [3, 6] > 1 > 성공 수 1, 성공"
success = true
rands = [
{ sides = 10, value = 3 },
{ sides = 10, value = 6 },
]

# 주사위 패널티: E-z에서 주사위 개수가 0개 이하일 경우 실패로 확정
[[ test ]]
game_system = "Emoklore:Korean"
input = "1DM<=5E-2"
output = "(1DM<=5E-2) > 주사위 개수가 0 이하 > 확정 실패"
failure = true
fumble = true
rands = []

# 산술식과 주사위 보너스/패널티의 병행 사용
[[ test ]]
game_system = "Emoklore:Korean"
input = "1+1DM<=5E2"
output = "(1+1DM<=5E2) > (4DM<=5) > [3, 4, 6, 7] > 2 > 성공 수 2, 더블"
success = true
critical = true
rands = [
{ sides = 10, value = 3 },
{ sides = 10, value = 4 },
{ sides = 10, value = 6 },
{ sides = 10, value = 7 },
]
Loading