Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StellarKnightsの韓国語版を追加 #458

Merged
merged 1 commit into from
May 14, 2021
Merged
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
2 changes: 2 additions & 0 deletions i18n/StellarKnights/ja_jp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ ja_jp:
StellarKnights:
SK:
success_num: "成功数: %{success_num}"
no_dice_error: "ダイスが 0 個です(アタック判定が発生しません)"
PET:
name: 性格表
result: "%{value1}にして%{value2}"
Expand Down Expand Up @@ -44,6 +45,7 @@ ja_jp:
- 'サディスト'
FT:
name: フラグメント表
sep: ","
items:
- '出会い'
- '水族館'
Expand Down
498 changes: 498 additions & 0 deletions i18n/StellarKnights/ko_kr.yml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions lib/bcdice/game_system.rb
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@
require "bcdice/game_system/StarryDolls"
require "bcdice/game_system/SteamPunkers"
require "bcdice/game_system/StellarKnights"
require "bcdice/game_system/StellarKnights_Korean"
require "bcdice/game_system/SterileLife"
require "bcdice/game_system/StrangerOfSwordCity"
require "bcdice/game_system/StratoShout"
Expand Down
10 changes: 5 additions & 5 deletions lib/bcdice/game_system/StellarKnights.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def initialize(command)
def eval_game_system_specific_command(command)
command = command.upcase

if (table = TABLES[command])
if (table = self.class::TABLES[command])
table.roll(@randomizer)
elsif (m = /(\d+)SK(\d)?((,\d>\d)+)?/.match(command))
resolute_action(m[1].to_i, m[2] && m[2].to_i, m[3], command)
Expand Down Expand Up @@ -102,7 +102,7 @@ def resolute_action(num_dices, defence, dice_change_text, command)

output = "(#{command}) > #{dice_text}"
if dices.empty?
return output + "ダイスが 0 個です(アタック判定が発生しません)"
return output + translate("StellarKnights.SK.no_dice_error")
end

# FAQによると、ダイスの置き換えは宣言された順番に適用されていく
Expand Down Expand Up @@ -147,11 +147,11 @@ def parse_dice_change_rules(text)
end

def roll_all_situation_b2_tables
(1..6).map { |num| TABLES["STB2#{num}"].roll(@randomizer) }.join("\n")
(1..6).map { |num| self.class::TABLES["STB2#{num}"].roll(@randomizer) }.join("\n")
end

def roll_all_situation_tables
['STA', 'STB', 'STC'].map { |command| TABLES[command].roll(@randomizer) }.join("\n")
['STA', 'STB', 'STC'].map { |command| self.class::TABLES[command].roll(@randomizer) }.join("\n")
end

def roll_personality_table
Expand All @@ -172,7 +172,7 @@ def roll_fragment_table(num)
indexes = results.map { |r| r[1] }
name = translate("StellarKnights.FT.name")

return "#{name}(#{indexes.join(',')}) > #{values.join(',')}"
return "#{name}(#{indexes.join(',')}) > #{values.join(translate('StellarKnights.FT.sep'))}"
end

class << self
Expand Down
76 changes: 76 additions & 0 deletions lib/bcdice/game_system/StellarKnights_Korean.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# frozen_string_literal: true

require "bcdice/game_system/StellarKnights"

module BCDice
module GameSystem
class StellarKnights_Korean < StellarKnights
# ゲームシステムの識別子
ID = "StellarKnights:Korean"

# ゲームシステム名
NAME = "은검의 스텔라나이츠"

# ゲームシステム名の読みがな
SORT_KEY = "国際化:Korean:은검의 스텔라나이츠"

# ダイスボットの使い方
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
・판정 nSK[d][,k>l,...]
[]안은 생략 가능.
n: 다이스 개수, d: 공격 판정 대상의 방어력, k>l: 다이스를 굴려 k가 나오면 l로 변경(아마란서스 스킬 중「시작의 방」용)
d 생략 시 다이스를 굴린 결과만 표시. (nSK는 nB6과 동일)

4SK: 다이스 4개를 굴린 결과 표시.
5SK3: 【공격 판정: 5다이스】, 대상의 방어력을 3으로 계산해 성공 수 표시.
3SK,1>6: 다이스 3개 굴림, 1이 나오면 전부 6으로 변경, 대상의 방어력을 4로 계산해 성공 수 표시.
6SK4,1>6,2>6: 【공격 판정: 6다이스】, 1과 2가 나오면 전부 6으로 변경, 대상의 방어력을 4로 계산해 성공 수 표시.

・기본
TT: 소재 표
STA: 상황 표 A: 시간 (Situation Table A)
STB: 상황 표 B-1: 장소 (ST B)
STB2[n]: 상황 표 B-2: 학원편 (ST B 2)
 n: 1(아셀트레이 공립대학), 2(이데아글로리아 예술종합대학), 3(시트라 여학원), 4(필로소피아 대학), 5(성 아제티아 학원), 6(스폰 오브 아셀트레이)
STC: 상황 표 C: 화제 (ST C)
ALLS: 상황 표 전체 일괄 굴림 (학원편 제외)
GAT: 소속 조직 결정 (Gakuen Table)
HOT: 희망 표 (Hope Table)
DET: 절망 표 (Despair Table)
WIT: 소원 표 (Wish Table)
YST: 당신의 이야기 표 (Your Story Table)
YSTA: 당신의 이야기 표 (이세계) (YST Another World)
PET: 성격 표 (Personality Table)
성격 표를 2번 굴려 성격을 결정한다.

・안개와 벚꽃의 마르지날리아
YSTM: 당신의 이야기 표 (마르지날리아) (YST Marginalia)
STM: 상황 표: 마르지날리아 (ST Marginalia)
YSTL: 당신의 이야기 표 (편지) (YST Letter)
YSTR: 당신의 이야기 표 (리콜렉트 돌) (YST Recollect-doll)
STBR: 상황 표 B: 장소 (리콜렉트 돌) (ST B Recollect-doll)
STCR: 상황 표 C: 리콜렉트 (ST C Recollect)
STBS: 상황 표 B: 시트라 세팅 (ST B Sut Tu Real)
STE: 상황 표: 이클립스 전용 (ST Eclipse)

・자탄의 알트리부트
FT: 프래그먼트 표 (Fragment Table)
프래그먼트 표를 5번 굴린다.
FTx: 프래그먼트 표를 x회 굴린다.
YSTB: 당신의 이야기 (브링거) (YST Bringer)
YSTF: 당신의 이야기 (포지) (YST Forge)
STAL: 상황 표 (알트리부트) (ST Alt-Levoot)
INFO_MESSAGE_TEXT

register_prefix_from_super_class()

def initialize(command)
super(command)

@locale = :ko_kr
end

TABLES = translate_tables(:ko_kr).freeze
end
end
end
Loading