Skip to content
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
28 changes: 28 additions & 0 deletions i18n/AnimaAnimus/ja_jp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
ja_jp:
AnimaAnimus:
achievement_value: "達成値"
critical: "クリティカル発生"
table:
IGT:
name: "情報収集表"
type: "1d10"
items:
- "ストリートファイト/<格闘>/「俺に勝てたら教えてやるよ」情報を知る魂願者から勝負を挑まれた。生き延びるためにもこの勝負、負けるわけにはいかない。"
- "追跡!/<追跡/逃走>/有益な情報を持っている人間を見つけたが、こちらの顔を見るなり逃げ出した。どうにかして捕まえなくてはならない。"
- "脅し/<威圧>/ならず者たちが集まるバーにやってきた。裏社会に生きる彼らを脅せば有益な情報が手に入るはずだ。"
- "インターネット/<コンピュータ>/SNSやニュースなど、インターネット上の情報を調査する。デマには騙されないようにしなくては。"
- "瀕死の情報提供者/<医学>/情報を知る人物がいると聞いてやってきたら、その人物が瀕死の重傷を負っていた。なんとかして蘇生させなくては。"
- "潜入捜査/<隠密>/敵対する魂願者たちのグループに潜り込んでの調査活動。リスクは高いが、有益な情報が手に入る確率は高い。"
- "情報交換/<交渉>/友好的な関係にある魂願者との情報交換。うまく話を聞き出すことができるとよいが。"
- "魔宴の情報屋/<調達>/魔宴の情報屋に接触して情報を聞き出すことにした。一筋縄ではいかない相手らしいが、はたして……?"
- "違法調査/<犯罪>/法に触れるやり方で情報を集めることにした。ハッキング、窃盗、恐喝、どんな手段を選ぼうか。"
- "聞き込み/<自我>/街ゆく人びとに聞き込みを行なう。地道な活動こそが目標にたどり着くための最短の方法だ。"
LT:
name: "喪失表"
type: "1d10"
items:
- ["1..2", "存在/存在が希薄になり、知り合いや友人に自分の存在を忘れられてしまう。いずれ大切なパートナーの記憶からも消え、この世界でひとりぼっちになる。\nあなたの出自を消去すること。"]
- ["3..4", "記憶/自分の大切な記憶をひとつ失なう。これからは力を使うたびに記憶をひとつ失なうことになり、最後には大切なパートナーのことも思い出せなくなってしまう。\nあなたのメモリアをひとつ選択して消去すること。シナリオメモリアは選択できない。"]
- ["5..6", "容姿/だんだんと以前とはかけ離れた姿に変わっていく。いずれ誰も自分のことを自分だと気づかなくなるのだろう。\nあなたの特徴的な外見を失なう。内容をふさわしいものに書き換えること(特徴的な外見が美しい髪であれば醜い髪など)。"]
- ["7..8", "感情/喜怒哀楽の感情のうち、いずれかひとつを失なう。力を使うたびに他の感情も失っていき、最後にはただ生き残るために戦う機械となる。\nポジティブかネガティブのどちらかを選択する。選択した感情をすべてのメモリアから消去する。消去した結果、表出感情がなくなってしまった場合、残った感情を表出感情にすること。なお、新しくメモリアを取得した場合も、選んだ感情を得ることはできない。"]
- ["9..10", "五感/少しずつ五感が鈍くなる。今までできていたはずのことができなくなってしまう。\nあなたの特技をひとつ選択する。選択した特技に×をつけること。×が付いた技能で判定を行なうことはできず、判定を求められた場合は自動的に失敗となる。"]
28 changes: 28 additions & 0 deletions i18n/AnimaAnimus/ko_kr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
ko_kr:
AnimaAnimus:
achievement_value: "달성치"
critical: "크리티컬 발생"
table:
IGT:
name: "정보 수집표"
type: "1d10"
items:
- "스트리트 파이트/<격투>/「나한테 이기면 알려주지」정보를 아는 혼원자에게 승부를 도전받았다. 살아남기 위해서라도 이 싸움, 질 수는 없다."
- "추적!/<추적/도주>/유익한 정보를 가진 인물을 발견했지만, 이쪽 얼굴을 보자마자 도망쳐 버렸다. 어떻게든 잡아야만 한다."
- "협박/<위압>/불량배들이 모이는 바에 찾아왔다. 뒷세계에 사는 그들을 협박하면 유익한 정보를 얻을 수 있을 것이다."
- "인터넷/<컴퓨터>/SNS나 뉴스 등, 인터넷상의 정보를 조사한다. 가짜 뉴스에 속지 않도록 주의해야 한다."
- "빈사의 정보 제공자/<의학>/정보를 아는 인물이 있다는 말을 듣고 찾아갔더니, 그 인물이 빈사 상태의 중상을 입고 있었다. 어떻게든 소생시켜야 한다."
- "잠입 수사/<은밀>/적대하는 혼원자 그룹에 잠입해 조사 활동을 펼친다. 위험은 높지만 유익한 정보를 얻을 확률도 높다."
- "정보 교환/<교섭>/우호적인 관계에 있는 혼원자와 정보를 교환한다. 잘 이야기를 들어낼 수 있으면 좋겠지만."
- "마연의 정보상/<조달>/마연의 정보상에 접촉해 정보를 캐내기로 했다. 만만찮은 상대인 것 같은데, 과연……?"
- "불법 조사/<범죄>/법에 저촉되는 방법으로 정보를 모으기로 했다. 해킹, 절도, 공갈, 어떤 수단을 선택할까."
- "탐문/<자아>/거리를 오가는 사람들에게 탐문 수사를 실시한다. 꾸준한 활동이야말로 목표에 도달하기 위한 가장 빠른 방법이다."
LT:
name: "상실표"
type: "1d10"
items:
- ["1..2", "존재/존재가 희미해져, 지인이나 친구에게 자신의 존재를 잊혀버린다. 머지않아 소중한 파트너의 기억에서도 사라져, 이 세계에서 혼자가 된다.\n자신의 출신을 삭제할 것."]
- ["3..4", "기억/소중한 기억을 하나 잃는다. 앞으로는 힘을 사용할 때마다 기억을 하나씩 잃게 되며, 마지막에는 소중한 파트너의 일도 떠올릴 수 없게 된다.\n자신의 메모리아를 하나 선택하여 삭제할 것. 시나리오 메모리아는 선택할 수 없다."]
- ["5..6", "용모/점점 예전과는 동떨어진 모습으로 변해간다. 언젠가 아무도 자신을 자신이라고 알아보지 못하게 되는 것일까.\n자신의 특징적인 외모를 잃는다. 내용을 적절한 것으로 바꿔 쓸 것(특징적인 외모가 아름다운 머리카락이라면 흉한 머리카락 등)."]
- ["7..8", "감정/희노애락의 감정 중 어느 하나를 잃는다. 힘을 사용할 때마다 다른 감정도 잃어가며, 마지막에는 그저 살아남기 위해 싸우는 기계가 된다.\n포지티브와 네거티브 중 하나를 선택한다. 선택한 감정을 모든 메모리아에서 삭제한다. 삭제한 결과, 발현 감정이 없어진 경우, 남은 감정을 발현 감정으로 할 것. 또한, 새로운 메모리아를 취득한 경우에도 선택한 감정을 얻을 수 없다."]
- ["9..10", "오감/조금씩 오감이 둔해진다. 지금까지 할 수 있었던 일을 할 수 없게 되어버린다.\n자신의 특기를 하나 선택한다. 선택한 특기에 ×를 체크할 것. ×가 체크된 기능으로는 판정을 할 수 없으며, 판정 시 자동으로 실패한다."]
1 change: 1 addition & 0 deletions lib/bcdice/game_system.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
require "bcdice/game_system/Amadeus_Korean"
require "bcdice/game_system/AngelGear"
require "bcdice/game_system/AnimaAnimus"
require "bcdice/game_system/AnimaAnimus_Korean"
require "bcdice/game_system/AniMalus"
require "bcdice/game_system/Aoharubaan"
require "bcdice/game_system/Arianrhod"
Expand Down
47 changes: 15 additions & 32 deletions lib/bcdice/game_system/AnimaAnimus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ class AnimaAnimus < Base

