diff --git a/lib/bcdice/game_system.rb b/lib/bcdice/game_system.rb index f344d1468..892701614 100644 --- a/lib/bcdice/game_system.rb +++ b/lib/bcdice/game_system.rb @@ -226,6 +226,7 @@ require "bcdice/game_system/ShinMegamiTenseiKakuseihen" require "bcdice/game_system/ShinkuuGakuen" require "bcdice/game_system/ShinobiGami" +require "bcdice/game_system/ShinobiGami_Korean" require "bcdice/game_system/Shiranui" require "bcdice/game_system/ShoujoTenrankai" require "bcdice/game_system/ShuumatsuBargainWars" diff --git a/lib/bcdice/game_system/ShinobiGami_Korean.rb b/lib/bcdice/game_system/ShinobiGami_Korean.rb new file mode 100644 index 000000000..122d21f66 --- /dev/null +++ b/lib/bcdice/game_system/ShinobiGami_Korean.rb @@ -0,0 +1,1233 @@ +# frozen_string_literal: true + +require 'bcdice/dice_table/table' + +module BCDice + module GameSystem + class ShinobiGami_Korean < ShinobiGami + # ゲームシステムの識別子 + ID = 'ShinobiGami:Korean' + + # ゲームシステム名 + NAME = '시노비가미' + + # ゲームシステム名の読みがな + SORT_KEY = '国際化:Korean:시노비가미' + + # ダイスボットの使い方 + # 25/01/17:書式成形(半角スペース×2に統一, 同じ書籍のシーン表は改行なしで列挙) + HELP_MESSAGE = <<~INFO_MESSAGE_TEXT + ・행동 판정 nSG@s#f>=x + 2D6을 굴려 행동 판정을 합니다. 주사위 수가 지정된 경우, 그 중 큰 눈 2개를 채택합니다. + n: 주사위 수 (표기 생략 시 기본 2) + s: 스페셜치 (표기 생략 시 기본 12) + f: 펌블치 (표기 생략 시 기본 2) + x: 목표치 (표기 생략 가능) + 예시)SG, SG@11, SG@11#3, SG#3>=7, 3SG>=7 + + ・행동 판정 이외의 표 + 다음 표는 「굴릴 회수 + 명령어」로 여러 번 굴릴 수 있습니다. + 예시)3RCT, 2WT + + ・랜덤 특기 결정표 RTTn (n:특기분야 번호, 생략 가능) + 1 기술 2 체술 3 인술 4 모술 5 전술 6 요술 + + ・랜덤 분야 표 RCT + + ・각종 표:기본 룰북 개정판 이후 + 펌블 표 FT, 전장 표 BT, 감정 표 ET, 상태이상 표 WT, 전국 상태이상 표 GWT, 프라이즈 효과 표 PT + 요마화(이형 표, 요마 인법 표 일괄) MT, 이형표 MTR, 요마 인법 표(x:A,B,C) DSx + + ・각종 표:유파북 이후 + 히라사카 유파북 + 패닉 표 HRPT + 쿠라마 유파북 + 새로운 전장 효과 표 BNT + 오토기 유파북 + 각성 표 OTAT + 인법 수업 장면 표(x:1-공격계 2-방어계 3-보조계)NCTx + 【운명의 장난】OTS + 오니혈 유파북 + 요술 상태이상 대응 표(x:없음-현대/전국, 1-현대, 2-전국)YWTx + 요마화(신 이형 표 사용) NMT, 신 이형 표 NMTR, 요마 인법 표(x:1-이령 2-흉신 3-신화 4-공격)DSNx + 매물 표 ONDT + + ・각종 표:기본 룰북 개정판 이전 + 시노비가미 기본(문고판) + 구 펌블 표 OFT , 구 상태이상 표 OWT, 구 전장 표 OBT, 구 이형 표 MT + 시노비가미 괴(怪) + 괴 펌블 표 KFT, 괴 상태이상 표 KWT (기본 구판과 동일) + + ・장면 표 + 기본 룰북 + 기본 ST, 데지마 DST, 도시 CST, 저택 MST, 트러블 TST, 회상 KST, 일상 NST, 학교 GAST, 전국시대 GST + 인비전 + 중급닌자 시험 HC, 멸망의 탑 HT, 그림자 거리에서 HK, 야행 열차 HY, 괴담 병동 HO, 린던 인법첩 이문 HR, 밀실 HM, 최면 HS + 정인기 + 카지노 TC, 로드 무비 TRM, 마스커레이드 캐슬 TMC, 달밤에 피는 죽음 TGS, 연인과의 일상 TKH, 학교(흑성제) TKG, 마도학원 TMG, 마도도쿄 TMT + 유파북 이후 + 오토기 유파북 + 불량 고교 OTFK + 기본 룰북 개정판 이전 + 死 기신궁전 + 도쿄 TKST + 리플레이 전투 1~2권 + 교토 KYST, 신사불각 JBST + 기타 + 가을 하늘에 눈이 흩날리면 AKST, 여름의 끝 NTST, 데지마EX DXST, 재앙 CLST, 하스바 개발실 HLST, 배양 플랜트 PLST + + ・D66 주사위 포함 + INFO_MESSAGE_TEXT + + class DemonSkillTableForMetamorphose + def initialize(pretext, table) + @pretext = pretext + @table = table + end + + def roll(randomizer) + return "#{@pretext} > #{@table.roll(randomizer)}" + end + end + + def initialize(command) + super(command) + + @sort_add_dice = true + @d66_sort_type = D66SortType::ASC + end + + SPECIAL = "스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" + + def result_2d6(total, dice_total, _dice_list, cmp_op, target) + return nil unless cmp_op == :>= + + if dice_total <= 2 + Result.fumble("펌블") + elsif dice_total >= 12 + Result.critical(SPECIAL) + elsif target == "?" + nil + elsif total >= target + Result.success("성공") + else + Result.failure("실패") + end + end + + register_prefix('\d*SG') + + def eval_game_system_specific_command(command) + return action_roll(command) || repeat_table(command) + end + + def repeat_table(command) + times = command.start_with?(/\d/) ? command.to_i : 1 + key = command.sub(/^\d+/, '') + results = [*0...times].map do |_| + result = roll_tables(key, TABLES) || roll_tables(key, SCENE_TABLES) || + roll_tables(key, DEMON_SKILL_TABLES) || roll_tables(key, DEMON_SKILL_TABLES_NEW) || RTT.roll_command(@randomizer, key) + + # 일본어를 한국어로 치환 + if result + result = result.gsub(/分野ランダム特技表/, " 분야 랜덤 특기 결정표") + .gsub(/ランダム特技表/, "랜덤 특기 결정표") + .gsub(/ランダム指定特技表/, "랜덤 지정 특기표") + .gsub(/ランダム分野表/, "랜덤 분야 표") # RCT 테이블용 추가 + end + + result + end.compact + return nil if results.empty? + + return results.join("\n") + end + + RTT = DiceTable::SaiFicSkillTable.new( + [ + ['기술', ['기기술', '불의 술', '물의 술', '침술', '암기', '의상술', '포승술', '등반술', '고문술', '손괴술', '굴삭술']], + ['체술', ['기승술', '포술', '수리검술', '손놀림', '신체조작', '보법', '주법', '비행술', '격투술', '도검술', '괴력']], + ['인술', ['생존술', '잠복술', '도주술', '도청술', '복화술', '은형술', '변장술', '향술', '분신술', '은폐술', '제육감']], + ['모술', ['의술', '독술', '함정술', '조사술', '사기술', '대인술', '예능', '미인계', '괴뢰술', '유언비어', '경제력']], + ['전술', ['병량술', '동물사역', '야전술', '지형활용', '의지', '용병술', '기억술', '색적술', '암호술', '전달술', '인맥']], + ['요술', ['이형화', '소환술', '사령술', '결계술', '봉인술', '언령술', '환술', '동술', '천리안', '빙의술', '주술']], + ], + s_format: "『%s』%s", + rtt_format: "랜덤 특기 결정표(%d,%d) > %s" + ) + + private + + def action_roll(command) + parser = Command::Parser.new(/\d*SG/, round_type: round_type) + .restrict_cmp_op_to(:>=, nil) + .enable_critical + .enable_fumble + cmd = parser.parse(command) + return nil unless cmd + + times = cmd.command.start_with?(/\d/) ? cmd.command.to_i : 2 + return nil if times <= 1 + + cmd.critical ||= 12 + cmd.fumble ||= 2 + + dice_list_full = @randomizer.roll_barabara(times, 6).sort + dice_list_full_str = "[#{dice_list_full.join(',')}]" if times > 2 + + dice_list = dice_list_full[-2, 2] + dice_total = dice_list.sum() + total = dice_total + cmd.modify_number + + result = + if dice_total <= cmd.fumble + Result.fumble("펌블") + elsif dice_total >= cmd.critical + Result.critical(SPECIAL) + elsif cmd.cmp_op.nil? + Result.new + elsif total >= cmd.target_number + Result.success("성공") + else + Result.failure("실패") + end + + sequence = [ + "(#{cmd.to_s(:after_modify_number)})", + dice_list_full_str, + "#{dice_total}[#{dice_list.join(',')}]#{Format.modifier(cmd.modify_number)}", + total, + result.text + ].compact + + result.text = sequence.join(" > ") + result + end + + # 妖魔忍法表A, B, C 요마 인법 표 A,B,C + DEMON_SKILL_TABLES = { + 'DSA' => DiceTable::Table.new( + '요마 인법 표A', + '1D6', + [ + '【부루부루】(괴p.252/기본p.172)', + '【카미가쿠시】(괴p.252/기본p.172)', + '【요스즈메】(괴p.252/기본p.172)', + '【사냥개】(괴p.252/기본p.172)', + '【오우마가토키】(괴p.252/기본p.172)', + '【쿄고츠】(괴p.252/기본p.172)', + ] + ), + 'DSB' => DiceTable::Table.new( + '요마 인법 표B', + '1D6', + [ + '【노부스마】(괴p.253/기본p.172)', + '【츠쿠모가미】(괴p.253/기본p.172)', + '【미코시】(괴p.253/기본p.172)', + '【코다마】(괴p.253/기본p.172)', + '【누에】(괴p.253/기본p.172)', + '【나마하게】(괴p.253/기본p.172)', + ] + ), + 'DSC' => DiceTable::Table.new( + '요마 인법 표C', + '1D6', + [ + '【햐쿠메】(괴p.254/기본p.173)', + '【돈코우】(괴p.254/기본p.173)', + '【아라하바키】(괴p.254/기본p.173)', + '【원령】(괴p.254/기본p.173)', + '【오니비】(괴p.254/기본p.173)', + '【히루코】(괴p.254/기본p.173)', + ] + ) + }.freeze + # 妖魔忍法表(隠忍流派)요마 인법 표 (오니혈 유파북) + DEMON_SKILL_TABLES_NEW = { + 'DSN1' => DiceTable::Table.new( + '요마 인법 표・이령', + '1D6', + [ + '【오우마가토키】(기본 p172) /【우츠로부네】(오니혈 p28)', + '【카미가쿠시】(기본 p172) /【꿈 포식】(오니혈 p28)', + '【쿄고츠】(기본 p172) /【금빛 체모】(오니혈 p28)', + '【코다마】(기본 p172) /【새끼줄 뱀】(오니혈 p28)', + '【츠쿠모가미】(기본 p172) /【코콘】(오니혈 p28)', + '【나마하게】(기본 p172) /【삼시】(오니혈 p28)', + ] + ), + 'DSN2' => DiceTable::Table.new( + '요마 인법 표・흉신', + '1D6', + [ + '【아라하바키】(기본 p173) /【아카지타】(오니혈 p29)', + '【오니비】(기본 p173) /【다이다라】(오니혈 p29)', + '【원령】(기본 p173) /【하쿠멘】(오니혈 p29)', + '【돈코우】(기본 p173) /【쟈미】(오니혈 p29)', + '【햐쿠에】(기본 p173) /【키타이】(오니혈 p29)', + '【히루코】(기본 p173) /【이와하다】(오니혈 p29)', + ] + ), + 'DSN3' => DiceTable::Table.new( + '요마 인법 표・신화', + '1D6', + [ + '【누에】(기본 p172) /【슈노반】(오니혈 p29)', + '【노부스마】(기본 p172) /【오사카베】(오니혈 p29)', + '【부루부루】(기본 p172) /【모노노케】(오니혈 p29)', + '【미코시】(기본 p172) /【카미마이】(오니혈 p29)', + '【요스즈메】(기본 p172) /【메쿠라베】(오니혈 p29)', + '【사냥개】(기본 p172) /【오이테케】(오니혈 p29)', + ] + ), + 'DSN4' => DiceTable::Table.new( + '요마 인법 표・공격', + '1D6', + [ + '【검은 손】(오니혈 p28) /【강맹한 위력】(오니혈 p25)', + '【업의 활】(오니혈 p28) /【강맹한 위력】(오니혈 p25)', + '【괴질】(오니혈 p28) /【강맹한 위력】(오니혈 p25)', + '【몰살】(오니혈 p28) /【강맹한 위력】(오니혈 p25)', + '【정령의 바람】(오니혈 p28) /【강맹한 위력】(오니혈 p25)', + '【뇌수】(오니혈 p28) /【강맹한 위력】(오니혈 p25)', + ] + ) + }.freeze + TABLES = { + 'FT' => DiceTable::Table.new( + '펌블 표', + '1D6', + [ + '뭔가 상태가 이상하다. 그 사이클 동안 모든 행동 판정에 -1의 수정치를 적용한다.', + '아뿔싸! 아무거나 닌자도구를 하나 잃어버린다.', + '정보가 새어나갔다! 당신을 제외한 다른 캐릭터들은 당신이 가지고 있는 【비밀】이나 【거처】중에서 원하는 것을 하나씩 알아낼 수 있다.', + '방심했다! 술법의 제어에 실패해서 【생명력】을 아무거나 1점 잃는다.', + '적의 음모인가? 함정에 걸려서 무작위로 상태이상 한 종류에 걸린다. 상태이상은 상태이상 표로 결정한다.', + '휴우. 하마터면 큰일 날 뻔 했다. 아무 일도 일어나지 않는다.', + ] + ), + 'OFT' => DiceTable::Table.new( + '펌블 표(구 문고판)', + '1D6', + [ + '뭔가 상태가 이상하다. 그 사이클 동안 모든 행동 판정에 -1의 수정치를 적용한다.', + '아뿔싸! 아무거나 닌자도구를 하나 잃어버린다.', + '정보가 새어나갔다! 이 게임에서 당신이 획득한【비밀】은, 다른 캐릭터 전원이 알게 된다.', + '방심했다! 술법의 제어에 실패해서 【생명력】을 아무거나 1점 잃는다.', + '적의 음모인가? 함정에 걸려서 무작위로 상태이상 한 종류에 걸린다. 상태이상은 상태이상 표로 결정한다.', + '휴우. 하마터면 큰일 날 뻔 했다. 아무 일도 일어나지 않는다.', + ] + ), + 'KFT' => DiceTable::Table.new( + '괴 펌블 표', + '1D6', + [ + '뭔가 상태가 이상하다. 그 사이클 동안 모든 행동 판정에 -1의 수정치를 적용한다.', + '아뿔싸! 아무거나 닌자도구를 하나 잃어버린다.', + '정보가 새어나갔다! 당신을 제외한 다른 캐릭터들은 당신이 가지고 있는 【비밀】이나 【거처】중에서 원하는 것을 하나씩 알아낼 수 있다.', + '방심했다! 술법의 제어에 실패해서 【생명력】을 아무거나 1점 잃는다.', + '적의 음모인가? 함정에 걸려서 무작위로 상태이상 한 종류에 걸린다. 상태이상은 상태이상 표로 결정한다.', + '휴우. 하마터면 큰일 날 뻔 했다. 아무 일도 일어나지 않는다.', + ] + ), + 'ET' => DiceTable::Table.new( + '감정 표', + '1D6', + [ + '공감(플러스) / 불신(마이너스)', + '우정(플러스) / 분노(마이너스)', + '애정(플러스) / 질투(마이너스)', + '충성(플러스) / 모멸(마이너스)', + '동경(플러스) / 열등감(마이너스)', + '광신(플러스) / 살의(마이너스)', + ] + ), + 'WT' => DiceTable::Table.new( + '상태이상 표', + '1D6', + [ + '고장:모든 닌자도구를 사용할 수 없게 된다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《기기술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '마비:습득하고 있는 특기 중에서 무작위로 하나를 고른다. 그 특기를 사용할 수 없게 된다. 이 효과는 습득하고 있는 특기의 수만큼 누적된다. 각 사이클을 종료할 때《신체조작》으로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + '중상:명중 판정, 정보 판정, 감정 판정을 할 때마다 접근전 대미지를 1점을 입는다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《생존술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '행방불명:메인 페이즈 동안 자기 이외의 플레이어가 장면 플레이어인 장면에 등장할 수 없게 된다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《경제력》으로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '망각:획득한【감정】중에서 무작위로 하나를 고른다. 그【감정】을 가지고 있지 않은 것으로 간주한다. 이 효과는 획득한【감정】의 수만큼 누적된다. 각 사이클을 종료할 때《기억술》로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + '저주:습득하고 있는 인법 중에서 무작위로 하나를 고른다. 그 인법을 사용할 수 없게 된다. 이 효과는 습득하고 있는 인법의 수만큼 누적된다. 각 사이클을 종료할 때《주술》로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + ] + ), + 'OWT' => DiceTable::Table.new( + '상태이상 표(구 문고판)', + '1D6', + [ + '고장:모든 닌자도구를 사용할 수 없게 된다. 1 사이클이 종료될 때,《기기술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '마비:습득하고 있는 특기 중에서 무작위로 하나를 고른다. 그 특기를 사용할 수 없게 된다. 1 사이클이 종료될 때,《신체조작》으로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '중상:다음 자신의 차례에 행동할 때, 특기 분야 중에서 무작위로 하나를 고른다. 그 특기 분야의 【생명력】에 1점의 대미지를 입는다. 1 사이클이 종료될 때,《생존술》으로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '행방불명:그 전투가 종료된 후, 메인 페이즈동안 행동이 불가능합니다. 1 사이클이 종료될 때,《경제력》으로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + '망각:획득한【감정】중에서 무작위로 하나를 고른다. 그【감정】을 가지고 있지 않은 것으로 간주한다. 1사이클이 종료될 때,《기억술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '저주:습득하고 있는 인법 중에서 무작위로 하나를 고른다. 그 인법을 사용할 수 없게 된다. 1 사이클이 종료될 때《주술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + ] + ), + 'KWT' => DiceTable::Table.new( + '괴 상태이상 표', + '1D6', + [ + '고장:모든 닌자도구를 사용할 수 없게 된다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《기기술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '마비:습득하고 있는 특기 중에서 무작위로 하나를 고른다. 그 특기를 사용할 수 없게 된다. 이 효과는 습득하고 있는 특기의 수만큼 누적된다. 각 사이클을 종료할 때《신체조작》으로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + '중상:명중 판정, 정보 판정, 감정 판정을 할 때마다 접근전 대미지를 1점을 입는다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때 《생존술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '행방불명:메인 페이즈 동안 자기 이외의 플레이어가 장면 플레이어인 장면에 등장할 수 없게 된다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《경제력》으로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다.', + '망각:획득한【감정】중에서 무작위로 하나를 고른다. 그【감정】을 가지고 있지 않은 것으로 간주한다. 이 효과는 획득한【감정】의 수만큼 누적된다. 각 사이클을 종료할 때《기억술》로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + '저주:습득하고 있는 인법 중에서 무작위로 하나를 고른다. 그 인법을 사용할 수 없게 된다. 이 효과는 습득하고 있는 인법의 수만큼 누적된다. 각 사이클을 종료할 때《주술》로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.', + ] + ), + 'GWT' => DiceTable::Table.new( + '전국 상태이상 표', + '1D6', + [ + '최면:이 상태이상에 걸린 이가 전투에 참가 했다면, 전투가 시작되는 시점 또는 이 상태이상에 걸린 시점에서【생명력】을 1점 감소하지 않으면 그 전투에서 자동적으로 탈락한다. 이 효과는 누적되지 않는다. 사이클을 종료할 때《의지》판정을 해서 성공하면 이 효과는 무효가 된다.', + '불덩어리:이 상태이상에 걸린 이는 펌블치가 1 상승하며, 펌블을 발생시키면 1점의 접근전 대미지를 입는다. 이 효과는 누적된다. 장면을 종료할 때 이 효과는 무효가 된다.', + '맹독:이 상태이상에 걸린 이가 전투에 참가했다면, 라운드를 종료할 때 주사위를 1개 굴린다. 그 눈이 홀수라면【생명력】이 1점 감소한다. 이 효과는 누적된다. 사이클을 종료할 때《독술》판정을 해서 성공하면 이 효과는 무효가 된다.', + '기아:이 상태이상에 걸린 이가 전투에 참가했다면, 라운드를 종료할 때 주사위를 1개 굴린다. 그 눈이 짝수라면【생명력】이 1점 감소한다. 이 효과는 누적된다. 사이클을 종료할 때《병량술》판정을 해서 성공하면 이 효과는 무효가 된다.', + '잔류물:이 상태이상에 걸린 이는 회복 판정이나 인법, 닌자도구의 효과로【생명력】을 회복할 수 없게 된다(상태이상은 회복할 수 있다). 이 효괴는 누적되지 않는다. 사이클을 종료할 때《고문술》판정을 해서 성공하면 이 효과는 무효가 된다.', + '야망:이 상태이상에 걸린 이는 명중 판정에 +1, 그 외의 모든 행동 판정에 -1의 수정치를 적용한다. 이 효과는 누적되지 않는다. 사이클을 종료할 때《빙의술》 판정을 해서 성공하면 이 효과는 무효가 된다.', + ] + ), + 'OBT' => DiceTable::Table.new( + '전장 표(구 문고판)', + '1D6', + [ + '평지:특별한 효과 없음.', + '수중:바다나 강, 수영장, 피 연못 지옥 등. 회피 판정에 -2의 수정치를 적용한다.', + '고지대:빌딩 사이나 나무 위, 깎아지른 절벽 등. 이 전장에서 펌블을 내면 대미지 1점을 입는다.', + '악천후:폭풍이나 눈보라, 미사일의 비 등. 이 전장에서는 모든 공격 인법의 간격이 1 상승한다.', + '혼잡:사람이 우글거리는 거리나 교실, 정체 중인 차도 등. 이 전장에서는 행동 판정을 할 때 2D6의 눈이 플롯 값 +1 이하라면 펌블이 발생한다.', + '위험지대:우주나 심해, 용암, 마계 등. GM은 라운드가 끝날 때 1D6을 굴린다. 주사위 눈이 경과한 라운드 이하인 경우, 전원 대미지 1점을 입는다. 여기서 탈락한 참가자는 상태이상 표를 굴려 결과를 적용한다.', + ] + ), + 'BT' => DiceTable::Table.new( + '전장 표', + '1D6', + [ + '평지:특별한 효과 없음.', + '수중:바다나 강, 수영장, 피 연못 지옥 등. 회피 판정에 -2의 수정치를 적용한다.', + '고지대:빌딩 사이나 나무 위, 깎아지른 절벽 등. 이 전장에서 펌블을 내면 접근전 대미지 1점을 입는다.', + '악천후:폭풍이나 눈보라, 미사일의 비 등. 이 전장에서는 모든 공격 인법의 간격이 1 상승한다.', + '혼잡:사람이 우글거리는 거리나 교실, 정체 중인 차도 등. 이 전장에서는 행동 판정을 할 때의 펌블치가 1 상승한다.', + '위험지대:우주나 심해, 용암, 마계 등. 게임 마스터는 라운드가 끝날 때 1D6을 굴린다. 주사위 눈이 전투가 시작하고 경과한 라운드 수 이하인 경우, 이 전장에 있는 캐릭터들은 접근전 대미지 1점을 입는다. 이 전장에서 탈락한 자는 1D6을 굴려서 상태이상 표의 결과를 적용한다.', + ] + ), + 'MT' => DiceTable::ChainTable.new( + "이형 표", + '1D6', + [ + DemonSkillTableForMetamorphose.new( + '1D6을 굴려「요마 인법 표A」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다.', + DEMON_SKILL_TABLES['DSA'] + ), + DemonSkillTableForMetamorphose.new( + '1D6을 굴려「요마 인법 표B」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다.', + DEMON_SKILL_TABLES['DSB'] + ), + DemonSkillTableForMetamorphose.new( + '1D6을 굴려「요마 인법 표C」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다.', + DEMON_SKILL_TABLES['DSC'] + ), + '요마화하고 있는 동안에는 전투 중에 라운드마다 사용할 수 있는 인법의 코스트가 자기 플롯치+3점이 되며, 장비 인법【뒤흔드는 소리】를 습득한다.', + '요마화하고 있는 동안에는【접근전 공격】으로 입히는 접근전 대미지가 2점이 된다.', + '요마화하고 있는 동안, 이 캐릭터의 공격에 대한 회피 판정과 이 캐릭터의 오의에 대한 오의 파훼 판정에 -1의 수정치를 적용한다.' + ] + ), + 'MTR' => DiceTable::Table.new( + "이형 표", + '1D6', + ['1D6을 굴려「요마 인법 표A」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다.', + '1D6을 굴려「요마 인법 표B」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다.', + '1D6을 굴려「요마 인법 표C」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다.', + '요마화하고 있는 동안에는 전투 중에 라운드마다 사용할 수 있는 인법의 코스트가 자기 플롯치+3점이 되며, 장비 인법【뒤흔드는 소리】를 습득한다.', + '요마화하고 있는 동안에는【접근전 공격】으로 입히는 접근전 대미지가 2점이 된다.', + '요마화하고 있는 동안, 이 캐릭터의 공격에 대한 회피 판정과 이 캐릭터의 오의에 대한 오의 파훼 판정에 -1의 수정치를 적용한다.'] + ), + 'PT' => DiceTable::Table.new( + '프라이즈 효과 표', + '2D6', + [ + '폭탄. 이 프라이즈의 소유자는 행동 판정에서 펌블이 발생하면 사격전 대미지 1D6점을 입는다. 그 후, 이 프라이즈는 파괴된다. 게임을 종료할 때 이 프라이즈를 가지고 있으면 공적점을 1점 획득한다.', + '집중. 이 프라이즈의 소유자는 전투 장면에서 라운드마다 사용할 수 있는 인법의 코스트가 1점 상승한다.', + '재생. 이 프라이즈의 소유자는 사이클을 종료할 때 【생명력】이 1점 회복한다.', + '장벽. 이 프라이즈의 소유자는 목표치가 10 이상인 회피 판정에 +1의 수정치를 적용한다.', + '가속. 이 프라이즈의 소유자는 자신이 공격 인법을 사용할 때, 거기에 대한 회피 판정에 -1의 수정치를 적용할 수 있다.', + '회복. 이 프라이즈의 소유자는 드라마 장면에서 회복 판정을 할 때, 추가로 【생명력】을 1점 회복하거나, 상태이상을 하나 회복할 수 있다.', + '단절. 이 프라이즈의 소유자는 누군가가 자신을 대상으로 정보 판정이나 감정 판정을 시도하려고 할 때, 그 판정에 -1의 수정치를 적용할 수 있다.', + '가호. 이 프라이즈의 소유자는 자신이 집단전 대미지를 입었을 때, 그것을 사격전 대미지로 변경할 수 있다.', + '기억. 이 프라이즈의 소유자는 무작위로 선택한 특기 한 종류를 습득하고 있는 것으로 간주한다.', + '명품. 이 프라이즈의 소유자는 【접근전 공격】 인법을 하나 더 특례 습득한다. 이 인법의 지정 특기는 프라이즈를 획득했을 때 획득한 캐릭터가 설정할 수 있다.', + '저주. 「프라이즈 효과 표」에서 주사위를 두 번 더 굴리고, 그 두 가지 효과를 모두 가진다. 이 프라이즈의 소유자는 사이클을 종료할 때 접근전 대미지 1점을 입는다.' + ] + ), + ## 以下流派ブック 이하 유파북 + 'BNT' => DiceTable::Table.new( + '새로운 전장 효과 표', + '1D6', + [ + '평지 | 갑:효과 없음./을:이 전장에서는 사격전의 명중 판정에 +1의 수정치를 적용한다.', + '수중 | 갑:이 전장에서는 회피 판정에 -2의 수정치를 적용한다./을:이 전장에서는 판정에서 스페셜이 발생해도【생명력】이 회복하는 효과가 발생하지 않는다.', + '고지대 | 갑:이 전장에서 펌블을 내면 접근전 대미지 1점을 입는다./을:이 전장에서는 각 라운드에 사용할 수 있는 인법 코스트의 최대치가 1 감소한다.', + '악천후 | 갑:이 전장에서는 모든 공격 인법의 간격이 1 상승한다./을:이 전장에서는 서포트 인법의 지정 특기 판정에 -2의 수정치를 적용한다.', + '혼잡 | 갑:이 전장에서는 행동 판정을 할 때의 펌블치가 1 상승한다./을:이 전장에서는 오의 파훼 판정에 -1의 수정치를 적용한다.', + '위험지대 | 갑:게임 마스터는 라운드가 끝날 때 1D6을 굴린다. 주사위 눈이 전투가 시작하고 경과한 라운드 수 이하인 경우, 이 전장에 있는 캐릭터들은 접근전 대미지 1점을 입는다. 이 전장에서 탈락한 이는 1D6을 굴려서 상태이상 표의 결과를 적용한다./을:이 전장에서 펌블을 내면 집단전 대미지 1점을 입는다.' + ] + ), + 'YWT' => DiceTable::Table.new( + '요술 상태이상 대응 표(현대/전국)', + '1D6', + [ + '기술:고장(현대) / 최면(전국)', + '체술:마비(현대) / 불덩어리(전국)', + '인술:중상(현대) / 맹독(전국)', + '모술:행방불명(현대) / 기아(전국)', + '전술:망각(현대) / 잔류물(전국)', + '요술:저주(현대) / 야망(전국)' + ] + ), + 'YWT1' => DiceTable::Table.new( + '요술 상태이상 대응 표(현대)', + '1D6', + [ + '기술:고장', + '체술:마비', + '인술:중상', + '모술:행방불명', + '전술:망각', + '요술:저주' + ] + ), + 'YWT2' => DiceTable::Table.new( + '요술 상태이상 대응 표(전국)', + '1D6', + [ + '기술:최면', + '체술:불덩어리', + '인술:맹독', + '모술:기아', + '전술:잔류물', + '요술:야망' + ] + ), + ## 誤字修正(異形態→異霊態) 오타 수정(이형태→이령태) + 'NMT' => DiceTable::ChainTable.new( + "신 이형 표", + '1D6', + [ + DemonSkillTableForMetamorphose.new( + '이령태(異霊態) |「요마 인법표・이령」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', DEMON_SKILL_TABLES_NEW['DSN1'] + ), + DemonSkillTableForMetamorphose.new( + '흉신태(凶身態) |「요마 인법표・흉신」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', DEMON_SKILL_TABLES_NEW['DSN2'] + ), + DemonSkillTableForMetamorphose.new( + '신화태(神化態) |「요마 인법표・신화」를 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', DEMON_SKILL_TABLES_NEW['DSN3'] + ), + DemonSkillTableForMetamorphose.new( + '공격태(攻激態) |「요마 인법표・공격」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', DEMON_SKILL_TABLES_NEW['DSN4'] + ), + '업마태(業魔態) | 요마화하고 있는 동안, 전투 중의 각 라운드에 사용할 수 있는 인법 코스트 합계가 자신의 플롯치+3점이 되며, 장비 인법 【뒤흔드는 소리】(기본p85)를 습득한다.', + '불시태(不視態) | 요마화하고 있는 동안, 이 캐릭터의 공격에 대한 회피 판정과 이 캐릭터의 오의에 대한 오의 파훼 판정에 -1의 수정치를 적용한다.' + ] + ), + 'NMTR' => DiceTable::Table.new( + "신 이형 표", + '1D6', + [ + '이령태(異霊態) |「요마 인법표・이령」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', + '흉신태(凶身態) |「요마 인법표・흉신」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', + '신화태(神化態) |「요마 인법표・신화」를 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', + '공격태(攻激態) |「요마 인법표・공격」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다.', + '업마태(業魔態) | 요마화하고 있는 동안, 전투 중의 각 라운드에 사용할 수 있는 인법 코스트 합계가 자신의 플롯치+3점이 되며, 장비 인법 【뒤흔드는 소리】(기본p85)를 습득한다.', + '불시태(不視態) | 요마화하고 있는 동안, 이 캐릭터의 공격에 대한 회피 판정과 이 캐릭터의 오의에 대한 오의 파훼 판정에 -1의 수정치를 적용한다.' + ] + ), + 'OTS' => DiceTable::Table.new( + '【운명의 장난】(오토기 p33)', + '1D6', + [ + '「병량환」을 1개 획득한다.', + '「신통환」을 1개 획득한다.', + '「둔갑부」를 1개 획득한다.', + '전장을 원하는 장소로 변경한다.', + '그 전투 동안 모든 판정에 +1의 수정치를 적용한다(5와 6의 효과는 누적되지 않는다).', + '그 전투 동안 모든 판정의 스페셜치가 1 감소한다(5와 6의 효과는 누적되지 않는다).' + ] + ), + 'HRPT' => DiceTable::Table.new( + '패닉 표', + '2D6', + [ + '이 혼란에 편승해서 세력을 키우려는 자가 나타난다. GM은 시나리오에 설정된 NPC 중에서 이 닌재를 일으킨 이를 적대하는 인물을 1명 선택한다. 그 NPC는 그 세션 동안 추가【생명력】과 그 슬롯을 1점 획득한다. 시나리오에 그런 NPC가 설정되어 있지 않다면, 이 닌재를 일으킨 이 이외의 PC 중에서 무작위로 PC 1명을 선택한다. 그 PC는 그 세션 동안 추가【생명력】과 그 슬롯을 1점 획득한다. 이 효과는 누적된다.', + '패닉이 확대되어 국제 문제로 발전한다. 일본의 국익에 큰 피해가 발생한다. 히라사카 기관이나 그 하위 유파에 소속된 PC는「공적점 획득」타이밍에 자동으로 법식 달성에 실패한 것으로 간주한다.', + '닌재의 영향이 시노비의 세계에까지 미쳐, 이 사태를 일으킨 인물의 책임 문제로 발전한다. 이번 세션에서【사명】(【진정한 사명】이 있다면 그 쪽)을 달성하지 못한 PC는「인무 실패 표」(기본 p71)를 1회 사용한다.', + '사람들 사이에 근거도 없는 소문이 만연하고, 세상이 암울해진다. 그 세션의 드라마 장면 동안 PC 전원은 모든 판정에 -1의 수정치를 적용한다.', + '닌재나 패닉의 희생자가 복수귀로 변한다. 그 세션의 드라마 장면 동안 PC 전원은 판정에 실패했을 때 접근전 대미지 1점을 입는다.', + '사람들의 패닉이 폭동으로 발전한다. 그 세션의 드라마 장면 동안 PC 전원은 판정에 실패했을 때 사격전 대미지 1점을 입는다.', + '많은 희생을 치르고, 사람들의 분노가 정부나 닌자를 향한다. 그 세션의 드라마 장면 동안 PC 전원은 판정에 실패했을 때 집단전 대미지 1점을 입는다.', + '사람들이 닌자의 존재를 믿기 시작하고, 그 정체를 캐내려고 하는 이가 나타난다. 그 사이클 동안 PC 전원은 모든 판정의 펌블치가 1 상승한다.', + '상층부에서 한동안 얌전히 지내라는 엄명을 내린다. 그 사이클 동안 습득한 공격 인법과 서포트 인법의 코스트가 1점 상승한다(코스트가「없음」인 것은 1이 된다).', + '패닉의 여파로 닌자들은 가족, 우정, 자신감, 존재 의의 등 각자의 소중한 것을 상실한다. 그 세션 동안 PC 전원은 판정 결과 스페셜이 발생해도【생명력】1점이나 상태이상을 회복하는 효과가 발생하지 않는다.', + '닌재의 결과, PC들에게 불신의 시선이 향한다. 그 세션에 등장하는 캐릭터 중에서 닌재를 일으킨 PC에 대해 플러스【감정】을 획득한 이는 그【감정】을 아무거나 마이너스【감정】으로 바꾼다(이 효과가 무효가 되면 원래의【감정】종류로 돌아간다).' + ] + ), + 'OTAT' => DiceTable::Table.new( + '각성 표', + '1D6', + [ + '자신의 힘이 급격히 두려워진다. 임의의 각성한 데이터 하나를 선택하여, 그것을 미각성 데이터로 변경한다.', + '자신의 힘이 폭주하여 주위에 피해를 준다. 그 장면에 등장한 캐릭터 전원(자신 포함)에게 사격전 대미지 1점을 입힌다.', + '각성에 동반하여 신체의 형태가 변화한다. 미각성 인법 중에서 무작위로 하나를 선택하고, 그것을 각성한 인법으로 전환한다.', + '닌자의 피에 각성하여 힘의 제어 방법을 이해할 수 있게 된다. 임의의 미각성 인법을 하나 선택하고, 그것을 각성한 인법으로 전환한다.', + '자신만 사용할 수 있는 독자적인 힘을 각성한다. 임의의 미각성 오의 하나를 선택하고, 그것을 각성한 오의로 전환한다.', + '자신의 뇌에 누군가가 직접 속삭인다. 집단전 대미지 1점을 입으면 임의의 미각성 데이터 하나를 선택하고, 그것을 각성한 데이터로 변경할 수 있다. 퇴마편이라면, 집단전 대미지를 받는 대신 요마화 하는 것으로 임의의 미각성 데이터 하나를 선택하고, 그것을 각성한 데이터로 변경할 수 있다.' + ] + ), + 'ONDT' => DiceTable::Table.new( + '매물 표', + '2D6', + [ + '날개손 (기본 p175) / 해부칼 (오니혈 p31)', + '유명환 (기본 p174) / 마계수 (오니혈 p30)', + '얼굴 없는 가면 (기본 p174) / 용린 (오니혈 p30)', + '사생아 (기본 p174) / 고획함 (오니혈 p30)', + '뼈칼 (기본 p174) / 마혈의 지도 (오니혈 p30)', + '사령분[좀비파우더] (기본 p174) / 푸른 뿔 (오니혈 p30)', + '조수의 구슬 (기본 p174) / 송장 인형 (오니혈 p30)', + '생체총 (기본 p174) / 투환향 (오니혈 p30)', + '요피지 (기본 p174) / 도래인 미이라의 목 (오니혈 p30)', + '신명창 (기본 p174) / 잠의 모래 (오니혈 p30)', + '외법로 (기본 p175) / 아귀혼 (오니혈 p31)' + ] + ), + ## 忍法授業シーン表(シナリオとは無関係なためこちらに記載)인법 수업 장면 표 (시나리오와 무관해 이곳에 기재) + 'NCT1' => DiceTable::Table.new( + '공격계 인법 수업 장면 표', + '1D6', + [ + "\n접근전투학:《도검술》《야전술》\n【조릿대꿰기】(기본 p78) /【천도】(기본 p102) /【새 시대의 이치】(오토기 p34) / 임의의 체술\n\n오토기 학원 부지 내에 있는 삼림, 오토기 숲에서 진행하는 수업. 근접 무기 중에서도 날붙이만을 사용하여 타깃인 베테랑 교사를 쓰러뜨려야 한다. 유리한 지형에서 싸우는 것, 타깃이 사용하는 전통적인 기술을 이해하는 것이 중요.", + "\n사격전투학:《포술》《색적술》\n【필중】(기본 p79) /【문곡】(기본 p103) /【마궁】(오토기 p33) / 임의의 기술\n\n지상 10층부터 1층짜리에 이르기까지 다양한 높이의 건물이 모인 동아리동 주위에서 수업을 한다. 활이나 슬링, 권총, 라이플 등 온갖 사격 무기를 사용해서 잠복한 표적의 발견 및 격파를 노린다. 상대가 향하는 목적지를 예측하는 방법, 이동을 방해하는 방법 등도 배운다.", + "\n집단전투학:《야전술》《용병술》\n【추격】(기본 p80) /【복병】(기본 p102) /【무곡】(기본 p103) / 임의의 전술\n\n오토기 학원에서 가장 높은 장소의 하나인 대시계탑 위에서 수업을 한다. 지상에 있는 하급생들에게 지시를 내려 타깃을 방해하도록 시킨다. 기습을 지시하거나, 독을 쓰게 하거나, 질 나쁜 소문을 흘리게 하는 등 하급생들을 통해 부하의 효과적인 활용법을 깨우치는 수업.", + "\n고속전투학:《격투술》《의지》\n【연격】(기본 p81) /【가을 폭풍】(기본 p81) /【분사 기구】(오토기 p33) / 임의의 인술\n\n지하 무술 도장에서 하는 수업. 일대일 맨손 대련을 중심으로, 공격을 맞히려면 어떻게 해야 하는가, 공격을 한 후에 어떻게 움직이는 것이 효과적인가 등을 가르친다. 또, 장시간 진행되는 수업이라 기력 또한 도마 위에 오른다.", + "\n전투물리학:《암기》《기억술》\n【강타】(기본 p83) /【기갈】(기본 p84) /【사오토메】(기본 p102) / 임의의 기술\n\n자신이 가진 공격 방법을 보다 확실한 것으로 승화하는 수단에 대해 배우는 이론 중심의 수업. 무기의 위력을 높이거나, 시간을 끌어 표적을 애태우거나, 어디에 있는지 파악하는 방법 등을 배울 수 있다.", + "\n살육역학:《야전술》《언령술》\n【야만족의 노래】(기본 p82) /【협력 전선】(오토기 p33) /【하늘의 창】(오토기 p33) / 임의의 요술\n\n여러 개의 팀으로 나누고, 다른 팀을 적으로 간주하여 진행하는 그룹 학습. 협력하여 싸우는 법, 대상의 부정적인 감정을 부추기는 화술에 더해 지형과 요술을 이용하여 상대를 해치는 주문 등이 강의의 내용에 포함된다." + ] + ), + 'NCT2' => DiceTable::Table.new( + '방어계 인법 수업 장면 표', + '1D6', + [ + "\n인체호신학:《의상술》《지형활용》\n【오토기 정신】(기본 p102) /【환복】(오토기 p34) /【자경】(오토기 p36) / 임의의 체술\n\n일반 수업 중에 지도 교사의 공격을 받는다. 일반 학생에게 들키지 않고 견디거나 받아 넘기는 방법을 배울 수 있다. 단순한 신체 능력만이 아니라 지형이나 장비를 이용하는 법을 배우는 것을 중시하여 평가한다.", + "\n경비방위학:《분신술》《암호술》\n【감싸기】(기본 p81) /【호위】(기본 p81) /【양동】(기본 p102) / 임의의 인술\n\n오토기 학원의 드넓은 부지 전체를 사용하는 수업. 즉시 지정된 타깃의 곁으로 이동해서 수업을 마칠 때까지 호위해야 한다. 본인이 어떻게 움직여야 하는지는 물론이고 호위 대상에게 적절한 지시를 내리는 법, 그 지시를 습격자가 파악하지 못하게 하는 방법도 학습할 수 있다.", + "\n특수회피학:《손놀림》《지형활용》\n【화살방어술】(기본 p82) /【반격기】(기본 p82) /【바꿔치기술】(기본 p83) / 임의의 전술\n\n드넓은 대운동장을 사용하는 수업. 눈을 가린 채로 슈리켄, 쿠나이, 활, 권총이나 라이플 등의 중거리, 원거리 공격을 받는다. 단순히 피하는 것에 그치지 않고 공격 자체를 실패로 돌리는 법, 날아온 무기를 되받아 치는 법 등등 공격자에 대처하는 방법을 배운다.", + "\n인법요법학:《대인술》《병량술》\n【이독제독】(기본 p81) /【선식】(기본 p102) /【설교】(기본 p104) / 임의의 모술\n\n학생 기숙사의 담화실, 식당 등을 사용해서 진행한다. 커뮤니케이션을 통해 동료의 기력이나 모티베이션을 회복하는 방법을 배우는 수업. 대화뿐만 아니라 음식물이나 금전 같은 보수를 이용하는 방법 등도 학습 내용에 포함되어 있다.", + "\n생존훈련학:《생존술》《의지》\n【강건함】(기본 p84) /【달인】(기본 p84) /【또렷한 정신】(오토기 p33) / 임의의 체술\n\n오토기 학원 소유의 광대한 삼림, 오토기 수해(樹海)에서 진행하는 현장수업. 수해에는 무수한 함정이 설치되어 있고, 인수들을 풀어 놓았다. 학생들은 무작위로 결정한 장소에 투하되어 골 지점으로 향한다.", + "\n대항인법학:《기승술》《암호술》\n【기마】(기본p81) /【파훼술】(기본p82) /【작전 지휘】(기본p83) / 임의의 인술\n\n학원 제일의 장서 수를 자랑하는 오토기 제5 도서관을 이용한다. 2인 1조로 팀을 짜고, 도서관에서 각자가 익힌 인법의 이용 방법, 대처 방법을 조사한 후, 자리를 옮겨 실제로 활용한다. 상대에게 유리한 장소를 얼마나 잘 피할 수 있는지도 중요." + ] + ), + 'NCT3' => DiceTable::Table.new( + '보조계 인법 수업 장면 표', + '1D6', + [ + "\n정보전략학:《기억술》《천리안》\n【점술】(기본 p82) /【보복 암호】(오토기 p34) /【분석】(오토기 p36) / 임의의 모술\n\n학생들이 그린 그림으로 장식한 구교사 미술실에서 진행하는 실습 수업. 그림에는 괴이와 관련된 인무로 목숨을 잃은 학생들의 전언을 비롯하여 다양한 메세지가 남아있다. 찾아내는 법, 해독하는 법, 더 나아가 그것들을 어떻게 이용할지를 학습한다.", + "\n첩보심리학:《대인술》《전달술》\n【감정 조작】(기본p83) /【전심】(오토기p33) /【유연한 기질】(오토기p33) / 임의의 모술\n\n콘서트 등에도 이용하는 오토기 기념 음악 홀을 사용한다. 음악 감상 중인 일반 학생 중 한 명을 지정하여 그 인물의 호감을 사거나, 지시를 전하거나, 물품을 주고받는 실습을 한다.", + "\n고속기동학:《도청술》《이형화》\n【무박자】(기본 p81) /【각오】(기본 p82) /【신기루】(기본 p104) / 임의의 전술\n\n원심력을 이용하여 높은 부하를 일으키는 과중력 환경실에서 고속기동을 터득하는 수업을 한다. 반복 훈련을 통해 신체 능력을 확장할 뿐만 아니라, 고속기동 중에 발생하는 빛의 굴절, 분산에 의한 프리즘 효과에 뇌를 적응시킨다.", + "\n전장구축학:《기승술》《지형활용》\n【유도】(기본 p82) /【전장의 극의】(기본 p102) /【안전지대】(오토기 p33) / 임의의 전술\n\n자신에게 유리한 지형이나 상황을 찾아내고, 전장을 그곳으로 유도하는 방법을 배운다. 자전거, 바이크, 자동차, 승용마의 사용을 비롯하여 학원 내의 헬리포트나 수송용 열차, 비밀 지하통로의 이용도 허가되어 있다.", + "\n방해환경학:《지형활용》《봉인술》\n【황사】(기본 p103) /【큰불】(오토기 p34) /【얼음쐐기】(오토기 p34) / 임의의 요술\n\n걱대 사우나, 대식당 부속 냉동실, 강풍으로 유명한 오토기 모래언덕을 이용하여, 고온과 저온의 환경, 시야를 가리는 장소 등 열악한 상황에서 싸우는 법을 배우는 수업. 일반적인 지형이나 날씨뿐만 아니라, 학원에 소속된 반요의 요력으로 발생시킨 상황까지도 체험한다.", + "\n업자력학:《동물사역》《주술》\n【신통력】(기본 p82) /【기구한 운명】(오토기 p33) /【세 개의 별】(오토기 p33) / 임의의 요술\n\n오토기 학원 전용 네크워크를 사용하는 온라인 수업. 무녀나 주술사가 강사를 맡으며, 인간이 아닌 존재의 힘을 빌린 주술 등을 사용함으로써 운명에 개입하여 자신에게 유리한 방향으로 유도하는 이론을 철저하게 학습한다." + ] + ) + }.freeze + # シーン表 장면 표 + SCENE_TABLES = { + ## 以下シーン表 이하 장면 표 + 'ST' => DiceTable::Table.new( + '기본 장면 표', + '2D6', + [ + '주위에 피 냄새가 진동한다. 누군가가 싸운 흔적. 아니, 아직 싸움은 계속되고 있는 것인가?', + '이것은……꿈? 이미 지나간 과거. 하지만 그것을 잊을 수는 없다.', + '눈앞에 펼쳐진 거리의 풍경을 바라본다. 여기라면 한 눈에 거리를 내려다볼 수 있지만…….', + '세계의 끝을 연상케 하는 어둠. 어둠 속에서 당신들은 은밀하게 속삭인다.', + '평화로운 시간이 흘러간다. 그림자의 세계를 잊어버릴 것만 같다.', + '맑은 기운이 감도는 숲 속. 새가 지저귀는 소리와 나무 사이로 산들바람이 부는 소리가 들려온다.', + '엄청나게 혼잡하고 떠들썩하다. 그림자의 세계를 모르는 순진한 이들이 자기자랑이며 잡담을 나누는 소리로 시끌벅적하다.', + '세찬 비가 내린다. 사람들은 비를 피할 곳을 찾아 황급히 달려가고 있다.', + '강한 바람이 휘몰아친다. 머리카락과 옷이 크게 휘날린다. 무언가 일어날 듯한 예감…….', + '주정뱅이의 노성. 호객꾼들의 외침. 여자들의 교성. 평소와 다를 것이 없는 번화가의 모습이지만…….', + '태양의 미소가 당신을 감싼다. 그림자 속에서 살아가는 이들에게 그 미소는 너무나 눈부시다.', + ] + ), + 'CST' => DiceTable::Table.new( + '도시 장면 표', + '2D6', + [ + '샤워를 하고, 욕조에 지친 몸을 담근다. 때로는 힐링도 필요하다.', + '한적한 주택가. 시노비의 세계와는 무관한 일상이 펼쳐져 있는 것처럼 보이지만…… 그것은 착각일지도 모른다.', + '다리 위에 우두커니 서 있다. 강 건너편과 연결되는 경계 지점. 자, 어디로 가야 할까……?', + '인기척이 없는 공원. 길고양이 한 마리가 멀리서 당신을 보고 있는 기분이 든다.', + '술 한 잔의 행복. 이 한잔을 위해서 산다. ……어째 항상 같은 소리를 하는 기분도 든다.', + '생동감이라고는 느껴지지 않는 오피스 빌딩. 그것은 마치 도시의 묘비같다.', + '낡은 극장. 조명은 꺼졌고, 당신들 외의 관객은 없는 것 같지만…….', + '상점가를 걷는다. 인파에 섞여 이따금 불온한 기척이 느껴지는데…….', + '빌딩과 빌딩 사이를 넘나든다. 이 거리 어딘가에 「그것」이 존재할 터인데…….', + '본 적도 없는 천장. 깜빡 잠들었나? 그런데 여긴 어디지?', + '폐가. 바닥에 망가진 집기며 기구들이 난잡하게 뒹굴고 있다.', + ] + ), + 'MST' => DiceTable::Table.new( + '저택 장면 표', + '2D6', + [ + '어딘지도 알 수 없는 어둠 속. 닌자들이 숨어들기에는 적합한 장소다.', + '저택의 지붕 위. 여기라면 저택의 주변을 한 눈에 볼 수 있을 터…….', + '아름다운 정원. 정성들여 키운 다양한 색깔의 꽃. 그리고 아름답게 다듬은 생울타리가 펼쳐져 있다.', + '당신은 계단에서 문득 발을 멈춘다. 누군가의 발소리가 들려오는 것 같다.', + '당신에게 배정된 침실. 침대는 푹신하고, 집기도 고급품뿐이지만…….', + '현관의 홀. 고풍스러운 벽시계가 시보를 울리는 가운데, 저택 주인의 초상화가 당신을 내려다보고 있다.', + '식당. 얼룩 하나 없는 테이블 클로스를 덮어 놓은 긴 식탁. 그 위에는 오랫동안 사용된 고풍스러운 촛대와 꽃이 장식되어 있다.', + '긴 복도 한복판. 이 저택은 너무 넓어서 미아가 될 것만 같다.', + '장난삼아 오락실에 들어왔다. 그곳에는 당구대, 다트판, 몇 패의 트럼프가 흩어져 있는 포커 테이블이 있다.', + '곰팡내 나는 도서관. 역대 저택 주인의 기록이나 동서고금의 명작이 빼곡히 책장에 꽂혀 있다.', + '일족의 납골당이 있다. 냉기와 독기가 가득한 장소에 기묘한 외침이 들려온다. 멀리서 새가 지저귀는 소리인가? 아니면 죽은 자의 원한서린 목소리인가……?', + ] + ), + 'DST' => DiceTable::Table.new( + '데지마 장면 표', + '2D6', + [ + '미궁 속의 거리. 언제부터 갇혀버린 걸까? 수도 없이 교차하고 꺾이는 길을 쉬지 않고 걷는다. 이 장면의 등장인물은《기억술》로 판정을 해야 한다. 성공하면 미궁의 끝에서 임의의 닌자도구를 1개 획득한다. 실패하면 「행방불명」 상태이상에 걸린다.', + '환영의 성. 방문한 자의 과거나 미래를 나타내는 풍경을 보여주는 장소. 이 장면의 등장인물은《의지》로 판정을 할 수 있다. 성공하면 자신이 가지고 있는【감정】을 원하는 내용으로 변경할 수 있다.', + '죽은 자들의 행진. 한 맺힌 죽음을 맞이한 자들이 길동무를 찾아 방황하고 있다. 이 장면의 등장인물은《사령술》로 판정을 해야 한다. 실패하면 무작위로 정한 상태이상 하나에 걸린다.', + '슬럼. 간신히 살아남은 사람들이 서로 의지하며 살아가고 있는 모양이다. 여기라면 조금은 안심할 수 있을지도…….', + '낙서투성이의 호텔. 그 주위에는 피부를 노출한 남녀들이 교태를 부리며 모여 있다.', + '줄지어 서 있는 폐허. 그 그늘에서 사람도 괴물도 아닌 존재의 그림자가 당신을 엿보고 있다.', + '지저분한 뒷골목. 검은색의 거대한 개가 무언가를 먹고 있다. 검은 개는 당신의 기척을 느끼고 그 자리를 떠나지만, 거기에 남아 있는 것은…….', + '어두운 술집. 바텐더가 말없이 유리잔을 닦고 있다. 당신 말고는 손님의 기척은 느껴지지 않지만…….', + '지면을 뒤덮은 무수한 기왓조각과 자갈. 그 틈새로 암흑의 독기가 피어오른다. 이 장면의 등장인물은《생존술》로 판정을 해야 한다. 실패하면 아무거나【생명력】을 1점 잃는다.', + '열기를 띤 시장. 무기나 약물을 파는 모양이다. 상인들 중에는 도래인도 있다. 이 장면의 등장인물은《경제력》으로 판정을 할 수 있다. 성공하면 임의의 닌자도구를 1개 획득할 수 있다.', + '눈앞에 도래인이 나타난다. 도래인은 당신에게 흥미를 보이며 습격해온다. 이 장면의 등장인물은《도검술》로 판정해야 한다. 성공하면 도래인을 쓰러뜨리고 임의의 닌자도구를 1개 획득한다. 실패하면 3점의 접근전 대미지를 입는다.', + ] + ), + 'TST' => DiceTable::Table.new( + '트러블 장면 표', + '2D6', + [ + '동행과 싸우고 말았다. 으음, 껄끄러운 분위기.', + '촤악! 동행의 실수로 흠뻑 젖어버렸다. ……추워.', + '적의 기척을 느끼고 몸을 숨긴다. 그런데… 동행의 휴대전화가 착신음을 울리기 시작한다.「……. 에헤헤헤헤」하고 웃을 상황이냐!', + '동행의 분위기 파악 못하는 한 마디. 완전히 어색한 분위기가 되었다. 곤란하다. 어떻게든 해야 한다.', + '위기일발! 동행을 죽음의 위기에서 구해냈다! ……여기도 방심할 수 없군.', + '동행이 행방불명된다. 그 녀석, 어디로 도망친 거야!', + '와당탕! 아파라……. 발을 헛디딘 동행에게 휘말려서 같이 넘어지고 말았다.', + '동행 때문에 길을 잃었다. 곤란한데. 어디로 가야 할까?', + '「어딜 보고 다니는 거냐, 짜샤!」양아치들이 동행에게 시비를 걸고 있다. 으음~ 도와줘야 하나?', + '…! 방심했다가 동행에게 자신의 부끄러운 일면을 보이고 말았다. ……일생의 불찰!', + '동행이 갑자기 눈물을 흘린다. ……도대체 무슨 일이지?', + ] + ), + 'NST' => DiceTable::Table.new( + '일상 장면 표', + '2D6', + [ + '에취! 으음……. 감기에 걸렸나? 아, 문병 와줬구나. 고마워.', + '눈앞의 그 녀석은 몰라볼 정도로 그럴싸하게 차려 입고 있었다. 서서히…… 어른의 시간이 흘러간다.', + '맛있어 보이는 간식을 먹게 되었다. 가끔은 단 것을 먹으면서 한숨 돌려야지~♪', + '후와와와와. 어느새 잠들어버렸다. ……어, 어라? 너, 언제부터 거기에 있었어!?', + '쇼핑을 하고 돌아오는 길에 친구와 만난다. 방향이 같아서 잠시 함께 걷다보니 어느새 이야기꽃이 피었다.', + '편의점. 상품을 집어 들려고 손을 뻗었더니, 동시에 그 상품을 집으려던 다른 인물과 손이 닿는다. 이런 우연이!', + '다 함께 식탁에 둘러앉았다. 전골로 할까? 아니면 불고기? 오코노미야키도 괜찮겠네♪', + '어딘가에서 즐거운 노랫소리가 들려온다. ……어, 어라? 왜 네가 이런 곳에?', + '길고양이에게 먹이를 준다. 목을 가르릉거리는 고양이. 마음 놓고 당신에게 어리광을 부리는 모양새다.', + '「……! ……? ……♪」 TV에서 뭔가 재미있는 장면이 나오고 있다. 어라, 벌써 시간이 이렇게 됐나?', + '재미 있어 보이는 게임! 누군가와 게임으로 승부를 겨루게 된다. GM은 전술 분야에서 무작위로 특기를 하나 선택한다. 이 장면에 등장한 캐릭터는 그 특기로 판정을 한다. 성공한 경우, 같은 장면에 등장한 캐릭터 1명을 선택하고, 자신에 대한 그 캐릭터의 【감정】을 임의의 것으로 변경한다(아무런 【감정】도 가지고 있지 않은 경우, 임의의 【감정】을 획득한다).', + ] + ), + 'TKST' => DiceTable::Table.new( + '도쿄 장면 표', + '2D6', + [ + '오다이바, 임계 부도심. 데이트 중인 커플과 관광객들로 붐비고 있다.', + '야스쿠니 신사. 도쿄의 중심부라고는 생각되지 않을 정도로 녹지로 가득 찬 곳이다. 지금은 관광객도 없고, 이상하게도 조용하다…….', + '도쿄 대학 본부 캠퍼스. 정문에서 뻗어 나가는 은행나무 길에 학생들과 교직원들이 여유롭게 걸어다니고 있다. 길 건너편에는 야스다 강당(安田講堂)이 보인다.', + '야마노테 선 안. 승차율 200%를 초과하는, 살인적인 출퇴근 러시 정점. 이 안에서 할 수 있는 일은 제한적이다……', + '카스미가세키(霞が関). 이 장소에 모이는 정보는, 닌자에게도 가치 있는 내용이다. 길을 걷는 사람들 중에도 공무원과 경찰관이 눈에 띈다.', + '시부야 역 앞의 혼잡한 거리. 대형 야외 스크린이 내려다보는 가운데, 많은 젊은이들이 오가며 붐비고 있다.', + '밤의 신주쿠 가부키초. 술에 취한 직장인, 화려한 밤의 나비, 분명히 폭력 조직원인 남자와 외국인 등 다양한 인간들이 어우러져, 어딘가 위험한 분위기가 가득하다.', + '신주쿠 도청. 고층 빌딩이 밀집한 거리 아래, 정장 차림의 사람들이 분주하게 오간다.', + '간다 고서점가. 많은 고서점이 줄지어 서 있다. 가게 앞마당에 쌓인 책 산더미 속에도, 추적하는 미스터리나 깊은 지식이 숨겨져 있을 것 같은 느낌이 든다.’', + '산야의 도야 거리(山谷のドヤ街). 일용직 노동자들이 모이는 관리 숙박 시설이 많은 이 곳은, 몸을 숨기기에 딱 맞는 곳이다.', + '도쿄 스카이트리 정상. 이 곳에서라면 도쿄의 도시 전경을 한눈에 볼 수 있다.', + ] + ), + 'KST' => DiceTable::Table.new( + '회상 장면 표', + '2D6', + [ + '어둠 속에 만연한 닌자의 기척. 그 때도 그랬다. 뼈아픈 실패를 범했던 기억. 이번에야말로 잘 해내고 말겠다.', + '달콤한 입맞춤. 격렬한 포옹. 슬픈 눈동자. ……하룻밤의 추억이 되살아난다.', + '기억 속에서 흔들리는 세피아 빛의 풍경. ……기억이 있다. 그래, 난 여기에 온 적이 있어!!', + '눈앞에 쓰러진 시체. 지면에 피가 번지고 있다. 그것은, 내 탓이었을까……?', + '그 녀석과의 소중한 추억을 떠올린다. 지켜야 했던 약속, 지키지 못한 약속.', + '도움을 바라는 손이 당신을 향해 똑바로 다가온다. 당신은 필사적으로 그 손을 잡으려 했지만, 간발의 차이로 그 손을 잡지 못했다…….', + '반짝반짝 빛나는 웃는 얼굴. 지금은 잃어버린, 그 소중한 웃음.', + '무시무시한 일격! 하마터면 목숨을 잃을 뻔했다……. 하지만 그 기술은 아직도 간파하지 못했다.', + '어린 시절의 기억. 사이 좋았던 그 아이. 그러고보면 그 아이는 어디로 가버린 걸까? 어쩌면…….', + '「……윽!!」격렬한 말다툼. 최악의 형태로 헤어지고 말았다. 그렇게 될 줄 알았다면…….', + '주머니 속의 부적을 움켜쥔다. 그 녀석에게 받은, 소중한 추억의 물건.「병량환」을 1개 획득한다.', + ] + ), + 'GST' => DiceTable::Table.new( + '전국시대 장면 표', + '2D6', + [ + '불타오르는 산성(山城). 사람들의 비명과 노성이 메아리친다. 아무래도 적장의 화공인 모양이다. 지금이라면, 어쩌면…….', + '황폐한 마을. 까마귀의 불길한 울음소리가 들려오는 가운데, 비쩍 마른 마을사람들이 공허한 눈으로 이쪽을 바라본다.', + '인기척이 없는 산길. 오직 새가 지저귀는 소리만이 들려온다. 지나가는 사람을 습격하기에는 딱 좋은 기회일지도 모른다.', + '말라 비틀어진 해골이 굴러다니는 전쟁터. 살아있는 것은 풀 한 포기조차 보이지 않는다. 죽은 무사들의 원한에 찬 목소리가 들릴 것만 같다…….', + '기분 나쁜 분위기의 숲 속. 뭔가 정체를 알 수 없는 것이 숨어있는 것 같다.', + '폐허가 된 빈 절. 홀로 남겨진 본존 불상이 쥐가 바스락거리며 배회하는 본당 내부를 내려다보고 있다.', + '길가에 위치한 마을. 전쟁을 피해 도망쳐온 것으로 보이는 마을 사람, 장사할 물건을 찾는 상인, 날카로운 눈매의 무사 등이 왁자지껄한 거리를 걷고 있다.', + '성의 천수각 꼭대기. 세차게 불어오는 바람에 구름이 흘러간다.', + '저택의 천장 위. 이 아래에서는 지금 무슨 일이 벌어지고 있는가…….', + '전쟁터에 설치된 진영 안. 화톳불이 켜져 있고, 무사들이 술잔치를 벌이고 있다.', + '싸움이 한창인 전쟁터. 말 위에 올라탄 갑옷 차림의 무사가 전장을 달린다. 어느 진영이 승자가 될 것인가.', + ] + ), + 'GAST' => DiceTable::Table.new( + '학교 장면 표', + '2D6', + [ + '맑은 기운이 감도는 숲 속. 새가 지저귀는 소리와 나무 사이로 산들 바람이 부는 소리가 들려온다.', + '학교 화장실. ……왠지 조금 무섭다.', + '아무도 없는 체육관. 농구공이 데굴데굴 굴러다닌다.', + '교사 옥상. 한차례 바람이 불어 옷자락이 휘날린다.', + '교정. 체육복 차림의 학생들이 달리고 있다.', + '복도. 휴식시간인가? 아니면 방과후? 학생들이 즐겁게 떠들고 있다.', + '교내 식당의 카페테리아. 학생들이 여기저기에 자리를 잡고 담소를 나누고 있다.', + '조용한 수업 중의 한 때. 하지만 인술을 써서 일반 학생들 몰래 대화를 나누는 닌자들도 있다.', + '교사와 교사를 연결하는 구름다리 복도. 당신 외에는 아무도 없는 것 같지만……', + '특별교실. 음악실이나 이과실에 있는 건 왠지 즐겁단 말이지.', + '수영장. 수면이 잔잔하게 흔들리고 있다.', + ] + ), + 'KYST' => DiceTable::Table.new( + '교토 장면 표', + '2D6', + [ + '밤의 거리 풍경. 신사와 사찰은 조명으로 장식되어 있고, 시끌벅적한 술꾼들이 거리를 메우고 있다. 낮과는 또 다른 풍경이 펼쳐져 있다.', + '교토 역 빌딩. 그 옥상은 교토 시에서 가장 높고, 주변을 한눈에 내려다볼 수 있다.', + '여관에서 잠시 휴식을 취하려 했는데, 잡다한 이야기가 꽃피었다.', + '가모가와 강 주변을 걷고 있다. 커플들이 균등한 간격을 두고 앉아 있는 것이 흥미롭다.', + '교토에는 어디에나 기념품 가게가 있네. 그럼, 그 녀석에게 무엇을 사줘야 할까……?', + '「신사불각 장면표(JBST)」를 굴린다.', + '신쿄고쿠(新京極)에서 쇼핑을 즐기다. 아케이드에는 오래되거나 새로 세워진 다양한 상점들이 줄지어 서 있다.', + '근처에 대학이 있는 걸까? 저렴한 정식집, 중고서점, 게임센터 등이 줄지어 있는 대학가에 서있다. 교토에는 대학이 많군.', + '조용한 대나무 숲. 차분한 분위기가 감돌고 있다.', + '기온(祇園). 가끔 조용히 걷는 마이코와 마주친다. 운치있는 거리다.', + '대중에게 공개된 교토 어소(京都御所,교토부에 위치한 황궁) 안을 걷는다. 낮인데도 불구하고 인적이 별로 없어, 어딘가 조금 쓸쓸한 기분이 든다.', + ] + ), + 'JBST' => DiceTable::Table.new( + '신사불각 장면 표', + '2D6', + [ + '세이메이 신사. 이치조모도리바시(一条戻り橋)를 건너면 나오는 작은 신사. 음양사에 대한 동경을 품은 여성들의 모습이 눈에 띈다.', + '도지(東寺). 도지 진언종의 총본산. 밀교 특유의 날카롭고 엄숙한 기운이 감돈다.', + '헤이안 신궁. 커다란 도리이 아래로 시로무쿠 차림의 신부 행렬이 지나간다. 아마 결혼식인 듯하다.', + '지쇼지―― 통칭 은각사. 무로마치 후기의 히가시야마 문화를 대표하는 건축물. 킨쿄우치를 감싸는 정원엔 사색에 잠긴 관광객들의 모습이 보인다.', + '로쿠온지―― 통칭 금각사. 무로마치 전기의 기타야마 문화를 대표하는 건축물. 쿄우코치(鏡湖池)에 비친 거꾸로 된 금각에는 강력한 마(魔)가 봉인되어 있다고도 한다.', + '산주산겐도. 장엄한 본당에 늘어선 1001체의 천수관음상의 분위기가 압권이다.', + '기요미즈데라(청수사). 기요미즈 언덕을 지나 인왕문을 통과하면, 본당――「기요미즈의 무대」에 도달한다. 그곳에서 오토와노타키와 자안탑이 보인다.', + '야사카 신사. 기온상(祇園さん)이라는 이름으로 널리 알려진 활기찬 신사. 마이코들의 모습도 가끔 보인다.', + '후시미 이나리 대사. 전국 약 4만 개의 이나리 신사 중 본궁. 이나리 산을 향해 늘어선 약 1만 개의 도리이는 마치 이계로 이어지는 듯하다…….', + '아다시노넨부츠지. 무수한 석탑과 석불이 늘어선 풍경은 어딘가 황량한 분위기를 풍긴다…….', + '로쿠도친노지. 오노노 다카무라가 명계로 통했다고 전해지는 우물이 있는 절. 이 근처는 육도의 갈림길(六道の辻)로 불리며, 수많은 기묘한 전설이 남아 있다.', + ] + ), + 'AKST' => DiceTable::Table.new( + '가을 하늘에 눈이 흩날리면 장면 표', + '2D6', + [ + '장면 플레이어가 1D6을 굴려 3 이하가 나오면 손도끼를 든 소녀가, 4 이상이 나오면 동면 준비 중인 곰이 습격해온다. 장면에 등장한 캐릭터는 상대가 소녀라면 《도검술》, 곰이라면 《동물사역》으로 판정하며, 실패하면 접근전 대미지 1점을 입는다.', + '어두운 밤의 숲속. 달빛만이 주위를 비춘다. 닌자가 움직이기에는 딱 좋은 시간이다.', + '쾌청한 가을 하늘 아래, 양옆으로 황금빛 벼 이삭이 바람에 흔들리는 길. 수확을 앞둔 이 짧은 기간에만 볼 수 있는 귀중한 광경이다.', + '맛있어 보이는 과일이 탐스럽게 열매를 맺었다. 하나 정도 따 먹어도 혼나지는 않겠지.', + '산속으로 들어가는 숲길. 가파른 비탈길에서 단풍잎이 떠내려가는 잔잔한 시냇물을 내려다볼 수 있다.', + '마을의 광장. 산과 논밭을 한눈에 볼 수 있다. 파도 치듯이 흔들리는 벼 이삭의 융단. 산에는 단풍. 가을을 느낄 수 있는 시기다.', + '탁탁 터지는 소리. 아무래도 왕겨로 모닥불을 피우고 있는 모양이다. 몸 좀 녹이고 갈까.', + '신비한 분위기의 신사. 축제 준비가 진행 중이지만, 지금은 사람이 없는 것 같다.', + '비가 한바탕 쏟아질 듯한 오후. 묵직한 공기 속에서 금목서 향기가 물씬 풍긴다.', + '풀숲에 파묻힌, 다 무너져 가는 낡은 빈 집. 어딘가 서글픈 기분이 든다.', + '깡! 깡! 누군가가 깊은 밤중에 짚인형에 못을 박고 있다. 장면에 등장한 캐릭터는《주술》로 판정한다. 성공하면 누군가에게《저주》상태이상을 걸 수 있다. 실패하면《저주》상태이상을 받는다.', + ] + ), + 'CLST' => DiceTable::Table.new( ## 여기서부터. 오니혈 데이터 파트 대기중() + '재앙 장면 표', + '1D6', + [ + '장기적으로 독기에 노출된 당신의 몸이 요마로 변모한다.《봉인술》 판정에 실패한 장면 플레이어는「배경: 열성인자」와 「배경: 마인」을 획득한다.', + '요마가 당신에게 복종을 강요한다. 그 녀석의 손 안에는…. 《도주술》 판정에 실패한 장면 플레이어는「배경: 인질」과 병량환 1개를 획득한다.', + '요마 무리에 잡혔다! 혼자서 포위망을 뚫던 당신의 몸은 한계에 다다르려 하고 있었다. 《고문술》 판정에 실패한 장면 플레이어는「배경: 침식」과 신통환 1개를 획득한다.', + '전투의 격화는 당신의 몸을 갉아먹는다. 《의술》 판정에 실패한 장면 플레이어는 「배경: 병마」와 신통환 1개를 획득한다.', + '하급 요마를 묶은 보스가 새로운 힘을 손에 넣으려 한다. 시나리오 플레이어가 《색적술》 판정에 실패한 경우, 보스에 대해 「에니그마:『보이지 않는 오의』」가 공개 상태로 추가된다.', + '힘없는 자는 살아남을 수 없다. 보스가 새로운 힘을 손에 넣으려 하고 있다. 장면 플레이어가 《괴력》 판정에 실패한 경우, 보스에 대해 에니그마:『팔면육비』가 공개 상태로 추가된다.', + ] + ), + 'DXST' => DiceTable::Table.new( ## 시나리오「黄泉路の追憶(황천길의 추억/MASASHIGE 저) 수록 장면 표 + '데지마EX 장면 표', + '2D6', + [ + '미궁가. 언제부터 갇힌 걸까? 여러 겹으로 얽히고 굽이진 길을 계속 걷는다. 이 장면의 등장인물은《기억술》로 판정해야 한다. 성공하면, 미궁 끝에서 임의의【닌자도구】1개를 입수한다. 실패하면 상태이상《행방불명》을 받는다.', + '환영성. 찾아온 자의 과거와 미래 풍경을 보여주는 곳. 이 장면의 등장인물은 《의지》로 판정한다. 성공하면, 자신이 가진 【감정】을 임의의 다른 내용으로 변경할 수 있다.', + '죽은 자들의 행진. 억울하게 죽은 이들이 동료를 찾아 방황한다. 이 장면의 등장인물은 《사령술》로 판정을 해야 한다. 실패하면 무작위로 상태이상 1개를 받는다.', + '슬럼가. 겨우 살아남은 사람들이 서로 어깨를 맞대고 살아간다. 이곳이라면 간신히 안심할 수 있을지도 모른다…….', + '낙서투성이 호텔. 주변에는 피부를 드러낸 남자와 여자들이 요염한 분위기를 풍기며 줄지어 서 있다.', + '앞을 가로막는 요마의 무리. 다른 길은 없다. 정면 돌진하는 것 외에는… 재앙 장면표(CLST)를 굴린다.', + '더러운 뒷골목. 거대한 검은 개가 무언가를 탐욕스럽게 뜯어먹고 있다. 당신의 기척을 느낀 검은 개는 떠나지만, 그 자리에 남겨진 것은…….', + '어두운 술집. 바텐더는 말없이 잔을 닦고 있다. 당신 외에 손님의 기척은 없지만…….', + '땅을 뒤덮은 수많은 잔해. 그 틈새로 암흑의 독기가 피어오른다. 이 장면의 등장인물은《생존술》로 판정해야 한다. 실패하면, 임의의【생명력】1점을 잃는다.', + '열기 가득한 시장. 무기와 약물 등을 파는 듯하다. 상인들 중에는 외지인도 있다. 이 장면의 등장인물은《경제력》로 판정할 수 있다. 성공하면 임의의【닌자도구】1개를 입수한다.', + '눈앞에 외지인이 나타난다. 외지인은 당신에게 관심을 보이며 덤벼든다. 이 장면의 등장인물은《도검술》로 판정해야 한다. 성공하면 외지인을 쓰러뜨리고 임의의【닌자도구】1개를 입수한다. 실패하면 접근전 대미지 3점을 입는다.', + ] + ), + 'HC' => DiceTable::Table.new( + '중급닌자 시험 장면 표', + '2D6', + [ + '깊은 어둠이 주위를 뒤덮는다. 몇 번째인가 찾아온 밤. 이 시험은 언제까지 계속될까? 이 장면에 등장한 캐릭터는《생존술》로 판정한다. 실패하면 집단전 대미지 1점을 입는다.', + '산의 냉기가 몸을 좀먹는다. 이 장면에 등장한 캐릭터는《의상술》로 판정한다. 실패하면 사격전 대미지 1점을 입는다.', + '굶주린 짐승이 덤벼든다. 이 장면에 등장한 캐릭터는《동물사역》으로 판정한다. 실패하면 사격전 대미지 1점을 입는다.', + '상급닌자가 설치한 함정이 발동. 이 장면에 등장한 캐릭터는《함정술》로 판정한다. 실패하면 사격전 대미지 1점을 입는다.', + '짙은 안개가 꼈다. 시야가 극단적으로 악화되어 불안한 기분이 든다…….', + '맑은 기운이 감도는 숲 속. 새가 지저귀는 소리와 산들바람이 나무를 스치는 소리가 들려온다.', + '낡은 오두막을 발견한다. 몇 년이나 사용하지 않은 것 같은데…….', + '산의 날씨는 변덕스럽다. 폭풍이 몰려온다. 이후, 전투가 발생했을 때 전장 표를 사용하지 않으면 그 전장은「평지」가 아니라「악천후」로 간주한다.', + '유달리 높은 산등성이에 도달했따. 이 장면에 등장한 캐릭터는《등반술》로 판정한다. 성공하면 임의의 캐릭터 1명의【거처】를 획득한다.', + '깊은 산속의 으슥한 골짜기 최심부에서 깨끗한 샘을 발견한다. 후우, 살 것 같네. 이 장면에 등장한 캐릭터는《의지》판정을 한다. 성공하면【생명력】을 1점 회복할 수 있다.', + '탈락한 다른 그룹 닌자의 시체를 발견한다. 이 녀석들에게는 이제 필요 없겠지. 아무거나 닌자도구 1개를 획득한다(뭘 획득할지 선언한다).', + ] + ), + 'HK' => DiceTable::Table.new( + '그림자 거리에서 장면 표', + '2D6', + [ + '주위에 피 냄새가 진동한다. 누군가가 싸운 흔적. 아니, 아직 싸움은 계속되고 있는 것인가?', + '이것은……꿈? 이미 지나간 과거. 하지만 그것을 잊을 수는 없다.', + '눈앞에 펼쳐진 거리의 풍경을 바라본다. 여기라면 한 눈에 거리를 내려다볼 수 있지만…….', + '세계의 끝을 연상케 하는 어둠. 어둠 속에서 당신들은 은밀하게 속삭인다.', + '죽은 자들의 행진. 원통한 죽음을 맞이한 이들이 동료를 찾아 헤매고 있다. 이 장면의 등장 인물은《사령술》로 판정해야 한다. 실패하면 무작위로 상태이상 한 가지에 걸린다.', + '줄지어 늘어선 폐허. 그 그림자에서 인간인지 괴물인지 모를 그림자가 당신의 상태를 살피고 있다.', + '지면을 뒤덮은 기와와 자갈. 그 틈새에서 암흑의 독기가 피어오른다. 이 장면의 등장인물은《생존술》로 판정해야 한다. 실패하면 임의의【생명력】1점을 잃는다.', + '세찬 비가 내린다. 사람들은 비를 피할 곳을 찾아 황급히 달려가고 있다.', + '강한 바람이 휘몰아친다. 머리카락과 옷이 크게 휘날린다. 무언가 일어날 듯한 예감…….', + '주정뱅이의 노성. 호객꾼들의 외침. 여자들의 교성. 평소와 다를 것이 없는 번화가의 모습이지만…….', + '태양의 미소가 당신을 감싼다. 그림자 속에서 살아가는 이들에게 그 미소는 너무나 눈부시다.', + ] + ), + 'HLST' => DiceTable::Table.new( ## 시나리오 Kill Doctor Hasuba!(MASASHIGE 저) 수록 + '하스바 개발실 장면 표', + '2D6', + [ + '이번 주의 껌뻑죽는 하스바 개발실. 1D6을 굴린다. 홀수가 나오면 임의의【닌자도구】1개를 입수한다. 짝수가 나오면 임의의【닌자도구】1개를 입수하지만, 사격전 대미지 1점을 입는다.', + '전송 장치다! 《기기술》 판정. 실패하면 어딘가로 날려져 상태이상《행방불명》 을 받는다. 성공하면 원하는 장소로 도착할 수 있다. 임의의 【거점】을 하나 입수한다.', + '개조실. 성능 조정 중이던 하급 닌자 전투원들이 발광하며 달려든다.《괴뢰술》 판정. 실패하면 집단전 대미지 1점을 받는다. 성공하면【거점】을 가진 다른 캐릭터에게 집단전 대미지 1점을 대신 줄 수 있다.', + '엘리베이터. 그런데 이 녀석은 위아래뿐 아니라 사방팔방으로 움직인다.목적지 버튼은 없다. 과연 이 상자는 어디로 향하는 걸까.', + '끝없이 이어진 복도. 불길할 정도로 고요하다. 그러나 사방에서 달라붙는 듯한 적의를 느낀다.', + '거대한 유리 원통들이 줄지어 선 방. 안에는 각종 인간들이 수수께끼의 액체 속에 떠 있다. 물론 중요한 부분은 빛이 반사되어 전혀 보이지 않는다. 이건… 설마……!? 【배양 플랜트 장면 표(PLST)】를 굴린다.', + '정신 사납게 번쩍이는 LED 컴퓨터 룸. 벽을 가득 채운 디스플레이가 쉴 새 없이 반짝인다. 하스바가 자랑하는 슈퍼컴퓨터는 성능과 달리 기묘하게 구식이다.', + '사령실. 드디어 Dr.하스바를 몰아붙였다! 울며 도게하는 Dr. 하스바……의 목이 용수철처럼 튀어나와 대폭발. 대역(카게무샤)이었다! 이 장면 동안 펌블치가 2만큼 상승한다.', + '하스바의 로봇 병기들이 가득 늘어선 방. 만약 이것들이 기동하기라도 한다면…… 《잠복술》 판정. 실패하면 로봇 병기에 들켜 사격전 대미지 1점을 받는다.', + '자폭 장치가 있는 중추 룸. 《불의 술》 판정. 성공하면 자폭시킬 수 있다. 자폭시킨 경우 Dr.하스바에게 근접전 대미지 2점을 줄 수 있다.', + '마인드컨트롤 장치가 놓인 방. 당신은 이 장면에서 GM이 지정하는 행동에 반드시 따라야 한다.', + ] + ), + 'HM' => DiceTable::Table.new( + '밀실 장면 표', + '2D6', + [ + '휴우……. 저 녀석들과 함께 있으면 긴장되어서 숨이 막힌다. 화장실에 있을 때만큼은 그나마 마음이 좀 놓이는군.', + '깜빡, 깜빡깜빡깜빡……. 전등이 깜빡인다. 계속 어두침침한 방에 있었더니 시간 감각이 마비되고 있다. 대체 지금 몇 시야?', + '쨍그랑! 누군가가 식기를 떨어뜨려 깨뜨린 모양이다. 떨어뜨린 녀석은 주눅드는 기색도 없이 이쪽을 보며 어깨를 으쓱한다.', + '누군가가 켠 TV. 시시하게 짝이 없는 예능 프로그램이 방송된다. 조용한 방에 작위적인 웃음소리가 허망하게 울려 퍼진다.', + '에어컨이 고장났는지 묘하게 덥다. 땀이 흥건하다…….', + '똑, 똑, 똑……. 조용한 실내에 수도에서 물이 떨어지는 소리가 들린다. 아까 제대로 잠갔는데?', + '담배 연기 때문에 눈이 쓰라리다. 폐쇄된 방에서 담배를 피니 공기가 최악이다.', + '바닥에 흩어진 서류 중에서 한 장의 사진을 발견한다. 이 방의 주인과 그 연인으로 보이는 인물이 사이좋게 찍혀 있는데…….', + '누군가가 분풀이를 하듯이 벽을 친다. 그런다고 상황이 나아지는 것도 아닐 텐데.', + '침대에 드러눕는다. 젠장! 대체 언제 여기에서 나갈 수 있는 거야!', + '벽의 얼룩을 멍하니 바라봤더니, 그것이 천천히 사람의 얼굴 모양이 되어 히죽 웃었다. ……환각인가.', + ] + ), + 'HO' => DiceTable::Table.new( + '병원 장면 표', + '2D6', + [ + '수수께끼의 입원 환자. 휠체어에 앉은 소녀가 당신을 가만히 바라보고 있다.', + '응급실 입구. 사이렌 소리에 이어 들것에 실린 응급 환자가 들어왔다.', + '병원 옥상. 거대한 병원 부지를 한눈에 내려다 볼 수 있다.', + '진찰실. 책상과 청결한 침대가 설치된 생동감 없는 방. 책상 위에는 컴퓨터와 몇 가지 기구가 놓여 있다.', + '병원 복도. 환자의 모습은 보이지 않고, 쥐 죽은 듯 조용하다.', + '면회용 로비는 입원 환자와 문병을 하러 온 면회객으로 북적거린다. 하지만 그들 사이에 섞여 묘한 기척이 느껴지는데…….', + '병실. 독한 고독약 냄새에 섞여 송장의 악취가 감돌고 있다.', + '기묘한 속삭임.「도와 줘……」그런 호소가 귓가에 들린 것 같았는데……?', + '간호사 대기실. 간호사 몇 명이 분주하게 업무를 소화하고 있다.', + '안뜰. 어딘가에서 비명이 들린 것 같은 기분이 드는데……?', + '영안실. 문이 죽 늘어선 긴 복도에는 지하 특유의 탁한 공기가 감돌고 있다. 왠지 기분이 나쁘다.', + ] + ), + 'HR' => DiceTable::Table.new( + '런던 장면 표', + '2D6', + [ + '피 냄새가 주변에 가득하다. 누군가가 싸운 흔적. 아니, 아직 싸움은 계속되고 있는 것인가?', + '이것은…… 꿈? 이미 지나간 과거. 하지만 그것을 잊을 수는 없다.', + '눈앞에 펼쳐진 거리의 풍경을 바라본다. 여기라면 한 눈에 거리를 내려다볼 수 있지만…….', + '세계의 끝을 연상케 하는 어둠. 어둠 속에서 당신들은 은밀하게 속삭인다.', + '고풍스러운 분위기의 역사 있는 거리를 걷는다. 저 건물 본 적이 있는 것 같은데…….', + '안개 속에서 검은 그림자가 날아다닌다. 녀석들인가?', + '짙은 안개가 거리를 뒤덮고 있다. 안개 너머에는 검은 그림자가…….', + '세찬 비가 내린다. 사람들은 비를 피할 곳을 찾아 황급히 달려가고 있다.', + '강한 바람이 휘몰아친다. 머리카락과 옷이 크게 휘날린다. 무언가가 일어날 듯한 예감…….', + '어딘가에서 기묘한 노래가 울려 퍼진다. 그것은 마치 사악한 신에게 바치는 기도처럼 들렸다.', + '무참하고 모독적인 시체. 회생자의 표정은 고통으로 일그러졌고, 팔다리에는 누군가에게 뜯어먹힌 흔적이 있다.', + ] + ), + 'HS' => DiceTable::Table.new( + '최면 장면 표', + '1D6', + [ + '당신은 편안한 침대 속에서 연인의 온기를 느끼며 졸고 있다. 연인은「슬슬 일어날 시간」이라며 침대에서 나간다. 눈을 떠 보니 그 자리에는 알몸의 내비 캐릭터가 있었다. 그리고 내비 캐릭터는 당신에게 상냥하게 입맞춤을 해줬다. 부드러운 감촉이 당신의 기억을 깨운다.', + '당신은 홀로 시체를 처리하고 있다. 매우 두렵고, 매우 가증스러웠던 내비 캐릭터를 죽인 것이다. 내비 캐릭터의 공허한 눈동자를 내려다보며 당신은 상쾌한 기분을 느꼈다. 그리고 그 시체의 손바닥에 뭔가가 적혀 있는 것을 알아차렸다.', + '당신은 왠지 TV 쇼에 등장했다. 검은 선글라스를 쓴 사회자와 즐겁게 수다를 떨다가, 친구를 소개해달라는 요청과 함께 전화를 건네받았다. 낯익은 번호로 전화를 걸어 보니 수화기 너머에서 내비 캐릭터의 목소리가 들렸다. 목소리는 당신에게 이렇게 속삭인다…….', + '당신은 어느새 아이가 되어 좋아하는 애니메이션을 보고 있다. 정신 없이 애니메이션을 보고 있는데, 내비 캐릭터가 애니메이션의 등장인물로 등장했다. 내비 캐릭터는 화면에서 빠져나와 당신을 애니메이션의 세계로 끌고 간다. 그리고 당신은 세계의 진실을 알아차리고 말았다!', + '당신은 레스토랑에서 허기진 배를 부여잡고 있다. 그때, 급사 차림의 내비 캐릭터가 식사를 가져왔다. 메인디쉬의 은제 뚜껑을 열자 거기에는 당신이 매우 좋아하는 요리가 있었다. 식욕을 돋우는 향기가 풍겨오고, 당신은 중대한 사실을 떠올린다.', + '당신은 방대한 수의 책꽂이가 줄줄이 서 있는, 아무도 없는 도서관 안을 걷고 있다. 별 생각 없이 책 한권을 책꽂이에서 뽑아들자, 그 틈 너머로 내비 캐릭터의 얼굴이 보인다.「네가 바라는 것은 그 책의 14페이지에 적혀 있어.」그 말에 따라 머뭇거리며 14페이지를 펼쳐 보니…….', + ] + ), + 'HT' => DiceTable::Table.new( + '멸망의 탑 장면 표', + '2D6', + [ + '주위에 피 냄새가 진동한다. 누군가가 싸운 흔적. 아니, 아직 싸움은 계속되고 있는 것인가?', + '이것은……꿈? 이미 지나간 과거. 하지만 그것을 잊을 수는 없다', + '눈앞에 펼쳐진 거리의 풍경을 바라본다. 여기라면 한 눈에 거리를 내려다볼 수 있지만……', + '세계의 끝을 연상케 하는 어둠. 어둠 속에서 당신들은 은밀하게 속삭인다.', + '평화로운 시간이 흘러간다. 그림자의 세계를 잊어버릴 것만 같다.', + '엄청난 기세의 업화. 이 장면에 등장한 이는『기술』분야에서 무작위로 특기 하나를 선택해서 판정한다. 실패하면 사격전 대미지 1점을 입는다.', + '엄청나게 혼잡하고 떠들썩하다. 그림자의 세계를 모르는 순진한 이들이 자기자랑이며 잡담을 나누는 소리로 시끌벅적하다.', + '세찬 비가 내린다. 사람들은 비를 피할 곳을 찾아 황급히 달려가고 있다.', + '강한 바람이 휘몰아친다. 머리카락과 옷이 크게 휘날린다. 무언가 일어날 듯한 예감…….', + '엄청난 기세의 업화. 이 장면에 등장한 이는『기술』분야에서 무작위로 특기 하나를 선택해서 판정한다. 실패하면 사격전 대미지 1점을 입는다.', + '태양의 미소가 당신을 감싼다. 그림자 속에서 살아가는 이들에게 그 미소는 너무나 눈부시다.', + ] + ), + 'HY' => DiceTable::Table.new( + '야행 열차 장면 표', + '2D6', + [ + '차 안의 조명이 모조리 꺼진다. 정전인가? 아니면……. 모든 것이 어둠으로 뒤덮인다.', + '아무래도 이 차량은 흡연석인 모양이다. 뭉게뭉게 피어오른 연기가 자욱하다. 하지만 여러분 말고 다른 손님의 모습은 보이지 않는데……?', + '기분 전환을 위해 식당차로 이동한다. 그곳에는「해체업자」라고 이름을 댄 그 여성이 있었다. 당신을 향해 정숙한 태도로 미소를 짓는다.', + '헉!? 꿈인가? 어느새 잠들었던 모양이다. 뭔가 악몽을 꾼 것 같은데…….', + '창 너머로 통과하는 역의 플랫폼이 보인다. 하지만 그 역의 이름을 도저히 읽을 수 없다. 어떻게 봐도 일본어로는 보이지 않았는데…….', + '덜컹, 덜컹, 덜컹……. 노선을 달리는 소리를 멍하니 듣고 있다. 도대체 이 열차는 어디로 가고 있는 걸까?', + '차 안을 비추는 백열등에 날벌레가 모여들고, 마치 타이밍을 맞춘 것처럼 빛이 깜빡인다.', + '해골처럼 빼빼 마른 차장이 찾아온다. 당신의 티켓을 확인하더니 씨익, 하고 사악한 미소를 지으며 떠났다.', + '일등석은 칸막이가 설치되어 있는 모양이다. 칸막이 안에서는 부모 자식이 즐겁게 이야기를 나누는 소리가 들려오는데……?', + '「도시락이랑 차가 있어요…….」차내 판매원 소녀가 찾아온다. 하지만 그녀가 파는 음식이나 음료는 생물의 내장으로 보이는 기관이나 구불텅구불텅 꿈틀거리는 촉수, 이상한 털뭉치 같은 기묘한 것들뿐.《경제력》판정에 성공하면 임의의「닌자도구」1개를 구매할 수 있다.', + '차량 끝부분을 확인하기 위해 계속해서 문을 통과하는데, 아무리 가도 가장 앞칸(가장 뒷칸?)에 도달할 수 없다. 지금 도대체 몇 번째 칸에 있는 거지?', + ] + ), + 'NTST' => DiceTable::Table.new( ## 2011년 작성 5인용 시나리오「夏の終わり(여름의 끝/MASASHIGE 저)」수록 장면표. 차후「가을 하늘에 눈이 흩날리면」으로 개정됨. 현재 시나리오 원문은 삭제됨. + '여름의 끝 장면 표', + '2D6', + [ + '어디에 숨어있던건지, 나타를 든 소녀가 이쪽으로 다가온다.「같이 놀자아아.」장면에 등장한 캐릭터는 《도검술》 판정을 한다. 실패하면 근접전 대미지 1점을 입는다.', + '어두운 여름밤의 숲. 달빛만이 주위를 비춘다. 닌자가 움직이기에는 더없이 좋은 시간이다.', + '울창하게 우거진 숲 속. 잠시라도 좋다. 사명을 잊고 시원함을 즐겨볼까.', + '사람이 거의 드나들지 않는 마을 회관. 간신히 돌아가는 선풍기가 덜컥거리지만, 더위는 좀처럼 가시지 않는다.', + '산비탈에 늘어선 묘비. 다져진 흙길과 무덤 앞에 놓인 작은 꽃다발. 이런 산중에도 매일같이 찾아오는 사람이 있는 걸까.', + '마을 광장. 논밭이 한눈에 내려다보인다. 여름의 풍물, 매미 울음소리가 시끄럽게 울려 퍼진다.', + '맑디맑은 개울. 차가운 물보라가 피부에 닿아 상쾌하다. 숲 속의 숨겨진 명소다.', + '신비로운 신사. 여름 끝자락을 장식하는 축제를 준비한 흔적이 있지만, 지금은 아무도 보이지 않는다.', + '사람 없는 폐가들이 줄지어 서 있다. 음산한 기운이 감돌고, 그림자 속 어딘가에 숨어 있는 기척이 느껴진다.', + '마을이 한 눈에 보이는 장소. 여기서 내려다보면, 이 마을 따위는 아주 작게 보인다.', + '깡, 깡…… 한밤중, 축시(새벽1~3시)에 누군가 저주를 거는 망치질 소리가 들려온다. 이 장면에 등장한 캐릭터는《주술》판정을 한다. 성공하면 다른 캐릭터에게 상태이상《저주》를 걸 수 있고, 실패하면 자신이 상태이상《저주》를 받는다.', + ] + ), + 'PLST' => DiceTable::Table.new( ## 시나리오 Kill Doctor Hasuba!(MASASHIGE 저) 수록 + '배양 플랜트 장면 표', + '1D6', + [ + '배양조. 당신과 똑 닮은 인간이 수수께끼의 액체에 잠겨 있다. 당신은 정말 진짜 당신일까? 《기억술》로 판정한다. 실패하면 상태이상 《망각》을 받는다.', + '거대한 유리관 안에 모독적인 생물이 꿈틀거리는 실험실.《의지》로 판정한다. 실패하면 상태이상《마비》를 받는다.', + '시험관에 떠 있는 Dr. 하스바의 클론 뇌가 대량으로 있는 클론 시설.', + '각 유파의 수장이 떠다니는 시험관. 무작위로 특기 하나를 선택해서 판정한다. 그 특기가 당신의 전문 분야일 경우, 판정에 성공하면「병량환」을 1개 획득한다. 전문 분야가 아닌 경우, 판정에 실패하면 근접전 대미지 1점을 입는다.', + '무인 실험실. 중앙에는 파괴된 배양조가 있고, 사람인지 짐승인지 알 수 없는 젖은 발자국이 문 쪽으로 이어져 있다.', + '미소년 개조 플랜트. 이 장면에 등장한 캐릭터는《변장술》로 판정한다. 판정에 성공하면 미소년이 될 수 있다.', + ] + ), + ## 이하 정인기 + 'TMT' => DiceTable::Table.new( + '마도 도쿄 장면 표', + '2D6', + [ + '오다이바. 임해 부도심. TV 방송국이나 전시장 등 특징적인 건물들이 모독적으로 개조되었다.', + '야스쿠니 신사. 도쿄 내부라고는 생각되지 않을 정도로 녹색 식물이 가득한 이 장소에는 요마의 모습도 보이지 않는다. 무슨 결계라도 있는 걸까?', + '도쿄 대학 혼고 캠퍼스. 학교의 문은 무수한 책상을 쌓아 올린 바리케이드와 가시 철사로 막혀 있다.', + '야마노테선의 노선 위. 지금은 이곳을 달리는 전차도 존재하지 않는다. 그 자리에서 꿈실거리는 무언가는 있는 것 같지만.', + '카스미가세키. 행정 기관이 모여 있는 일본의 중추. 하지만 그곳은 이미 기능을 잃고, 요마들이 제멋대로 날뛰도록 놔두고 있다.', + '시부야 역전. 금이 가서 아무것도 비치지 않는 대형 야외 전광판에서 지지직, 하고 노이즈가 떠오른다.', + '밤의 신주쿠 가부키쵸. 동양 제일의 번화가인 이 장소는 마의 도시로 변화한 지금조차도 활기가 넘친다. 단, 길을 오가는 이들은 인간이 아닌 모양이지만.', + '신주쿠 도청. 마천루가 줄지어 서 있는 빌딩가 아래로 닌자들이 요마와 싸우는 광경이 보인다.', + '칸다 고서점가. 무수한 고서점이 죽 늘어서 있다. 가게에 진열된 책 중에서는 마서(魔書)라고 불리는 것들도 다수 존재하고 있는 모양이다.', + '마치다 역전. 도심에서 떨어진 이곳이라면 도쿄 바깥과 통하는 곳이 있을지도 모른다.', + '전파탑 위. 이곳이라면 변모해버린 마도 도쿄의 모습을 한눈에 내려다볼 수 있다. 하지만 그것은 요마들에게 들키기도 쉽다는 의미이다.', + ] + ), + 'TMG' => DiceTable::Table.new( + '마도 학원 장면 표', + '2D6', + [ + '마기가 감도는 숲속. 때때로 노성이나 외침이 들려오지만, 그조차도 곧 조용해진다.', + '학교 화장실. ……각 칸에서 몇 개나 되는 손이 뻗어 나와 있다.', + '아무도 없는 체육관. 데굴데굴 굴러다니는 저것은 사람의 머리인가?', + '교사 옥상. 꺼림칙한 해골들이 늘어서서 입으로 안개 형태의 무언가를 토해내고 있다.', + '교정. 허둥거리며 도망칠 곳을 찾는 학생들이 보인다.', + '복도. 사람들이 만든 바리케이드를 느릿느릿 움직이는 요마가 무너뜨리려고 한다.', + '학교 식당의 카페테리아. 쏟아진 음식들이 흩어져 있다.', + '조용한 수업 중의 풍경은 이미 찾아볼 수 없다. 교실에 남아 있는 사람들의 얼굴에는 초조감이나 불안감이 가득하다.', + '교사와 교사를 연결하는 구름다리. 당신 이외의 기척은 느껴지지 않지만…… 방심은 금물이다.', + '특별교실. 음악실이나 이과실에서 농성 중인 사람들은 모두 어깨를 맞댄 채 떨고 있다.', + '수영장. 잔잔하게 흔들리는 수면 아래로 꿈틀거리는 무언가의 모습이 보인다.', + ] + ), + 'TC' => DiceTable::Table.new( + '카지노 장면 표', + '2D6', + [ + '카지노의 화장실. 창문으로 도망치는 녀석도 있다. 여기를 감시하지 않을 수가 없지.', + '대기실. 운영을 위해 검은 양복, 요리사 등등의 스태프가 대기하고 있다. 깔끔함과는 거리가 먼 음울한 분위기.', + '항구. 휘황찬찬한 빛과 소리를 등진 채, 화려함과는 정반대의 존재인 여러분이 서 있다.', + 'VIP룸. 권력자, 자산가들이 밀담을 하는 가운데 여러분 또한 숨어 있다.', + '카지노 내부. 인간의 욕망을 부추기는 공간 속에서 각자의 의도라는 이름의 그림자가 질주한다.', + '카지노와 병설된 조용한 바. 촌스럽게 이런 곳에서 분위기를 깨는 짓을 하지는 않겠지?', + '카지노에 병설된 성매매업소. 고혹적인 여성이 여러분을 유혹한다.', + '바카라 테이블. 카지노에서 가장 많은 돈이 움직인다는 갬블. 스퀴즈(숫자를 가리며 카드의 무늬를 확인하는 행위)를 하는 손에 땀이 맺히는,노름판.', + '슬롯 머신. 뇌를 마비시키는 호화찬란한 소리가 울려 퍼진다.', + '휴양 시설. 마사지, 피부 미용, 사우나 등을 즐길 수 있는 시설이 모여 있다.', + '잭팟! 인생을 바꿀 수 있는 행운의 일격. 선망, 갈망, 온갖 질투의 시선이 당신에게 모인다. 당신은 칩을 1개 획득한다.', + ] + ), + 'TGS' => DiceTable::Table.new( + '달밤에 피는 죽음 장면 표', + '2D6', + [ + '누군가의 강렬한 원한과 악의를 느낀다. 몸을 뜨겁게 달군 인두로 지지는 듯한 격통이 덮친다. 《주술》로 판정한다. 실패하면 접근전 대미지 1점을 입고, 「꽃의 낙인」을 하나 새긴다.', + '눈앞에 일곱 빛깔로 빛나는 낙원 같은 광경이 펼쳐져 있다. 머릿속에서 경종이 울리지만, 왠지 모르게 무심코 그쪽으로 다가가고 만다. 《환술》로 판정한다. 실패하면 사격전 대미지 1점을 입고, 「꽃의 낙인」을 하나 새긴다.', + '어딘가에서 불가사의한 목소리가 들린다. 맑고 투명한 그 목소리에 모든 것을 맡기고 싶어진다…….《언령술》로 판정한다. 실패하면 「꽃의 낙인」을 하나 새긴다.', + '쏴아아, 하고 바람이 불며 나무들이 흔들리고, 나뭇잎들이 서로 스치며 바스락거린다. 마치 이쪽을 보며 소곤소곤 이야기를 나누고 있는 것 같다.', + '시선이 느껴진다. 돌아봐도 그 자리에는 한 송이 꽃이 있을 뿐이다.', + '한숨 돌리려고 들어간 건물에서 환약을 발견했다. 미안하지만 쓸 수 있는 것은 써야겠다.「병량환」을 1개 획득한다.', + '숨어 있던 누군가가 달빛 아래에서 모습을 드러낸다. 자신 이외의 PC를 한 명만 장면에 등장시킨다.', + '마을 사람을 만나 닌자도구를 건네받는다. 감사를 전하고자 고개를 들어보니, 그 자리에는 시체밖에 없었다. 「신통환」을 1개 획득한다.', + '닌자도구의 일종인 부적이 붙어 있는 것을 발견한다. 이 마을 전체를 사용해서 봉인이나 결계라도 치고 있었던 걸까? 하지만 상황이 이래서야 이미 의미가 없을 것이다. 「둔갑부」를 1개 획득한다.', + '조사 중에 문득 감실에 봉헌된 술에 눈길이 간다. 홀린 듯이 그것을 집어들고, 단숨에 들이킨다. 몸이 화끈거리면서 감미로운 향기가 콧속에서 도금이나마 빠져나간다. 「꽃의 낙인」이 하나 사라진다.', + '누군가가 손을 잡아당기는 기분이 든다. 그 감각에 따라 걸어가니 숨겨진 샛길을 발견했다. 이것은 마을 곳곳으로 통하는 비밀 통로……? 《지형활용》으로 판정한다. 성공하면 이 장면 직후에 추가로 장면을 하나 획득한다.', + ] + ), + 'TRM' => DiceTable::Table.new( + '로드 무비 장면 표', + '2D6', + [ + '조달한 차를 타고 거리를 벌린다. 라디오에서 전철 폭파 사고의 뉴스가 나온다. 목격자의 증언 속에서 PC들의 특징이 언급되고 있다…….', + '무슨 짓을 해도 인파를 피해다닐 수가 없다. 박쥐가 오면 곤란하다. 하다못해 변장을 하고 섞여들도록 하자.', + '무리를 한 탓인지 몸상태가 조금 안 좋다. 그 탓인지 사소한 일로도 짜증을 내버릴 것 같다.', + '사람들의 눈을 피해서 숲속으로 간다. 나무들이 흔들리는 소리, 벌레가 우는 소리가 들려온다.', + '어딘가에서 맛있는 냄새가 풍겨온다. 이쯤에서 잠깐 식사를 하는 것도 괜찮을지도…….', + '억수 같이 쏟아지는 비가 체온을 앗아간다. 쉴 수 있는 장소가 있으면 좋겠는데……. 이후, 메인 페이즈에 전투가 발생하면 그 전장이「악천후」가 된다.', + '하늘 위를 날아다니는 박쥐를 본 것 같다. 적의 습격에 주의해야지…….', + '어딘가에서 들려오는 음악. 들은 적이 있다. 그게 언제였더라…….', + '길이 두 갈래로 나뉜다. 자, 어디로 가야 할까……?', + '이것은…… 꿈? 이미 지나간 과거. 하지만 그것을 잊을 수는 없다.', + '향긋한 바다 냄새를 풍기는 바람이 분다. 바다가 보인다. 파도는 일정한 리듬으로 해안의 벼랑에 부딪쳐 새하얗게 사방으로 흩어진다.', + ] + ), + 'TMC' => DiceTable::Table.new( + '마스커레이드 캐슬 장면 표', + '2D6', + [ + '정원에는 주위와 조화를 이루도록 배치된 근사한 분수가 있다. 분수의 수로는 호수와 연결되어있는 모양이다.', + '지하 감옥에는 죄인도, 간수도 없다. 오랫동안 사용하지 않은 것 같다. 역사적인 가치가 있어서 남겨둔 것이리라.', + '근사한 장서들이 꽂혀 있는 넓은 응접실. 잘 차려입은 문화인들이 활발하게 의견을 주고받는다. 방에는 술 냄새가 감돌고 있다.', + '오락실 중앙에서는 당구나 포커를 즐길 수 있고, 구석에서는 바텐더가 손님들의 주문에 맞춰 칵테일을 만들고 있다.', + '대광장에서는 입식 파티가 상시 개최되고 있으며, 사람이 끊이는 일이 없다. 곳곳에서 유명인이나 정치가들의 모습이 보인다.', + '성 중앙. 이 성의 명물인 이중 나선계단이 있다. 올라가는 계단과 내려오는 계단, 두 계단이 서로 얽히는 형태가 되도록 빈틈없이 설계했다.', + '촛대를 든 하인들이 전등이 꺼진 복도를 왕래하고 있다. 성주의 취향인지 이 성에는 전기가 들어오지 않는 장소가 많다.', + '댄스 홀에서는 악단이 느긋한 곡조의 음악을 연주하고 있다. 사람들은 각자 댄스와 휴식을 반복하며 나름대로 즐기고 있는 모양이다.', + '바람이 상쾌한 발코니. 간단한 음식들이 준비되어 있고, 손님들이 담소를 나누며 식사를 즐기고 있다.', + '시계탑은 고풍스러운 구조로, 설치된 시계는 톱니바퀴와 나사로 만든 것이다. 하지만 놀라울 정도로 정확하게 시간을 나타낸다.', + '지붕 위는 매우 조용하다. 바로 아래의 시끌벅적한 소란이 거짓말 같다. 이런 곳에 올라오는 것은 시간이 남아 도는 닌자 정도다.', + ] + ), + 'TKG' => DiceTable::Table.new( + '학교 장면 표(흑성제)', + '2D6', + [ + '맑은 기운이 감도는 숲 속. 새가 지저귀는 소리와 나무 사이로 산들바람이 부는 소리가 들려온다.', + '학교 화장실. ……왠지 조금 무섭다.', + '체육관. 많은 관객들이 스테이지 위의 공연에 푹 빠져 있다. 그중에는 주위가 어두운 것을 틈타 비밀스럽게 대화를 나누는 이들도…….', + '교사 옥상. 한 차례 바람이 불어 옷자락이 휘날린다.', + '모의 점포가 여럿 출점한 교정. 누군가의 시선을 느끼고 돌아보니, 당신에게 말을 걸고 싶어서 기회를 엿보고 있는 학생의 모습이…….', + '복도. 휴식시간인가? 아니면 방과후? 학생들이 즐겁게 떠들고 있다.', + '교내 식당의 카페테리아. 소시지나 타코야키, 크레이프, 츄로스 등등 학생들이 직접 만든 음식을 다른 많은 학생들이 맛있게 먹고 있다.', + '조용한 수업 중의 한 때. 하지만 인술을 써서 일반 학생들 몰래 대화를 나누는 닌자들도 있다.', + '교실을 통쨰로 사용한 모의 점포들. 메이드 카페, 토깨비집 등등 교실마다 갖가지 전시물을 내놓아 모두들 흥겨워하고 있는 모양이다.', + '특별교실. 음악실이나 이과실은 왠지 즐겁단 말이지.', + '수영장. 수면이 잔잔하게 흔들리고 있다.', + ] + ), + 'TKH' => DiceTable::Table.new( + '연인과의 일상 장면 표', + '2D6', + [ + '아카리의 방에 찾아갔다. 그녀는 살며시 웃으며 당신을 반갑게 맞이해주었다.', + '사소한 일로 다투고 말았다. 한동안 서로 아무 말도 하지 않았는데, 아카리를 보니 어딘가 무안한 표정이었다.', + '아카리가 요리를 해줬다. 아카리의 요리 솜씨는 과연 어떨까? 궁금해하는 당신의 눈앞에서 냄비 뚜껑이 열리며 후끈한 김이 올라왔다.', + '영화관에 갔다. 호러물, 연애물, 액션물. 조명이 꺼지고, 영화를 보는 두 사람의 손이 살짝 닿는다.', + '도서관에 갔다. 아카리는 오자마자 묵묵히 페이지를 넘긴다. 어떤 책을 읽고 있을까?', + '삼림욕을 하러 왔다. 나무 사이로 비치는 햇살에 아카리의 뺨 위로 그림자가 진다.', + '번화가에 갔다. 즐거운 일, 맛있는 것들이 가득한 이 장소에서 그녀는 평소보다 더 들뜬 모습이었다.', + '유원지에 갔다. 이런저런 놀이기구를 찾아 돌아다니며 당신의 손을 잡아당기는 아카리는 평소보다 더 순수해보였다.', + '아카리와 함께 카페에서 차를 마신다. 눈앞에 앉아 있는 그녀의 짖궃은 미소에 훈훈한 기분이 든다.', + '아카리와 함께 게임을 한다. 아카리가 당신에게 대전 게임을 하자고 제안했다. 아무래도 필승의 비책이 있는 모양인데?', + '당신의 방에 왔다. 당신이 닌자라는 것을 들키지 않도록 관련된 흔적을 숨긴다. 덤으로 그녀에게 보여주고 싶지 않은 것들도.', + ] + ), + ## 以下流派ブック 이하 유파북 (오토기 유파북) + 'OTFK' => DiceTable::Table.new( + '불량 고교 장면 표', + '2D6', + [ + '누군가가 교실에 고양이를 데리고 왔다! 우는 아이도 그친다는 C반의 학생들조차도 고양이의 사랑스러운 표정에는 꼼짝도 하지 못한다.', + '교정 구석에 있는 체육 창고는 무슨 일을 하든 안성맞춤인 장소다. 누군가를 불러내서 추궁하든, 닌자끼리 비밀 이야기에 몰두하든.', + '밤의 창고거리. 이미 지나가는 사람은 아무도 없고, 조명이라고 해봐야 오렌지색으로 깜박이는 가로등뿐이다.', + '하교 시간의 교정. 불량 학생들을 보고 속닥이는 학생들의 모습이 힐끗힐끗 보인다. 교직원들조차 이쪽을 보고도 그냥 눈살을 찌푸리며 지나갈 뿐이다.', + '저녁의 교사 뒷편은 낮의 교실에서는 맛볼 수 없는 정적에 휩싸여있다. 축축한 콘크리트 너머로 들려오는 것은 까마귀 우는 소리, 그리고 연습 중인 축구부의 고함 소리 정도다.', + '무법 지대가 된 교실. 공놀이를 하는 학생부터 싸우기 시작하는 학생까지. 떠드는 소리가 하루 종일 그치지 않는다.', + '교실 앞 복도에 깨진 유리창이 흩어져 있다. 뻥 뚫린 창 밖에서 차가운 바람이 불어닥치고 있다.', + '통학로 옆에 있는 다리 아래. 전철이 다리 위를 지나갈 때마다 선로에서 요란한 소리가 울려 퍼진다.', + '점심 시간의 식당. 인파로 북적거리는 이곳만큼은 C반이고 다른 반이고 따질 일이 없다.', + '고교 근처에 있는 하천의 제방. 풀밭에 누워 구름을 올려다본다. 어딘가에서 들려오는 취주악의 연습 소리, 바람 소리와 함께 평화로운 시간이 흘러간다.', + '다른 학교 불량 학생들의 습격이다! 교정에 모인 녀석들은 못 박힌 야구방망이를 들고 C반 학생들을 내놓으라며 소란을 피우고 있다.' + ] + ), + }.freeze + register_prefix(RTT.prefixes.map { |k| "\\d*#{k}" }, TABLES.keys.map { |k| "\\d*#{k}" }, SCENE_TABLES.keys.map { |k| "\\d*#{k}" }, DEMON_SKILL_TABLES.keys.map { |k| "\\d*#{k}" }, DEMON_SKILL_TABLES_NEW.keys.map { |k| "\\d*#{k}" }) + end + end +end diff --git a/test/data/ShinobiGami_Korean.toml b/test/data/ShinobiGami_Korean.toml new file mode 100644 index 000000000..343740ce4 --- /dev/null +++ b/test/data/ShinobiGami_Korean.toml @@ -0,0 +1,1469 @@ +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=4" +output = "(2D6>=4) > 6[2,4] > 6 > 성공" +success = true +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=4" +output = "(2D6>=4) > 4[1,3] > 4 > 성공" +success = true +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=4" +output = "(2D6>=4) > 3[1,2] > 3 > 실패" +failure = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG" +output = "(SG@12#2) > 2[1,1] > 2 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG 펌블 직전" +output = "(SG@12#2) > 3[1,2] > 3" +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG 스페셜 직전" +output = "(SG@12#2) > 11[5,6] > 11" +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG" +output = "(SG@12#2) > 12[6,6] > 12 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG#3 펌블치 변경" +output = "(SG@12#3) > 3[1,2] > 3 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG@11 스페셜치 변경" +output = "(SG@11#2) > 11[5,6] > 11 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG@11#3" +output = "(SG@11#3) > 3[1,2] > 3 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG@11#3" +output = "(SG@11#3) > 11[5,6] > 11 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG@5#7 펌블 우선" +output = "(SG@5#7) > 5[1,4] > 5 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG+1 수정치가 펌블에 영향 없음" +output = "(SG+1@12#2) > 2[1,1]+1 > 3 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG-1 수정치가 스페셜에 영향 없음" +output = "(SG-1@12#2) > 12[6,6]-1 > 11 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG@11#3>=7" +output = "(SG@11#3>=7) > 6[3,3] > 6 > 실패" +failure = true +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SG@11#3>=7" +output = "(SG@11#3>=7) > 7[3,4] > 7 > 성공" +success = true +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "0SG>=7" +output = "" +rands = [] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "1SG>=7" +output = "" +rands = [] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2SG@11#3>=7" +output = "(2SG@11#3>=7) > 7[3,4] > 7 > 성공" +success = true +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "4SG+1>=7" +output = "(4SG+1@12#2>=7) > [2,3,4,5] > 9[4,5]+1 > 10 > 성공" +success = true +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 4 }, + { sides = 6, value = 3 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "4SG+1>=7" +output = "(4SG+1@12#2>=7) > [1,1,2,2] > 4[2,2]+1 > 5 > 실패" +failure = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "4SG+1>=7" +output = "(4SG+1@12#2>=7) > [1,1,1,1] > 2[1,1]+1 > 3 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "4SG+1>=7" +output = "(4SG+1@12#2>=7) > [1,1,6,6] > 12[6,6]+1 > 13 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(10) > 강한 바람이 휘몰아친다. 머리카락과 옷이 크게 휘날린다. 무언가 일어날 듯한 예감……." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(8) > 엄청나게 혼잡하고 떠들썩하다. 그림자의 세계를 모르는 순진한 이들이 자기자랑이며 잡담을 나누는 소리로 시끌벅적하다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(5) > 세계의 끝을 연상케 하는 어둠. 어둠 속에서 당신들은 은밀하게 속삭인다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(4) > 눈앞에 펼쳐진 거리의 풍경을 바라본다. 여기라면 한 눈에 거리를 내려다볼 수 있지만……." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(2) > 주위에 피 냄새가 진동한다. 누군가가 싸운 흔적. 아니, 아직 싸움은 계속되고 있는 것인가?" +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(7) > 맑은 기운이 감도는 숲 속. 새가 지저귀는 소리와 나무 사이로 산들바람이 부는 소리가 들려온다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ST" +output = "기본 장면 표(5) > 세계의 끝을 연상케 하는 어둠. 어둠 속에서 당신들은 은밀하게 속삭인다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(9) > 상점가를 걷는다. 인파에 섞여 이따금 불온한 기척이 느껴지는데……." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(8) > 낡은 극장. 조명은 꺼졌고, 당신들 외의 관객은 없는 것 같지만……." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(7) > 생동감이라고는 느껴지지 않는 오피스 빌딩. 그것은 마치 도시의 묘비같다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(2) > 샤워를 하고, 욕조에 지친 몸을 담근다. 때로는 힐링도 필요하다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(6) > 술 한 잔의 행복. 이 한잔을 위해서 산다. ……어째 항상 같은 소리를 하는 기분도 든다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(5) > 인기척이 없는 공원. 길고양이 한 마리가 멀리서 당신을 보고 있는 기분이 든다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(6) > 술 한 잔의 행복. 이 한잔을 위해서 산다. ……어째 항상 같은 소리를 하는 기분도 든다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CST" +output = "도시 장면 표(3) > 한적한 주택가. 시노비의 세계와는 무관한 일상이 펼쳐져 있는 것처럼 보이지만…… 그것은 착각일지도 모른다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(9) > 긴 복도 한복판. 이 저택은 너무 넓어서 미아가 될 것만 같다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(2) > 어딘지도 알 수 없는 어둠 속. 닌자들이 숨어들기에는 적합한 장소다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(4) > 아름다운 정원. 정성들여 키운 다양한 색깔의 꽃. 그리고 아름답게 다듬은 생울타리가 펼쳐져 있다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(5) > 당신은 계단에서 문득 발을 멈춘다. 누군가의 발소리가 들려오는 것 같다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(7) > 현관의 홀. 고풍스러운 벽시계가 시보를 울리는 가운데, 저택 주인의 초상화가 당신을 내려다보고 있다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(12) > 일족의 납골당이 있다. 냉기와 독기가 가득한 장소에 기묘한 외침이 들려온다. 멀리서 새가 지저귀는 소리인가? 아니면 죽은 자의 원한서린 목소리인가……?" +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MST" +output = "저택 장면 표(10) > 장난삼아 오락실에 들어왔다. 그곳에는 당구대, 다트판, 몇 패의 트럼프가 흩어져 있는 포커 테이블이 있다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(5) > 슬럼. 간신히 살아남은 사람들이 서로 의지하며 살아가고 있는 모양이다. 여기라면 조금은 안심할 수 있을지도……." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(8) > 지저분한 뒷골목. 검은색의 거대한 개가 무언가를 먹고 있다. 검은 개는 당신의 기척을 느끼고 그 자리를 떠나지만, 거기에 남아 있는 것은……." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(7) > 줄지어 서 있는 폐허. 그 그늘에서 사람도 괴물도 아닌 존재의 그림자가 당신을 엿보고 있다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(9) > 어두운 술집. 바텐더가 말없이 유리잔을 닦고 있다. 당신 말고는 손님의 기척은 느껴지지 않지만……." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(3) > 환영의 성. 방문한 자의 과거나 미래를 나타내는 풍경을 보여주는 장소. 이 장면의 등장인물은《의지》로 판정을 할 수 있다. 성공하면 자신이 가지고 있는【감정】을 원하는 내용으로 변경할 수 있다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(8) > 지저분한 뒷골목. 검은색의 거대한 개가 무언가를 먹고 있다. 검은 개는 당신의 기척을 느끼고 그 자리를 떠나지만, 거기에 남아 있는 것은……." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(6) > 낙서투성이의 호텔. 그 주위에는 피부를 노출한 남녀들이 교태를 부리며 모여 있다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DST" +output = "데지마 장면 표(4) > 죽은 자들의 행진. 한 맺힌 죽음을 맞이한 자들이 길동무를 찾아 방황하고 있다. 이 장면의 등장인물은《사령술》로 판정을 해야 한다. 실패하면 무작위로 정한 상태이상 하나에 걸린다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(6) > 위기일발! 동행을 죽음의 위기에서 구해냈다! ……여기도 방심할 수 없군." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(12) > 동행이 갑자기 눈물을 흘린다. ……도대체 무슨 일이지?" +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(7) > 동행이 행방불명된다. 그 녀석, 어디로 도망친 거야!" +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(3) > 촤악! 동행의 실수로 흠뻑 젖어버렸다. ……추워." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(8) > 와당탕! 아파라……. 발을 헛디딘 동행에게 휘말려서 같이 넘어지고 말았다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(7) > 동행이 행방불명된다. 그 녀석, 어디로 도망친 거야!" +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(10) > 「어딜 보고 다니는 거냐, 짜샤!」양아치들이 동행에게 시비를 걸고 있다. 으음~ 도와줘야 하나?" +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(12) > 동행이 갑자기 눈물을 흘린다. ……도대체 무슨 일이지?" +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TST" +output = "트러블 장면 표(8) > 와당탕! 아파라……. 발을 헛디딘 동행에게 휘말려서 같이 넘어지고 말았다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(6) > 쇼핑을 하고 돌아오는 길에 친구와 만난다. 방향이 같아서 잠시 함께 걷다보니 어느새 이야기꽃이 피었다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(5) > 후와와와와. 어느새 잠들어버렸다. ……어, 어라? 너, 언제부터 거기에 있었어!?" +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(8) > 다 함께 식탁에 둘러앉았다. 전골로 할까? 아니면 불고기? 오코노미야키도 괜찮겠네♪" +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(10) > 길고양이에게 먹이를 준다. 목을 가르릉거리는 고양이. 마음 놓고 당신에게 어리광을 부리는 모양새다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(9) > 어딘가에서 즐거운 노랫소리가 들려온다. ……어, 어라? 왜 네가 이런 곳에?" +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(6) > 쇼핑을 하고 돌아오는 길에 친구와 만난다. 방향이 같아서 잠시 함께 걷다보니 어느새 이야기꽃이 피었다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NST" +output = "일상 장면 표(6) > 쇼핑을 하고 돌아오는 길에 친구와 만난다. 방향이 같아서 잠시 함께 걷다보니 어느새 이야기꽃이 피었다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KST" +output = "회상 장면 표(9) > 무시무시한 일격! 하마터면 목숨을 잃을 뻔했다……. 하지만 그 기술은 아직도 간파하지 못했다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KST" +output = "회상 장면 표(6) > 그 녀석과의 소중한 추억을 떠올린다. 지켜야 했던 약속, 지키지 못한 약속." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KST" +output = "회상 장면 표(10) > 어린 시절의 기억. 사이 좋았던 그 아이. 그러고보면 그 아이는 어디로 가버린 걸까? 어쩌면……." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KST" +output = "회상 장면 표(5) > 눈앞에 쓰러진 시체. 지면에 피가 번지고 있다. 그것은, 내 탓이었을까……?" +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KST" +output = "회상 장면 표(11) > 「……윽!!」격렬한 말다툼. 최악의 형태로 헤어지고 말았다. 그렇게 될 줄 알았다면……." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KST" +output = "회상 장면 표(12) > 주머니 속의 부적을 움켜쥔다. 그 녀석에게 받은, 소중한 추억의 물건.「병량환」을 1개 획득한다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TKST" +output = "도쿄 장면 표(6) > 카스미가세키(霞が関). 이 장소에 모이는 정보는, 닌자에게도 가치 있는 내용이다. 길을 걷는 사람들 중에도 공무원과 경찰관이 눈에 띈다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TKST" +output = "도쿄 장면 표(11) > 산야의 도야 거리(山谷のドヤ街). 일용직 노동자들이 모이는 관리 숙박 시설이 많은 이 곳은, 몸을 숨기기에 딱 맞는 곳이다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TKST" +output = "도쿄 장면 표(4) > 도쿄 대학 본부 캠퍼스. 정문에서 뻗어 나가는 은행나무 길에 학생들과 교직원들이 여유롭게 걸어다니고 있다. 길 건너편에는 야스다 강당(安田講堂)이 보인다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TKST" +output = "도쿄 장면 표(9) > 신주쿠 도청. 고층 빌딩이 밀집한 거리 아래, 정장 차림의 사람들이 분주하게 오간다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TKST" +output = "도쿄 장면 표(2) > 오다이바, 임계 부도심. 데이트 중인 커플과 관광객들로 붐비고 있다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "TKST" +output = "도쿄 장면 표(6) > 카스미가세키(霞が関). 이 장소에 모이는 정보는, 닌자에게도 가치 있는 내용이다. 길을 걷는 사람들 중에도 공무원과 경찰관이 눈에 띈다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GST" +output = "전국시대 장면 표(11) > 전쟁터에 설치된 진영 안. 화톳불이 켜져 있고, 무사들이 술잔치를 벌이고 있다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GST" +output = "전국시대 장면 표(4) > 인기척이 없는 산길. 오직 새가 지저귀는 소리만이 들려온다. 지나가는 사람을 습격하기에는 딱 좋은 기회일지도 모른다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GST" +output = "전국시대 장면 표(6) > 기분 나쁜 분위기의 숲 속. 뭔가 정체를 알 수 없는 것이 숨어있는 것 같다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GST" +output = "전국시대 장면 표(10) > 저택의 천장 위. 이 아래에서는 지금 무슨 일이 벌어지고 있는가……." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GST" +output = "전국시대 장면 표(8) > 길가에 위치한 마을. 전쟁을 피해 도망쳐온 것으로 보이는 마을 사람, 장사할 물건을 찾는 상인, 날카로운 눈매의 무사 등이 왁자지껄한 거리를 걷고 있다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GST" +output = "전국시대 장면 표(9) > 성의 천수각 꼭대기. 세차게 불어오는 바람에 구름이 흘러간다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GAST" +output = "학교 장면 표(4) > 아무도 없는 체육관. 농구공이 데굴데굴 굴러다닌다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GAST" +output = "학교 장면 표(5) > 교사 옥상. 한차례 바람이 불어 옷자락이 휘날린다." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GAST" +output = "학교 장면 표(8) > 교내 식당의 카페테리아. 학생들이 여기저기에 자리를 잡고 담소를 나누고 있다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GAST" +output = "학교 장면 표(9) > 조용한 수업 중의 한 때. 하지만 인술을 써서 일반 학생들 몰래 대화를 나누는 닌자들도 있다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GAST" +output = "학교 장면 표(12) > 수영장. 수면이 잔잔하게 흔들리고 있다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KYST" +output = "교토 장면 표(9) > 근처에 대학이 있는 걸까? 저렴한 정식집, 중고서점, 게임센터 등이 줄지어 있는 대학가에 서있다. 교토에는 대학이 많군." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KYST" +output = "교토 장면 표(12) > 대중에게 공개된 교토 어소(京都御所,교토부에 위치한 황궁) 안을 걷는다. 낮인데도 불구하고 인적이 별로 없어, 어딘가 조금 쓸쓸한 기분이 든다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KYST" +output = "교토 장면 표(7) > 「신사불각 장면표(JBST)」를 굴린다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KYST" +output = "교토 장면 표(10) > 조용한 대나무 숲. 차분한 분위기가 감돌고 있다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KYST" +output = "교토 장면 표(6) > 교토에는 어디에나 기념품 가게가 있네. 그럼, 그 녀석에게 무엇을 사줘야 할까……?" +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(4) > 헤이안 신궁. 커다란 도리이 아래로 시로무쿠 차림의 신부 행렬이 지나간다. 아마 결혼식인 듯하다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(5) > 지쇼지―― 통칭 은각사. 무로마치 후기의 히가시야마 문화를 대표하는 건축물. 킨쿄우치를 감싸는 정원엔 사색에 잠긴 관광객들의 모습이 보인다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(7) > 산주산겐도. 장엄한 본당에 늘어선 1001체의 천수관음상의 분위기가 압권이다." +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(6) > 로쿠온지―― 통칭 금각사. 무로마치 전기의 기타야마 문화를 대표하는 건축물. 쿄우코치(鏡湖池)에 비친 거꾸로 된 금각에는 강력한 마(魔)가 봉인되어 있다고도 한다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(8) > 기요미즈데라(청수사). 기요미즈 언덕을 지나 인왕문을 통과하면, 본당――「기요미즈의 무대」에 도달한다. 그곳에서 오토와노타키와 자안탑이 보인다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(9) > 야사카 신사. 기온상(祇園さん)이라는 이름으로 널리 알려진 활기찬 신사. 마이코들의 모습도 가끔 보인다." +rands = [ + { sides = 6, value = 5 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "JBST" +output = "신사불각 장면 표(10) > 후시미 이나리 대사. 전국 약 4만 개의 이나리 신사 중 본궁. 이나리 산을 향해 늘어선 약 1만 개의 도리이는 마치 이계로 이어지는 듯하다……." +rands = [ + { sides = 6, value = 4 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "FT" +output = "펌블 표(1) > 뭔가 상태가 이상하다. 그 사이클 동안 모든 행동 판정에 -1의 수정치를 적용한다." +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "FT" +output = "펌블 표(2) > 아뿔싸! 아무거나 닌자도구를 하나 잃어버린다." +rands = [ + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "FT" +output = "펌블 표(3) > 정보가 새어나갔다! 당신을 제외한 다른 캐릭터들은 당신이 가지고 있는 【비밀】이나 【거처】중에서 원하는 것을 하나씩 알아낼 수 있다." +rands = [ + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "FT" +output = "펌블 표(6) > 휴우. 하마터면 큰일 날 뻔 했다. 아무 일도 일어나지 않는다." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OFT" +output = "펌블 표(구 문고판)(1) > 뭔가 상태가 이상하다. 그 사이클 동안 모든 행동 판정에 -1의 수정치를 적용한다." +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OFT" +output = "펌블 표(구 문고판)(3) > 정보가 새어나갔다! 이 게임에서 당신이 획득한【비밀】은, 다른 캐릭터 전원이 알게 된다." +rands = [ + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OFT" +output = "펌블 표(구 문고판)(6) > 휴우. 하마터면 큰일 날 뻔 했다. 아무 일도 일어나지 않는다." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ET" +output = "감정 표(1) > 공감(플러스) / 불신(마이너스)" +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ET" +output = "감정 표(5) > 동경(플러스) / 열등감(마이너스)" +rands = [ + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "ET" +output = "감정 표(6) > 광신(플러스) / 살의(마이너스)" +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "RTT" +output = "랜덤 특기 결정표(2,7) > 『체술』보법" +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 4 }, + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "RTT1" +output = "기술 분야 랜덤 특기 결정표(6) > 『기술』암기" +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "RCT" +output = "랜덤 분야 표(6) > 요술" +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "PLST" +output = "배양 플랜트 장면 표(2) > 거대한 유리관 안에 모독적인 생물이 꿈틀거리는 실험실.《의지》로 판정한다. 실패하면 상태이상《마비》를 받는다." +rands = [ + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HY" +output = "야행 열차 장면 표(12) > 차량 끝부분을 확인하기 위해 계속해서 문을 통과하는데, 아무리 가도 가장 앞칸(가장 뒷칸?)에 도달할 수 없다. 지금 도대체 몇 번째 칸에 있는 거지?" +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HC" +output = "중급닌자 시험 장면 표(12) > 탈락한 다른 그룹 닌자의 시체를 발견한다. 이 녀석들에게는 이제 필요 없겠지. 아무거나 닌자도구 1개를 획득한다(뭘 획득할지 선언한다)." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HK" +output = "그림자 거리에서 장면 표(12) > 태양의 미소가 당신을 감싼다. 그림자 속에서 살아가는 이들에게 그 미소는 너무나 눈부시다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HM" +output = "밀실 장면 표(12) > 벽의 얼룩을 멍하니 바라봤더니, 그것이 천천히 사람의 얼굴 모양이 되어 히죽 웃었다. ……환각인가." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HO" +output = "병원 장면 표(12) > 영안실. 문이 죽 늘어선 긴 복도에는 지하 특유의 탁한 공기가 감돌고 있다. 왠지 기분이 나쁘다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HR" +output = "런던 장면 표(12) > 무참하고 모독적인 시체. 회생자의 표정은 고통으로 일그러졌고, 팔다리에는 누군가에게 뜯어먹힌 흔적이 있다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HS" +output = "최면 장면 표(6) > 당신은 방대한 수의 책꽂이가 줄줄이 서 있는, 아무도 없는 도서관 안을 걷고 있다. 별 생각 없이 책 한권을 책꽂이에서 뽑아들자, 그 틈 너머로 내비 캐릭터의 얼굴이 보인다.「네가 바라는 것은 그 책의 14페이지에 적혀 있어.」그 말에 따라 머뭇거리며 14페이지를 펼쳐 보니……." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HT" +output = "멸망의 탑 장면 표(12) > 태양의 미소가 당신을 감싼다. 그림자 속에서 살아가는 이들에게 그 미소는 너무나 눈부시다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "D66" +output = "(D66) > 66" +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "SD66" +output = "(D66) > 66" +secret = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "S1D6" +output = "(1D6) > 1" +secret = true +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "AKST" +output = "가을 하늘에 눈이 흩날리면 장면 표(12) > 깡! 깡! 누군가가 깊은 밤중에 짚인형에 못을 박고 있다. 장면에 등장한 캐릭터는《주술》로 판정한다. 성공하면 누군가에게《저주》상태이상을 걸 수 있다. 실패하면《저주》상태이상을 받는다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "CLST" +output = "재앙 장면 표(6) > 힘없는 자는 살아남을 수 없다. 보스가 새로운 힘을 손에 넣으려 하고 있다. 장면 플레이어가 《괴력》 판정에 실패한 경우, 보스에 대해 에니그마:『팔면육비』가 공개 상태로 추가된다." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "DXST" +output = "데지마EX 장면 표(12) > 눈앞에 외지인이 나타난다. 외지인은 당신에게 관심을 보이며 덤벼든다. 이 장면의 등장인물은《도검술》로 판정해야 한다. 성공하면 외지인을 쓰러뜨리고 임의의【닌자도구】1개를 입수한다. 실패하면 접근전 대미지 3점을 입는다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HLST" +output = "하스바 개발실 장면 표(12) > 마인드컨트롤 장치가 놓인 방. 당신은 이 장면에서 GM이 지정하는 행동에 반드시 따라야 한다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NTST" +output = "여름의 끝 장면 표(12) > 깡, 깡…… 한밤중, 축시(새벽1~3시)에 누군가 저주를 거는 망치질 소리가 들려온다. 이 장면에 등장한 캐릭터는《주술》판정을 한다. 성공하면 다른 캐릭터에게 상태이상《저주》를 걸 수 있고, 실패하면 자신이 상태이상《저주》를 받는다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2D6>=? 목표치? 로 정상 작동" +output = "(2D6>=?) > 7[3,4] > 7" +rands = [ + { sides = 6, value = 3 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=5" +output = "(2D6>=5) > 2[1,1] > 2 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=5" +output = "(2D6>=5) > 12[6,6] > 12 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=? 목표치? 로 펌블" +output = "(2D6>=?) > 2[1,1] > 2 > 펌블" +failure = true +fumble = true +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2d6>=? 목표치? 로 크리티컬" +output = "(2D6>=?) > 12[6,6] > 12 > 스페셜(【생명력】1점 또는 상태 이상 1개를 회복)" +success = true +critical = true +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MT 이형 표의 동작 갱신" +output = "이형 표(2) > 1D6을 굴려「요마 인법 표B」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다. > 요마 인법 표B(4) > 【코다마】(괴p.253/기본p.172)" +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "MTR 이형 표 단일" +output = "이형 표(2) > 1D6을 굴려「요마 인법 표B」에서 무작위로 인법의 종류를 결정한다. 요마화하고 있는 동안 그 요마 인법을 습득하고 있는 것으로 간주한다. 이 이형은 요마 인법의 종류가 다르다면 서로 다른 이형으로 간주한다." +rands = [ + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NMT 신 이형 표" +output = "신 이형 표(2) > 흉신태(凶身態) |「요마 인법표・흉신」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다. > 요마 인법 표・흉신(5) > 【햐쿠에】(기본 p173) /【키타이】(오니혈 p29)" +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NMTR 신 이형 표 단일" +output = "신 이형 표(2) > 흉신태(凶身態) |「요마 인법표・흉신」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다." +rands = [ + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "WT 상태이상 표" +output = "상태이상 표(1) > 고장:모든 닌자도구를 사용할 수 없게 된다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《기기술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다." +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "KWT" +output = "괴 상태이상 표(4) > 행방불명:메인 페이즈 동안 자기 이외의 플레이어가 장면 플레이어인 장면에 등장할 수 없게 된다. 이 효과는 누적되지 않는다. 각 사이클을 종료할 때《경제력》으로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다." +rands = [ + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OWT" +output = "상태이상 표(구 문고판)(6) > 저주:습득하고 있는 인법 중에서 무작위로 하나를 고른다. 그 인법을 사용할 수 없게 된다. 1 사이클이 종료될 때《주술》로 행동 판정을 해서 성공하면 이 상태이상은 무효가 된다." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GWT 전국 상태이상 표" +output = "전국 상태이상 표(1) > 최면:이 상태이상에 걸린 이가 전투에 참가 했다면, 전투가 시작되는 시점 또는 이 상태이상에 걸린 시점에서【생명력】을 1점 감소하지 않으면 그 전투에서 자동적으로 탈락한다. 이 효과는 누적되지 않는다. 사이클을 종료할 때《의지》판정을 해서 성공하면 이 효과는 무효가 된다." +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GWT" +output = "전국 상태이상 표(5) > 잔류물:이 상태이상에 걸린 이는 회복 판정이나 인법, 닌자도구의 효과로【생명력】을 회복할 수 없게 된다(상태이상은 회복할 수 있다). 이 효괴는 누적되지 않는다. 사이클을 종료할 때《고문술》판정을 해서 성공하면 이 효과는 무효가 된다." +rands = [ + { sides = 6, value = 5 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GWT" +output = "전국 상태이상 표(2) > 불덩어리:이 상태이상에 걸린 이는 펌블치가 1 상승하며, 펌블을 발생시키면 1점의 접근전 대미지를 입는다. 이 효과는 누적된다. 장면을 종료할 때 이 효과는 무효가 된다." +rands = [ + { sides = 6, value = 2 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "GWT" +output = "전국 상태이상 표(3) > 맹독:이 상태이상에 걸린 이가 전투에 참가했다면, 라운드를 종료할 때 주사위를 1개 굴린다. 그 눈이 홀수라면【생명력】이 1점 감소한다. 이 효과는 누적된다. 사이클을 종료할 때《독술》판정을 해서 성공하면 이 효과는 무효가 된다." +rands = [ + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "BT" +output = "전장 표(1) > 평지:특별한 효과 없음." +rands = [ + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "BT 전장 표" +output = "전장 표(6) > 위험지대:우주나 심해, 용암, 마계 등. 게임 마스터는 라운드가 끝날 때 1D6을 굴린다. 주사위 눈이 전투가 시작하고 경과한 라운드 수 이하인 경우, 이 전장에 있는 캐릭터들은 접근전 대미지 1점을 입는다. 이 전장에서 탈락한 자는 1D6을 굴려서 상태이상 표의 결과를 적용한다." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OBT" +output = "전장 표(구 문고판)(3) > 고지대:빌딩 사이나 나무 위, 깎아지른 절벽 등. 이 전장에서 펌블을 내면 대미지 1점을 입는다." +rands = [ + { sides = 6, value = 3 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OTS" +output = "【운명의 장난】(오토기 p33)(4) > 전장을 원하는 장소로 변경한다." +rands = [ + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NMT 신 이형 표의 오타 수정(25/01/17: 페이지수 수정) 및 신 이형 표 1번 동작 확인" +output = "신 이형 표(1) > 이령태(異霊態) |「요마 인법표・이령」을 사용하고, 요마화하고 있는 동안 그 요마 인법을 습득한다. > 요마 인법 표・이령(1) > 【오우마가토키】(기본 p172) /【우츠로부네】(오니혈 p28)" +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 1 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "HRPT" +output = "패닉 표(5) > 사람들 사이에 근거도 없는 소문이 만연하고, 세상이 암울해진다. 그 세션의 드라마 장면 동안 PC 전원은 모든 판정에 -1의 수정치를 적용한다." +rands = [ + { sides = 6, value = 1 }, + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OTAT 25/01/17:텍스트 수정" +output = "각성 표(6) > 자신의 뇌에 누군가가 직접 속삭인다. 집단전 대미지 1점을 입으면 임의의 미각성 데이터 하나를 선택하고, 그것을 각성한 데이터로 변경할 수 있다. 퇴마편이라면, 집단전 대미지를 받는 대신 요마화 하는 것으로 임의의 미각성 데이터 하나를 선택하고, 그것을 각성한 데이터로 변경할 수 있다." +rands = [ + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NCT1" +output = "공격계 인법 수업 장면 표(4) > \n고속전투학:《격투술》《의지》\n【연격】(기본 p81) /【가을 폭풍】(기본 p81) /【분사 기구】(오토기 p33) / 임의의 인술\n\n지하 무술 도장에서 하는 수업. 일대일 맨손 대련을 중심으로, 공격을 맞히려면 어떻게 해야 하는가, 공격을 한 후에 어떻게 움직이는 것이 효과적인가 등을 가르친다. 또, 장시간 진행되는 수업이라 기력 또한 도마 위에 오른다." +rands = [ + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NCT2" +output = "방어계 인법 수업 장면 표(4) > \n인법요법학:《대인술》《병량술》\n【이독제독】(기본 p81) /【선식】(기본 p102) /【설교】(기본 p104) / 임의의 모술\n\n학생 기숙사의 담화실, 식당 등을 사용해서 진행한다. 커뮤니케이션을 통해 동료의 기력이나 모티베이션을 회복하는 방법을 배우는 수업. 대화뿐만 아니라 음식물이나 금전 같은 보수를 이용하는 방법 등도 학습 내용에 포함되어 있다." +rands = [ + { sides = 6, value = 4 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "NCT3" +output = "보조계 인법 수업 장면 표(5) > \n방해환경학:《지형활용》《봉인술》\n【황사】(기본 p103) /【큰불】(오토기 p34) /【얼음쐐기】(오토기 p34) / 임의의 요술\n\n걱대 사우나, 대식당 부속 냉동실, 강풍으로 유명한 오토기 모래언덕을 이용하여, 고온과 저온의 환경, 시야를 가리는 장소 등 열악한 상황에서 싸우는 법을 배우는 수업. 일반적인 지형이나 날씨뿐만 아니라, 학원에 소속된 반요의 요력으로 발생시킨 상황까지도 체험한다." +rands = [ + { sides = 6, value = 5 }, +] + + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "OTFK" +output = "불량 고교 장면 표(8) > 교실 앞 복도에 깨진 유리창이 흩어져 있다. 뻥 뚫린 창 밖에서 차가운 바람이 불어닥치고 있다." +rands = [ + { sides = 6, value = 2 }, + { sides = 6, value = 6 }, +] + +[[ test ]] +game_system = "ShinobiGami:Korean" +input = "2KWT 표 다중 굴림 처리" +output = "괴 상태이상 표(6) > 저주:습득하고 있는 인법 중에서 무작위로 하나를 고른다. 그 인법을 사용할 수 없게 된다. 이 효과는 습득하고 있는 인법의 수만큼 누적된다. 각 사이클을 종료할 때《주술》로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다.\n괴 상태이상 표(2) > 마비:습득하고 있는 특기 중에서 무작위로 하나를 고른다. 그 특기를 사용할 수 없게 된다. 이 효과는 습득하고 있는 특기의 수만큼 누적된다. 각 사이클을 종료할 때《신체조작》으로 행동 판정을 해서 성공하면 이 상태이상은 모두 무효가 된다." +rands = [ + { sides = 6, value = 6 }, + { sides = 6, value = 2 }, +]