def eval_game_system_specific_command(command)
m = /(\d+)AN<=(\d+([+-]\d+)*)/i.match(command)
if TABLES.key?(command)
return roll_tables(command, TABLES)
if self.class::TABLES.key?(command)
return roll_tables(command, self.class::TABLES)
elsif m
return check_action(m)
else
Expand All @@ -55,42 +55,25 @@ def check_action(match_data)
result = has_critical ? suc_cnt + 2 : suc_cnt

Result.new.tap do |r|
r.text = "(#{dice_cnt}B10<=#{target}) > #{dice_str} > #{result > 0 ? '成功' : '失敗'}(達成値:#{result})#{has_critical ? ' (クリティカル発生)' : ''}"
r.text = "(#{dice_cnt}B10<=#{target}) > #{dice_str} > #{result > 0 ? translate('success') : translate('failure')}(#{translate('AnimaAnimus.achievement_value')}:#{result})#{has_critical ? " (#{translate('AnimaAnimus.critical')})" : ''}"
r.critical = has_critical
r.success = result > 0
r.failure = !r.success?
end
end

TABLES = {
'IGT' => DiceTable::Table.new(
'情報収集表',
'1d10',
[
'ストリートファイト/<格闘>/「俺に勝てたら教えてやるよ」情報を知る魂願者から勝負を挑まれた。生き延びるためにもこの勝負、負けるわけにはいかない。',
'追跡!/<追跡/逃走>/有益な情報を持っている人間を見つけたが、こちらの顔を見るなり逃げ出した。どうにかして捕まえなくてはならない。',
'脅し/<威圧>/ならず者たちが集まるバーにやってきた。裏社会に生きる彼らを脅せば有益な情報が手に入るはずだ。',
'インターネット/<コンピュータ>/SNSやニュースなど、インターネット上の情報を調査する。デマには騙されないようにしなくては。',
'瀕死の情報提供者/<医学>/情報を知る人物がいると聞いてやってきたら、その人物が瀕死の重傷を負っていた。なんとかして蘇生させなくては。',
'潜入捜査/<隠密>/敵対する魂願者たちのグループに潜り込んでの調査活動。リスクは高いが、有益な情報が手に入る確率は高い。',
'情報交換/<交渉>/友好的な関係にある魂願者との情報交換。うまく話を聞き出すことができるとよいが。',
'魔宴の情報屋/<調達>/魔宴の情報屋に接触して情報を聞き出すことにした。一筋縄ではいかない相手らしいが、はたして……?',
'違法調査/<犯罪>/法に触れるやり方で情報を集めることにした。ハッキング、窃盗、恐喝、どんな手段を選ぼうか。',
'聞き込み/<自我>/街ゆく人びとに聞き込みを行なう。地道な活動こそが目標にたどり着くための最短の方法だ。',
]
),
'LT' => DiceTable::RangeTable.new(
'喪失表',
'1d10',
[
[1..2, "存在/存在が希薄になり、知り合いや友人に自分の存在を忘れられてしまう。いずれ大切なパートナーの記憶からも消え、この世界でひとりぼっちになる。\nあなたの出自を消去すること。"],
[3..4, "記憶/自分の大切な記憶をひとつ失なう。これからは力を使うたびに記憶をひとつ失なうことになり、最後には大切なパートナーのことも思い出せなくなってしまう。\nあなたのメモリアをひとつ選択して消去すること。シナリオメモリアは選択できない。"],
[5..6, "容姿/だんだんと以前とはかけ離れた姿に変わっていく。いずれ誰も自分のことを自分だと気づかなくなるのだろう。\nあなたの特徴的な外見を失なう。内容をふさわしいものに書き換えること(特徴的な外見が美しい髪であれば醜い髪など)。"],
[7..8, "感情/喜怒哀楽の感情のうち、いずれかひとつを失なう。力を使うたびに他の感情も失っていき、最後にはただ生き残るために戦う機械となる。\nポジティブかネガティブのどちらかを選択する。選択した感情をすべてのメモリアから消去する。消去した結果、表出感情がなくなってしまった場合、残った感情を表出感情にすること。なお、新しくメモリアを取得した場合も、選んだ感情を得ることはできない。"],
[9..10, "五感/少しずつ五感が鈍くなる。今までできていたはずのことができなくなってしまう。\nあなたの特技をひとつ選択する。選択した特技に×をつけること。×が付いた技能で判定を行なうことはできず、判定を求められた場合は自動的に失敗となる。"],
]
),
}.freeze
class << self
private

def translate_tables(locale)
{
'IGT' => DiceTable::Table.from_i18n('AnimaAnimus.table.IGT', locale),
'LT' => DiceTable::RangeTable.from_i18n('AnimaAnimus.table.LT', locale),
}
end
end

TABLES = translate_tables(:ja_jp).freeze

# ダイスボットで使用するコマンドを配列で列挙する
register_prefix('\d+AN<=', TABLES.keys)
Expand Down
39 changes: 39 additions & 0 deletions lib/bcdice/game_system/AnimaAnimus_Korean.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# frozen_string_literal: true

require 'bcdice/game_system/AnimaAnimus'

module BCDice
module GameSystem
class AnimaAnimus_Korean < AnimaAnimus
# ゲームシステムの識別子
ID = 'AnimaAnimus:Korean'

# ゲームシステム名
NAME = '아니마 아니무스'

# ゲームシステム名の読みがな
SORT_KEY = '国際化:Korean:아니마 아니무스'

# ダイスボットの使い方
HELP_MESSAGE = <<~MESSAGETEXT
・행위 판정(xAN<=y±z)
 십면체 주사위를 x개 굴려서 판정합니다. 달성치가 산출됩니다(크리티컬 발생 시 2 증가).
 x:굴리는 주사위의 수. 혼백값이나 공격값.
 y:성공값.
 z:성공값에 대한 보정. 생략 가능.
 (예) 2AN<=3+1 5AN<=7
・각종 표
 정보 수집표 IGT/상실표 LT
MESSAGETEXT

TABLES = translate_tables(:ko_kr).freeze

def initialize(command)
super(command)
@locale = :ko_kr
end

register_prefix('\d+AN<=', TABLES.keys)
end
end
end
Loading
Loading