From 205b6101cb17bd4ccb3660f67bf511cc3d80514e Mon Sep 17 00:00:00 2001 From: Seoa Yoon Date: Sat, 4 Jul 2026 20:52:38 +0900 Subject: [PATCH] Add ko_kr --- .../hexcasting/lang/ko_kr.flatten.json5 | 2275 +++++++++++++++++ .../assets/farmersdelight/lang/ko_kr.json | 3 + .../hexcasting/lang/ko_kr.flatten.json5 | 48 + 3 files changed, 2326 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 create mode 100644 doc/resources/assets/farmersdelight/lang/ko_kr.json create mode 100644 doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 diff --git a/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 new file mode 100644 index 0000000000..7ad19903f4 --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 @@ -0,0 +1,2275 @@ +// A work in progress +{ + "item.hexcasting": { + book: "헥스 수첩", + + staff: { + oak: "참나무 지팡이", + spruce: "가문비나무 지팡이", + birch: "자작나무 지팡이", + jungle: "정글나무 지팡이", + acacia: "아카시아나무 지팡이", + dark_oak: "짙은 참나무 지팡이", + crimson: "진홍빛 지팡이", + warped: "뒤틀린 지팡이", + mangrove: "맹그로브나무 지팡이", + cherry: "벚나무 지팡이", + bamboo: "대나무 지팡이", + edified: "교화된 지팡이", + quenched: "진정된 파편 지팡이", + mindsplice: "정신접합 지팡이", + }, + + amethyst_dust: "자수정 가루", + charged_amethyst: "충전된 자수정", + quenched_allay_shard: "진정된 알레이의 파편", + + scroll_small: { + "": "작은 두루마리", + of: "이 %s 아이템은 어떻게 얻은 걸까", + empty: "빈 작은 두루마리", + }, + + scroll_medium: { + "": "중간 두루마리", + of: "이 %s 아이템은 어떻게 얻은 걸까", + empty: "빈 중간 두루마리", + }, + + scroll: { + "": "큰 두루마리", + of: "고대의 %s 두루마리", + empty: "빈 큰 두루마리", + }, + + focus: { + "": "초점구", + sealed: "봉인된 초점구", + }, + + ancient_cypher: { + "": "고대 사이퍼", + preset: "고대 사이퍼: %s", + }, + + thought_knot: "생각 매듭", + spellbook: "마도서", + cypher: "사이퍼", + trinket: "장신구", + artifact: "유물", + battery: "미디어 약병", + lens: "염시 렌즈", + abacus: "주판", + jeweler_hammer: "보석 세공 망치", + sub_sandwich: "잠수 샌드위치", + + dye_colorizer_: { + white: "흰색 안료", + orange: "주황색 안료", + magenta: "자홍색 안료", + light_blue: "하늘색 안료", + yellow: "노란색 안료", + lime: "연두색 안료", + pink: "분홍색 안료", + gray: "회색 안료", + light_gray: "밝은 회색 안료", + cyan: "청록색 안료", + purple: "보라색 안료", + blue: "파란색 안료", + brown: "갈색 안료", + green: "초록색 안료", + red: "빨간색 안료", + black: "검은색 안료", + }, + + pride_colorizer_: { + agender: "에이젠더 안료", + aroace: "아로에이스 안료", + aromantic: "아로맨틱 안료", + asexual: "무성애 안료", + bisexual: "양성애 안료", + demiboy: "데미보이 안료", + demigirl: "데미걸 안료", + gay: "게이 안료", + genderfluid: "젠더플루이드 안료", + genderqueer: "젠더퀴어 안료", + intersex: "인터섹스 안료", + lesbian: "레즈비언 안료", + nonbinary: "논바이너리 안료", + pansexual: "팬섹슈얼 안료", + plural: "플루럴 안료", + transgender: "트랜스젠더 안료", + }, + + uuid_colorizer: "영혼빛 안료", + default_colorizer: "공백 안료", + ancient_colorizer: "고대 안료", + + creative_unlocker: { + "": "미디어 큐브", + for_emphasis: "무한한 미디어", + tooltip: "먹으면 모든 %s 지식을 해금합니다.", + mod_name: "Hexcasting", + }, + + lore_fragment: { + "": "전승 조각", + all: "이 세계에서 찾을 수 있는 전승은 모두 찾은 듯하다.", + }, + }, + + "entity.hexcasting": { + wall_scroll: "걸린 두루마리", + }, + + "block.hexcasting": { + conjured_light: "소환된 빛", + conjured_block: "소환된 블록", + + directrix: { + empty: "빈 지향석", + redstone: "석공의 지향석", + boolean: "양치기의 지향석", + }, + + impetus: { + empty: "빈 원동석", + rightclick: "도구 대장장이의 원동석", + look: "화살 제조인의 원동석", + redstone: "성직자의 원동석", + }, + + akashic_: { + record: "아카식 레코드", + bookshelf: "아카식 책장", + connector: "아카식 연결구", + }, + + slate: { + "": "석판", + blank: "빈 석판", + written: "문양 석판", + }, + + slate_: { + block: "석판 블록", + tiles: "석판 타일", + bricks: "석판 벽돌", + bricks_small: "작은 석판 벽돌", + pillar: "석판 기둥", + }, + + amethyst_: { + dust_block: "자수정 가루 블록", + tiles: "자수정 타일", + bricks: "자수정 벽돌", + bricks_small: "작은 자수정 벽돌", + pillar: "자수정 기둥", + }, + + slate_amethyst_: { + tiles: "석판과 자수정 타일", + bricks: "석판과 자수정 벽돌", + bricks_small: "작은 석판과 자수정 벽돌", + pillar: "석판과 자수정 기둥", + }, + + scroll_paper: "두루마리 종이", + ancient_scroll_paper: "고대 두루마리 종이", + scroll_paper_lantern: "종이 등불", + ancient_scroll_paper_lantern: "고대 종이 등불", + amethyst_sconce: "자수정 벽등", + + edified_: { + log: "교화된 원목", + log_amethyst: "자수정 교화 원목", + log_aventurine: "어벤추린 교화 원목", + log_citrine: "시트린 교화 원목", + log_purple: "보라색 교화 원목", + wood: "교화된 나무", + planks: "교화된 판자", + panel: "교화된 판", + tile: "교화된 타일", + door: "교화된 문", + trapdoor: "교화된 다락문", + stairs: "교화된 계단", + slab: "교화된 반 블록", + button: "교화된 버튼", + pressure_plate: "교화된 압력판", + fence: "교화된 울타리", + fence_gate: "교화된 울타리 문", + }, + + stripped_edified_log: "껍질 벗긴 교화 원목", + stripped_edified_wood: "껍질 벗긴 교화 나무", + + amethyst_edified_leaves: "자수정 교화 잎", + aventurine_edified_leaves: "어벤추린 교화 잎", + citrine_edified_leaves: "시트린 교화 잎", + + quenched_allay: "진정된 알레이", + + quenched_allay_: { + tiles: "진정된 알레이 타일", + bricks: "진정된 알레이 벽돌", + bricks_small: "작은 진정된 알레이 벽돌", + }, + }, + + "effect.hexcasting": { + enlarge_grid: "명료", + shrink_grid: "혼탁", + }, + + "item.minecraft.potion.effect": { + enlarge_grid: "명료의 물약", + enlarge_grid_long: "명료의 물약", + enlarge_grid_strong: "명료의 물약", + shrink_grid: "혼탁의 물약", + shrink_grid_long: "혼탁의 물약", + shrink_grid_strong: "혼탁의 물약", + }, + + "item.minecraft.splash_potion.effect": { + enlarge_grid: "투척용 명료의 물약", + enlarge_grid_long: "투척용 명료의 물약", + enlarge_grid_strong: "투척용 명료의 물약", + shrink_grid: "투척용 혼탁의 물약", + shrink_grid_long: "투척용 혼탁의 물약", + shrink_grid_strong: "투척용 혼탁의 물약", + }, + + "item.minecraft.lingering_potion.effect": { + enlarge_grid: "잔류형 명료의 물약", + enlarge_grid_long: "잔류형 명료의 물약", + enlarge_grid_strong: "잔류형 명료의 물약", + shrink_grid: "잔류형 혼탁의 물약", + shrink_grid_long: "잔류형 혼탁의 물약", + shrink_grid_strong: "잔류형 혼탁의 물약", + }, + + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "명료의 화살", + enlarge_grid_long: "명료의 화살", + enlarge_grid_strong: "명료의 화살", + shrink_grid: "혼탁의 화살", + shrink_grid_long: "혼탁의 화살", + shrink_grid_strong: "혼탁의 화살", + }, + + "itemGroup.hexcasting": { + hexcasting: "육각술", + scrolls: "육각술 (두루마리)", + }, + + "gui.hexcasting": { + spellcasting: "주문문양 격자", + }, + + "category.hexcasting": { + "binds": "육각술", + }, + + "key.hexcasting": { + "spellbook_prev": "이전 마도서 페이지", + "spellbook_next": "다음 마도서 페이지", + }, + + "tag.hexcasting": { + staves: "육각술 지팡이", + edified_logs: "교화된 원목", + edified_planks: "교화된 판자", + phial_base: "빈 약병", + }, + + "tag.item.hexcasting": { + brainswept_circle_components: "정신이 벗겨진 마법진 부품", + directrices: "지향석", + grants_root_advancement: "기본 발전 과제 부여", + impeti: "원동석", + seal_materials: "봉인 재료", + }, + + "emi.category.hexcasting": { + brainsweep: "정신 벗기기", + "craft.battery": "약병 제작", + edify: "묘목 교화", + villager_leveling: "거래 레벨", + villager_profession: "주민 직업", + }, + + "text.autoconfig.hexcasting": { + title: "Hexcasting 설정", + + category: { + common: "공통", + client: "클라이언트", + server: "서버", + }, + + option: { + common: { + dustMediaAmount: { + "": "가루 미디어량", + "@Tooltip": "자수정 가루 하나가 지닌 미디어량", + }, + shardMediaAmount: { + "": "파편 미디어량", + "@Tooltip": "자수정 조각 하나가 지닌 미디어량", + }, + chargedCrystalMediaAmount: { + "": "충전 결정 미디어량", + "@Tooltip": "충전된 자수정 결정 하나가 지닌 미디어량", + }, + mediaToHealthRate: { + "": "미디어 대 체력 비율", + "@Tooltip": "체력으로 시전할 때 하트 반 칸이 몇 미디어에 해당하는지", + }, + cypherCooldown: { + "": "사이퍼 재사용 대기시간", + "@Tooltip": "사이퍼의 재사용 대기시간(틱)", + }, + trinketCooldown: { + "": "장신구 재사용 대기시간", + "@Tooltip": "장신구의 재사용 대기시간(틱)", + }, + artifactCooldown: { + "": "유물 재사용 대기시간", + "@Tooltip": "유물의 재사용 대기시간(틱)", + }, + }, + + client: { + ctrlTogglesOffStrokeOrder: { + "": "Ctrl로 획순 표시 끄기", + "@Tooltip": "Ctrl 키가 패턴의 색상 그라데이션을 *끄는* 용도로 동작할지 여부", + }, + disableInworldScrolling: { + "": "월드 내 스크롤 비활성화", + "@Tooltip": "일반 월드에서 마도서와 주판의 스크롤 입력을 비활성화하되, 키 설정과 지팡이 화면 스크롤은 그대로 유지" + }, + invertSpellbookScrollDirection: { + "": "마도서 스크롤 방향 반전", + "@Tooltip": "위로 스크롤할 때 마도서 페이지 번호가 증가하고 반대로 동작할지 여부", + }, + invertAbacusScrollDirection: { + "": "주판 스크롤 방향 반전", + "@Tooltip": "위로 스크롤할 때 주판 값이 증가하고 반대로 동작할지 여부", + }, + gridSnapThreshold: { + "": "격자 스냅 임계값", + "@Tooltip": "지팡이를 사용할 때 한 점에서 다음 점으로 스냅되기 위해 이동해야 하는 거리입니다. 0.5는 절반(50%) 지점을 의미합니다. (0.5-1)", + }, + clickingTogglesDrawing: { + "": "클릭으로 그리기 전환", + "@Tooltip": "클릭 후 드래그 대신 클릭으로 그리기 시작과 중지를 전환할지 여부", + }, + alwaysShowListCommas: { + "": "목록 쉼표 항상 표시", + "@Tooltip": "목록 표시 시 모든 이오타 유형을 쉼표로 구분할지 여부(기본적으로 패턴 이오타는 쉼표를 사용하지 않음)", + }, + advancedTooltipsShowsIotaNBT: { + "": "고급 툴팁에 이오타 NBT 표시", + "@Tooltip": "고급 툴팁(F3+H)을 켰을 때 초점구나 마도서 같은 아이템에 저장된 이오타의 전체 NBT를 표시할지 여부", + }, + staticActiveSlates: { + "": "활성 석판 정적 렌더링", + "@Tooltip": "활성 석판의 패턴을 흔들림 없이 렌더링할지 여부(활성 석판이 많을 때 성능 향상)", + }, + }, + + server: { + opBreakHarvestLevel: { + "": "파괴 채굴 레벨", + "@Tooltip": "블록 파괴 주문의 채굴 레벨입니다.\n0 = 나무, 1 = 돌, 2 = 철, 3 = 다이아몬드, 4 = 네더라이트.", + }, + maxOpCount: { + "": "최대 액션 수", + "@Tooltip": "서버 멈춤을 피하기 위해 한 틱에 실행할 수 있는 최대 액션 수입니다.", + }, + maxSpellCircleLength: { + "": "최대 마법진 길이", + "@Tooltip": "마법진에 들어갈 수 있는 석판의 최대 수", + }, + actionDenyList: { + "": "액션 차단 목록", + "@Tooltip": "허용되지 않은 액션의 리소스 위치입니다. 이 중 하나를 시전하려 하면 변고가 발생합니다. 예를 들어 hexcasting:get_caster는 정신의 반사를 막습니다.", + }, + circleActionDenyList: { + "": "마법진 액션 차단 목록", + "@Tooltip": "마법진 안에서 허용되지 않은 액션의 리소스 위치입니다. 마법진에서 이 중 하나를 시전하려 하면 변고가 발생합니다.", + }, + greaterTeleportSplatsItems: { + "": "상급 순간이동 시 아이템 흩뿌림", + "@Tooltip": "상급 순간이동을 사용할 때 플레이어 인벤토리의 아이템이 튀어나갈지 여부" + }, + doesTrueNameHaveAmbit: { + "": "진명이 영향 범위를 가지는지", + "@Tooltip": "진명(플레이어에 대한 엔티티 참조)이 일반 영향 범위 밖에서도 해당 플레이어를 대상으로 삼을 수 있게 할지 여부", + }, + tpDimDenylist: { + "": "순간이동 차원 차단 목록", + "@Tooltip": "순간이동이 허용되지 않은 차원의 리소스 위치", + }, + villagersOffendedByMindMurder: { + "": "주민이 정신 살해에 분노", + "@Tooltip": "다른 주민이 정신 벗기기를 당했을 때 주민들이 플레이어에게 화를 낼지 여부", + }, + traderScrollChance: { + "": "떠돌이 상인 두루마리 확률", + "@Tooltip": "떠돌이 상인이 고대 두루마리를 판매할 확률", + }, + scrollInjectionsRaw: { + "": "두루마리 주입 가중치", + "@Tooltip": "전리품 표 이름을, 그 안에 월드별 패턴 두루마리를 얼마나 넣을지에 매핑합니다. 여기 표시된 상자에서는 약 50% 확률로 두루마리를 얻고, 조건이 충족되면 1개부터 그 수만큼의 두루마리가 생성됩니다.", + }, + loreInjectionsRaw: { + "": "전승 주입 위치", + "@Tooltip": "전승 조각을 추가할 전리품 표 목록입니다.", + }, + loreChance: { + "": "전승 조각 확률", + "@Tooltip": "전승 조각이 위 전리품 표 중 하나에 나타날 확률입니다.", + }, + cypherInjectionsRaw: { + "": "고대 사이퍼 주입 위치", + "@Tooltip": "고대 사이퍼를 추가할 전리품 표 목록입니다.", + }, + cypherChance: { + "": "고대 사이퍼 확률", + "@Tooltip": "고대 사이퍼가 위 전리품 표 중 하나에 나타날 확률입니다.", + }, + amethystShardModification: { + "": "자수정 조각 드롭률 변경", + "@Tooltip": "군집에서 떨어지는 자수정 조각 수가 얼마나 증가/감소하는지입니다.", + }, + }, + }, + }, + + "advancement.hexcasting:": { + root: { + "": "육각술 연구", + desc: "땅속 깊은 곳에서 자라나는 농축된 미디어를 찾아 채굴하세요.", + }, + creative_unlocker: { + "": "무한한 힘", + "desc": "크리에이티브 디버그 아이템을 찾았습니다." + }, + enlightenment: { + "": "깨달음에 도달하기", + desc: "거의 모든 체력을 써서 주문문양을 시전해 장벽을 깨뜨리세요.", + }, + wasteful_cast: { + "": "낭비하지 않으면...", + desc: "주문문양을 시전하며 많은 미디어를 낭비하세요.", + }, + big_cast: { + "": "...부족하지 않다", + desc: "정말 막대한 미디어가 필요한 주문 하나를 시전하세요.", + }, + y_u_no_cast_angy: { + "": "보이지 않는 우회", + desc: "두루마리로 주문을 시전하려다 실패하세요.", + }, + opened_eyes: { + "": "뜨인 눈", + desc: "주문문양의 대가로 자연이 내 정신 일부를 가져가게 하세요. 더 많이 내주면 무슨 일이 벌어질까요?", + }, + lore: { + "": "육각술 전승", + desc: "전승 조각 읽기", + }, + "lore/": { + cardamom1: { + "": "카다멈 스틸스 #1", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #1", + }, + cardamom2: { + "": "카다멈 스틸스 #2", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #2", + }, + cardamom3: { + "": "카다멈 스틸스 #3", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #3, 1/2", + }, + cardamom4: { + "": "카다멈 스틸스 #3 2부", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #3, 2/2", + }, + cardamom5: { + "": "카다멈 스틸스 #4", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #4", + }, + experiment1: "울아이 사례 기록", + experiment2: "울아이 면담 기록", + inventory: "복원 기록 72", + }, + }, + + "stat.hexcasting": { + media_used: "소비한 미디어(가루 단위)", + media_overcast: "초과 시전한 미디어(가루 단위)", + patterns_drawn: "그린 패턴", + spells_cast: "시전한 주문", + }, + + "death.attack.hexcasting": { + overcast: { + "": "%s의 정신이 에너지에 삼켜졌다", + player: "%s의 정신이 %s와 싸우던 중 에너지에 삼켜졌다", + }, + }, + + "command.hexcasting": { + recalc: "패턴을 다시 계산했습니다", + + pats: { + listing: "이 세계의 패턴:", + all: "%s에게 모든 두루마리 %d개를 지급했습니다", + "specific.success": "%3$s에게 ID %2$s의 %1$s을(를) 지급했습니다", + }, + + brainsweep: { + "": "%s의 정신을 벗겼습니다", + "fail.badtype": "%s은(는) 몹이 아닙니다", + "fail.already": "%s은(는) 이미 비어 있습니다", + }, + }, + + // === Inline ! === + "matcher.hexcasting.pattern": { + "title": "육각 패턴", + "title.styled": "육각 패턴 ", + "description": "시각적 육각술 패턴", + "example": "" + }, + + hexcasting: { + "pattern.unknown": "알 수 없는 패턴 리소스 위치 %s", + + debug: { + media_withdrawn: "%s - 꺼낸 미디어: %s", + "media_withdrawn.with_dust": "%s - 꺼낸 미디어: %s (가루 %s개)", + media_inserted: "%s - 넣은 미디어: %s", + "media_inserted.with_dust": "%s - 넣은 미디어: %s (가루 %s개)", + all_media: "전체 내용", + infinite_media: "무한", + }, + + loot_hex: { + "shatter": "분쇄", + "kindle": "불붙이기", + "illuminate": "조명", + "growth": "성장", + "lunge": "돌진", + "sidestep": "회피", + "ascend": "상승", + "blink": "점멸", + "blastoff": "발사", + "radar": "탐지", + "beckon": "유인", + "detonate": "폭파", + "shockwave": "충격파", + "heat_wave": "열파", + "wither_wave": "위더 파동", + "flight_zone": "비행 영역", + }, + + // TODO: post-eigengrau make these less anticlimactic + message: { + cant_overcast: "그 주문문양에는 내가 가진 것보다 더 많은 미디어가 필요했다... 계산을 다시 확인해야겠다.", + cant_great_spell: "어째서인지 주문이 실패했다... 내 실력이 부족한 걸까?", + }, + + tooltip: { + spellbook: { + page: { + "": "선택한 페이지 %d/%d", + sealed: "선택한 페이지 %d/%d (%s)", + }, + page_with_name: { + "": "선택한 페이지 %d/%d (\"%s\")", + sealed: "선택한 페이지 %d/%d (\"%s\") (%s)", + }, + empty: { + "": "비어 있음", + sealed: "비어 있음 (%s)", + }, + sealed: "봉인됨", + }, + + scroll: { + needs_purchase: "구매하면 패턴 표시", + pattern_not_loaded: "인벤토리에 넣어 패턴 불러오기", + "recalc_warning.line1": "%s의 월드별 패턴이 아직 계산되지 않았습니다!", + "recalc_warning.line2": "/hexcasting recalcPatterns를 실행한 뒤 새 두루마리를 얻으세요.", + }, + + abacus: { + "": "%d", + reset: "0으로 초기화", + "reset.nice": "좋아", + }, + + circle: { + no_exit: "미디어의 흐름이 %s에서 출구를 찾지 못했다", + many_exits: "미디어의 흐름이 %s에서 너무 많은 출구를 가졌다", + no_closure: "미디어의 흐름은 %s의 원동석으로 돌아갈 수 없다", + }, + + lens: { + "pattern.invalid": "잘못된 패턴", + bee: { + "": "벌 %s마리", + single: "벌 %s마리", + }, + "impetus.redstone.bound": { + "": "%s에 연결됨", + none: "연결 안 됨", + }, + akashic: { + "bookshelf.location": "%s에 기록", + "record.count": { + "": "이오타 %s개 저장됨", + single: "이오타 %s개 저장됨", + }, + }, + }, + + brainsweep: { + min_level: "레벨 %s 이상", + level: "레벨 %s", + product: "정신 없는 몸", + }, + + media: "가루 %d개", + media_amount: "내용: %s (%s)", + "media_amount.advanced": "내용: %s/%s (%s)", + stored_hex: "주문문양: ", + + list_contents: "[%s]", + null_iota: "Null", + jump_iota: "[Jump]", + pattern_iota: "HexPattern(%s)", + boolean_true: "True", + boolean_false: "False", + }, + // ^ tooltip + spelldata: { + onitem: "내용: %s", + anything: "아무것", + unknown: "망가진 이오타", + "entity.whoknows": "알 수 없는 엔티티", + "akashic.nopos": "아카식 레코드는 이곳의 어떤 이오타도 알지 못한다(버그입니다)", + }, + + subtitles: { + casting: { + pattern: { + start: "패턴 시작", + add_segment: "선 추가", + }, + cast: { + fail: "변고가 으스러진다", + normal: "액션이 울린다", + spell: "주문이 튄다", + hermes: "헤르메스가 튕긴다", + thoth: "토트가 튕긴다", + }, + }, + + ambiance: "주문문양 격자가 울린다", + "staff.reset": "시전이 초기화된다", + + abacus: { + "": "주판이 딸깍인다", + shake: "주판이 흔들린다", + }, + "spellcircle.add_pattern": "마법진이 지직거린다", + "spellcircle.fail": "마법진이 꺼진다", + "scroll.dust": "두루마리가 가루로 덮인다", + "scroll.scribble": "두루마리에 휘갈겨 쓴다", + "impetus.fletcher.tick": "화살 제조인의 원동석이 째깍인다", + "impetus.redstone.register": "성직자의 원동석이 울린다", + "impetus.redstone.clear": "성직자의 원동석이 지워진다", + "lore_fragment.read": "전승 조각을 읽는다", + "flight.ambience": "플레이어가 난다", + "flight.finish": "비행이 끝난다", + }, + + attributes: { + grid_zoom: "시전 격자 크기", + media_consumption: "미디어 소비량", + ambit_radius: "플레이어 영향 반경", + sentinel_radius: "감시자 영향 반경", + // TODO: the +1 is kind of janky + scry_sight: "염시 시야", + feeble_mind: "나약한 정신" + }, + + // Action localizations + + action: { + "hexcasting:": { + "const/": { + "null": "무의 반사", + "true": "참의 반사", + "false": "거짓의 반사", + + "vec/": { + px: "벡터의 반사 +X", + py: "벡터의 반사 +Y", + pz: "벡터의 반사 +Z", + nx: "벡터의 반사 -X", + ny: "벡터의 반사 -Y", + nz: "벡터의 반사 -Z", + "0": "벡터의 반사 0", + }, + + "double/": { + pi: "호의 반사", + tau: "원의 반사", + "e": "오일러의 반사", + phi: "조화의 반사", + }, + }, + + get_caster: "정신의 반사", + "entity_pos/eye": "나침반의 정화", + "entity_pos/foot": "나침반의 정화 II", + get_entity_look: "시준기의 정화", + get_entity_height: "측고기의 정화", + get_entity_velocity: "보폭의 정화", + raycast: "궁수의 증류", + "raycast/axis": "건축가의 증류", + "raycast/entity": "정찰병의 증류", + + "circle/": { + impetus_pos: "길잡이돌의 반사", + impetus_dir: "자철석의 반사", + "bounds/min": "작은 접힘의 반사", + "bounds/max": "큰 접힘의 반사", + }, + + append: "통합의 증류", + unappend: "도출의 분해", + index: "선택의 증류", + singleton: "단일의 정화", + empty_list: "공백의 반사", + reverse: "역행의 정화", + last_n_list: "무리의 묘수", + splat: "무리의 붕괴", + index_of: "탐지자의 증류", + remove_from: "절제자의 증류", + slice: "선택의 고양", + replace: "외과의의 고양", + construct: "연설가의 증류", + deconstruct: "연설가의 분해", + + get_entity: "엔티티의 정화", + "get_entity/": { + animal: "엔티티의 정화: 동물", + monster: "엔티티의 정화: 몬스터", + item: "엔티티의 정화: 아이템", + player: "엔티티의 정화: 플레이어", + living: "엔티티의 정화: 생물", + }, + + zone_entity: "구역의 증류: 전체", + "zone_entity/": { + animal: "구역의 증류: 동물", + monster: "구역의 증류: 몬스터", + item: "구역의 증류: 아이템", + player: "구역의 증류: 플레이어", + living: "구역의 증류: 생물", + not_animal: "구역의 증류: 비동물", + not_monster: "구역의 증류: 비몬스터", + not_item: "구역의 증류: 비아이템", + not_player: "구역의 증류: 비플레이어", + not_living: "구역의 증류: 비생물", + }, + + swap: "광대의 묘수", + rotate: "회전의 묘수", + rotate_reverse: "회전의 묘수 II", + duplicate: "쌍둥이의 분해", + over: "탐광자의 묘수", + tuck: "장의사의 묘수", + "2dup": "디오스쿠로이의 묘수", + duplicate_n: "쌍둥이의 묘수", + stack_len: "무리의 반사", + fisherman: "낚시꾼의 묘수", + "fisherman/copy": "낚시꾼의 묘수 II", + swizzle: "사기꾼의 묘수", + + unique: "고유성의 정화", + and: "논리곱의 증류", + or: "논리합의 증류", + xor: "배타의 증류", + + greater: "최대의 증류", + less: "최소의 증류", + greater_eq: "최대의 증류 II", + less_eq: "최소의 증류 II", + equals: "동등의 증류", + not_equals: "부등의 증류", + type_equals: "유사성의 증류", + type_not_equals: "비유사성의 증류", + not: "부정의 정화", + bool_coerce: "예언자의 정화", + if: "예언자의 고양", + + add: "덧셈의 증류", + sub: "뺄셈의 증류", + mul: "곱셈의 증류", + div: "나눗셈의 증류", + abs: "길이의 정화", + pow: "거듭제곱의 증류", + floor: "내림의 정화", + ceil: "올림의 정화", + modulo: "나머지의 증류", + construct_vec: "벡터의 고양", + deconstruct_vec: "벡터의 붕괴", + sin: "사인의 정화", + cos: "코사인의 정화", + tan: "탄젠트의 정화", + arcsin: "역사인의 정화", + arccos: "역코사인의 정화", + arctan: "역탄젠트의 정화", + arctan2: "역탄젠트의 증류", + random: "엔트로피의 반사", + logarithm: "로그의 증류", + coerce_axial: "축의 정화", + + read: "필경사의 반사", + "read/entity": "연대기 작가의 정화", + "read/local": "무닌의 반사", + + write: "필경사의 묘수", + "write/entity": "연대기 작가의 묘수", + "write/local": "후긴의 묘수", + + readable: "감사자의 반사", + "readable/entity": "감사자의 정화", + writable: "평가자의 반사", + "writable/entity": "평가자의 정화", + "akashic/read": "아카샤의 증류", + "akashic/write": "아카샤의 묘수", + + print: "드러내기", + beep: "음 내기", + explode: "폭발", + "explode/fire": "화염구", + add_motion: "충격", + blink: "점멸", + break_block: "블록 파괴", + place_block: "블록 설치", + + "craft/cypher": "사이퍼 제작", + "craft/trinket": "장신구 제작", + "craft/artifact": "유물 제작", + "craft/battery": "약병 제작", + + recharge: "아이템 재충전", + erase: "아이템 지우기", + create_water: "물 생성", + destroy_water: "액체 파괴", + ignite: "점화", + extinguish: "범위 소화", + conjure_block: "블록 소환", + conjure_light: "빛 소환", + bonemeal: "과성장", + edify: "묘목 교화", + colorize: "안료 내면화", + cycle_variant: "시전자의 현혹", + + "sentinel/": { + create: "감시자 소환", + "create/great": "상급 감시자 소환", + destroy: "감시자 추방", + get_pos: "감시자 위치 찾기", + wayfind: "감시자 길찾기", + }, + + "potion/": { + weakness: "하얀 태양의 천저", + levitation: "푸른 태양의 천저", + wither: "검은 태양의 천저", + poison: "붉은 태양의 천저", + slowness: "초록 태양의 천저", + + regeneration: "하얀 태양의 천정", + night_vision: "푸른 태양의 천정", + absorption: "검은 태양의 천정", + haste: "붉은 태양의 천정", + strength: "초록 태양의 천정", + }, + + flight: "알티오라", + "flight/range": "은둔자의 비행", + "flight/time": "나그네의 비행", + "flight/can_fly": "비행사의 정화", + + lightning: "번개 소환", + summon_rain: "비 소환", + dispel_rain: "비 거두기", + create_lava: "용암 생성", + "teleport/great": "상급 순간이동", + brainsweep: "정신 벗기기", + + escape: "고려", + open_paren: "내성", + close_paren: "회상", + undo: "소실", + + eval: "헤르메스의 묘수", + "eval/cc": "이리스의 묘수", + for_each: "토트의 묘수", + halt: "카론의 묘수", + thanatos: "타나토스의 반사", + + "interop/": { + "gravity/": { + get: "중력의 정화", + set: "중력 변경", + }, + + "pehkui/": { + get: "걸리버의 정화", + set: "크기 변경", + }, + }, + }, + + // hexcasting.action.book.[resloc] override the name of that pattern in the patchi book, for abbreviations + "book.hexcasting:": { + get_entity_height: "측고기의 정화", + + "get_entity/": { + animal: "엔티티 정화: 동물", + monster: "엔티티 정화: 몬스터", + item: "엔티티 정화: 아이템", + player: "엔티티 정화: 플레이어", + living: "엔티티 정화: 생물", + }, + + zone_entity: "구역 증류: 전체", + "zone_entity/": { + animal: "구역 증류: 동물", + monster: "구역 증류: 몬스터", + item: "구역 증류: 아이템", + player: "구역 증류: 플레이어", + living: "구역 증류: 생물", + not_animal: "구역 증류: 비동물", + not_monster: "구역 증류: 비몬스터", + not_item: "구역 증류: 비아이템", + not_player: "구역 증류: 비플레이어", + not_living: "구역 증류: 비생물", + }, + + mul: "곱셈의 증류", + div: "나눗셈의 증류", + arcsin: "역사인의 정화", + arccos: "역코사인의 정화", + arctan: "역탄젠트의 정화", + arctan2: "역탄젠트의 증류", + + "const/vec/": { + x: "벡터 반사 +X/-X", + y: "벡터 반사 +Y/-Y", + z: "벡터 반사 +Z/-Z", + }, + + "read/entity": "연대기 작가의 정화", + bool_to_number: "수비학자의 정화", + number: "수치의 반사", + mask: "장부지기의 묘수", + }, + }, + // ^ action + + "special.hexcasting:": { + number: "수치의 반사: %s", + mask: "장부지기의 묘수: %s", + }, + + "iota.hexcasting:": { + null: { + "": "Null", + desc: "null 값", + }, + double: { + "": "숫자", + desc: "숫자", + }, + boolean: { + "": "논리값", + desc: "논리값", + }, + entity: { + "": "엔티티", + desc: "엔티티", + }, + list: { + "": "목록", + desc: "목록", + }, + pattern: { + "": "패턴", + desc: "패턴", + }, + garbage: { + "": "가비지", + desc: "가비지", + }, + vec3: { + "": "벡터", + desc: "벡터", + }, + continution: { + "": "계속", + desc: "점프 이오타", + }, + }, + + mishap: { + "": "%s: %s", + + invalid_pattern: "패턴 %s은(는) 어떤 액션에도 연결되어 있지 않다", + invalid_pattern_generic: "그 패턴은 어떤 액션에도 연결되어 있지 않다", + unescaped: "패턴을 평가해야 했지만 대신 %s을(를) 평가했다", + + not_enough_args: "인수가 %s개 이상 필요했지만 스택 높이는 %s뿐이었다", + no_args: "인수가 %s개 이상 필요했지만 스택이 비어 있었다", + needs_parens: "먼저 내성을 사용하지 않았다", + + wrong_dimension: "%2$s에서 %1$s을(를) 볼 수 없다", + entity_too_far: "%s은(는) 범위 밖이다", + immune_entity: "%s은(는) 바꿀 수 없다", + eval_too_much: "너무 많은 패턴을 평가했다", + no_item: "%s이(가) 필요하지만 아무것도 없었다", + "no_item.offhand": "다른 손에 %s이(가) 필요하지만 아무것도 없었다", + bad_entity: "%s이(가) 필요하지만 %s을(를) 얻었다", + bad_brainsweep: "%s이(가) 그 존재의 정신을 거부했다", + already_brainswept: "그 정신은 이미 사용되었다", + no_spell_circle: "마법진이 필요하다", + others_name: "%s의 영혼의 사생활을 침범하려 했다", + "others_name.self": "내 이름을 너무 무모하게 드러내려 했다", + + divide_by_zero: { + divide: "%s을(를) %s(으)로 나누려 했다", + project: "%s을(를) %s에 사영하려 했다", + exponent: "%s을(를) %s제곱하려 했다", + logarithm: "%s의 로그를 밑 %s로 구하려 했다", + + zero: { + "": "0", + power: "0제곱", + vec: "영벡터", + }, + power: "%s의 거듭제곱", + sin: "%s의 사인", + cos: "%s의 코사인", + }, + + invalid_operator_args: { + one: "스택 인덱스 %d에서 예상치 못한 이오타를 얻었다: %s", + many: "스택 인덱스 %d-%d에서 예상치 못한 이오타 %d개를 얻었다: %s", + }, + + no_akashic_record: "%s에 아카식 레코드가 없다", + disallowed: "%s은(는) 서버 관리자에 의해 금지되었다", + disallowed_generic: "그 패턴은 서버 관리자에 의해 금지되었다", + disallowed_circle: "%s은(는) 서버 관리자에 의해 마법진에서 금지되었다", + disallowed_circle_generic: "그 패턴은 서버 관리자에 의해 마법진에서 금지되었다", + invalid_spell_datum_type: "잘못된 타입의 값을 SpellDatum으로 사용하려 했다: %s (클래스 %s). 이것은 모드의 버그입니다.", + unknown: "예외(%s)를 던졌다. 이것은 모드의 버그입니다.", + stack_size: "스택 크기 제한을 초과했다", + bad_caster: "더 큰 정신이 필요한 패턴을 실행하려 했다", + + invalid_value: { + "": "스택 인덱스 %s에 %s이(가) 필요했지만 %s을(를) 얻었다: %s", + + class: { + double: "숫자", + boolean: "논리값", + vector: "벡터", + list: "목록", + pattern: "패턴", + continuation: "점프 이오타", + garbage: "가비지", + null: "null", + + entity: { + "": "엔티티", + mob: "몹", + item: "아이템 엔티티", + player: "플레이어", + living: "살아있는 엔티티", + }, + + entity_or_vector: "엔티티 또는 벡터", + + unknown: "(알 수 없음, 어라, 이건 버그다)", + }, + + numvec: "숫자 또는 벡터", + numlist: "정수 또는 목록", + "list.pattern": "패턴 목록", + + double: { + positive: { + "": "양수", + less: "%d보다 작은 양수", + "less.equal": "%d 이하의 양수", + }, + between: "%d와 %d 사이의 숫자", + }, + + int: { + "": "정수", + positive: { + "": "양의 정수", + less: "%d보다 작은 양의 정수", + "less.equal": "%d 이하의 양의 정수", + }, + between: "%d와 %d 사이의 정수", + }, + + evaluatable: "평가 가능한 것", + bool_commute: "논리값, 0, 또는 1", + }, + + location_: { + too_far: "%s은(는) 범위 밖이다", + out_of_world: "%s은(는) 월드 안에 있지 않다", + too_close_to_out: "%s은(는) 월드 경계에 너무 가깝다", + forbidden: "%s은(는) 당신에게 금지되어 있다", + bad_dimension: "이 차원은 그 액션을 금지한다", + }, + + bad_item: { + "": "%s이(가) 필요하지만 %d개의 %s을(를) 얻었다", + offhand: "다른 손에 %s이(가) 필요하지만 %d개의 %s을(를) 얻었다", + hotbar: "핫바 어딘가에 %s이(가) 필요하다", + + iota: { + "": "이오타를 저장할 장소", + read: "이오타를 읽어올 장소", + write: "이오타를 쓸 장소", + readonly: "%s을(를) 받아들일 장소", + }, + + media: "미디어를 담은 아이템", + media_for_battery: "원시 미디어 아이템", + only_one: "정확히 하나의 아이템", + eraseable: "지울 수 있는 아이템", + bottle: "유리병", + rechargable: "재충전 가능한 아이템", + colorizer: "안료", + variant: "변종이 있는 아이템", + placeable: "설치 가능한 아이템", + }, + + bad_block: { + "": "%2$s에 %1$s이(가) 필요했지만 %3$s을(를) 얻었다", + sapling: "묘목", + replaceable: "블록을 놓을 장소", + }, + + "circle.bool_directrix": { + no_bool: "%s에서 마주친 이오타는 논리값이 아니라 %s였다", + empty_stack: "%s에서 스택이 비어 있었다", + }, + }, + // ^ mishap + + circles: { + no_exit: "%s의 미디어 흐름이 출구를 찾지 못했다", + many_exits: "%s의 미디어 흐름에 출구가 너무 많았다", + }, + + + // === Patchi stuff! === + + + landing: "육각형 격자 위에 낯설고 거친 패턴을 그리는 새로운 마법 기술을 발견한 듯하다. \ + 마음을 사로잡는다. 내 생각과 발견을 기록하는 일지를 쓰기 시작하기로 했다.\ + $(br2)$(l:https://forum.petra-k.at/index.php)포럼 링크/$", + + category: { + basics: { + "": "시작하기", + desc: "이 기술의 수행자들은 $(l:items/staff)$(item)지팡이/$로 공중에 기묘한 패턴을 그려 이른바 $(hex)주문문양/$을 시전하거나, \ + 자신을 대신해 시전해 줄 $(l:items/hexcasting)$(item)강력한 마법 아이템/$을 만들었다고 한다. \ + 나도 같은 일을 하려면 어떻게 해야 할까?", + }, + casting: { + "": "육각술", + desc: "옛 대가들이 어떻게 $(hex)주문문양/$을 시전했는지 이해하기 시작했다! 조금 복잡하지만, \ + 분명 알아낼 수 있을 것이다. 어디 보자...", + }, + items: { + "": "아이템", + desc: "이 장에는 연구 중 마주칠 법한 마법적이고 신비한 아이템들을 기록한다.", + }, + + greatwork: { + "": "위대한 작업", + desc: "나는... 너무 많은 것을 보았다. 나는... 소멸과 분해와 재구성을... 겪었다. \ + 세계의 원자들이 뒤집히고 전복되고 에너지로 격하되며 비명을 지르는 것을 보았다. \ + 보았다 보았다 보았$(k)get stick bugged lmao/$", + // alwinfy you think you're so funny + }, + + lore: { + "": "전승", + desc: "내 기술과 직접 관련은 없는 편지와 글을 몇 가지 찾아냈다. \ + 하지만 이것들로 세계의 역사 일부를 짐작할 수 있을지도 모른다. 어디 보자...", + }, + + interop: { + "": "모드 간 호환성", + desc: "Hexcasting과 상호 작용하는 모드가 설치된 듯하다! 여기에 자세히 적어 두었다.", + }, + + patterns: { + "": "패턴", + desc: "내가 발견한 모든 패턴과 그 기능의 목록.", + }, + spells: { + "": "주문", + desc: "세계에 마법적 효과를 일으키는 패턴과 액션.", + }, + great_spells: { + "": "고위 주문", + desc: "여기에 기록한 주문들은 전설적인 난도와 힘을 지녔다고 전해진다. \ + 기록에 따르면 그것들은 $(l:items/scroll)드물게/$만 남겨진 듯하다(그럴 만한 이유가 있다고 문헌은 주장한다). \ + 그래 봤자 사라진 전통주의자들의 헛소리일 뿐일 것이다. 패턴은 패턴이니까.$(br2)\ + 무슨 일이 잘못될 수 있겠는가?", + }, + }, + // ^ categories + + entry: { + media: "미디어", + creative_items: "크리에이티브 전용 아이템", + geodes: "정동석", + couldnt_cast: "좌절", + start_to_see: "나는 무엇을 본 거지", + "101": "육각술 입문", + vectors: "벡터 입문서", + mishaps: "변고", + stack: "스택", + naming: "액션의 이름", + influences: "영향", + mishaps2: "깨달은 자의 변고", + amethyst: "자수정", + + staff: "지팡이", + lens: "염시 렌즈", + jeweler_hammer: "보석 세공 망치", + + thought_knot: "생각 매듭", + focus: "초점구", + abacus: "주판", + spellbook: "마도서", + + scroll: "두루마리", + slate: "석판", + + // why is this called "hexcasting"? + hexcasting: "시전 아이템", + ancient_cyphers: "고대 사이퍼", + phials: "미디어 약병", + potions: "육각술 물약", + pigments: "안료", + + edified: "교화된 나무", + decoration: "장식 블록", + + the_work: "작업", + brainsweeping: "정신 벗기기에 관하여", + spellcircles: "마법진", + impetus: "원동석", + directrix: "지향석", + akashiclib: "아카식 도서관", + quenching_allays: "알레이 진정시키기", + fanciful_staves: "화려한 지팡이", + + // and the actions + readers_guide: "이 장을 읽는 법", + // ops + basics_pattern: "기본 패턴", + numbers: "숫자 리터럴", + math: "수학", + advanced_math: "고급 수학", + sets: "집합", + consts: "상수", + stackmanip: "스택 조작", + logic: "논리 연산자", + entities: "엔티티", + lists: "목록 조작", + patterns_as_iotas: "패턴 이스케이프", + readwrite: "읽기와 쓰기", + meta: "메타 평가", + circle_patterns: "마법진 패턴", + akashic_patterns: "아카식 패턴", + + // spells + itempicking: "아이템 다루기", + basic_spell: "기본 주문", + blockworks: "블록 조작", + nadirs: "천저", + hexcasting_spell: "시전 아이템 제작", + sentinels: "감시자", + // internalize pigment uses the action name + flights: "비행", + + // great spells usually use the action name + weather_manip: "날씨 조작", + zeniths: "천정", + + lore: { + cardamom1: "카다멈 스틸스, #1", + cardamom2: "카다멈 스틸스, #2", + cardamom3: "카다멈 스틸스, #3", + cardamom4: "카다멈 스틸스, #4", + cardamom5: "카다멈 스틸스, #5", + experiment1: "울아이 사례 기록", + experiment2: "울아이 면담 기록", + inventory: "복원 기록 #72", + }, + + interop: { + "": "모드 간 상호작용", + gravity: "Gravity Changer", + pehkui: "Pehkui", + // TODO: add something about Switchy once that PR gets merged + // https://github.com/sisby-folk/switchy/pull/44 + // i can't WAIT for all the hilarious people on the github issues about this one + }, + }, + // ^ entries + + page: { + creative_items: { + "1": "$(italic)크리에이티브/$ 수단으로만 얻을 수 있는 기발한 아이템들을 발명했다.", + creative_unlocker: "$(#74b3f2)미디어 큐브/$는 거의 무한한 힘의 원천으로, 내가 시전하고 싶은 어떤 $(hex)주문문양/$에도 무한한 $(media)미디어/$ 공급원처럼 작용한다. 꽤 맛있어 보이기도 한다. 먹으면 세계에 대해 더 많은 것을 드러내고, 어쩌면 스포일러 영역으로 들어가게 할지도 모른다...", + "2": "게다가 모루에서 $(#74b3f2)미디어 큐브/$의 이름을 바꾸면 내 $(hex)주문문양/$을 더 시험하고 이해하는 데 활용할 수 있을 것 같다. 내가 어쩌다 세계에 대한 크리에이티브 권능을 얻었다면, 다음 중 무엇이든 시도하기 전에 그것을 꺼 두는 편이 좋을지도 모른다.", + debug_media: { + // do not localize 'debug media' in the title or description, the item must be named exactly that + // TODO: we can remove the title if hexdoc-dev/hexdoc#85 is implemented, since the title in Patchouli already defaults to the item name + title: "debug media", + desc: "$(#74b3f2)미디어 큐브/$의 이름을 'debug media'로 바꾸면 소비된 미디어량에 대한 피드백이 채팅창에 표시된다.", + }, + // NOTE: The following feature documented is broken in the current implementation. It should be uncommented and the page in patchouli should be updated when the feature is fixed. + //debug_patterns: "$(#74b3f2)미디어 큐브/$의 이름을 'debug patterns'로 바꾸면 실행된 패턴의 순서에 대한 피드백이 채팅창에 표시된다." + }, + media: { + "1": "$(media)미디어/$는 정신 바깥에 존재하는 정신 에너지의 한 형태다. 모든 생명체는 무언가를 생각할 때 미량의 $(media)미디어/$를 만들고, 생각이 끝나면 그 미디어는 환경으로 방출된다.$(br2)$(hex)주문문양/$을 시전하는 기술은 이 $(media)미디어/$를 조작해 내 뜻대로 움직이게 하는 것이다.", + "2": "$(media)미디어/$는 다른 미디어에 영향을 줄 수 있다. 그 영향의 강도와 종류는 $(media)미디어/$를 패턴으로 끌어내 그리는 방식으로 조작할 수 있다.$(p)이 기술의 학자들은 막대 끝에 농축된 $(media)미디어/$ 덩어리를 붙여 사용했다. 그것을 공중에서 정밀한 형태로 휘둘러, 세계 자체에 영향을 줄 만큼 충분한 $(media)미디어/$를 충분한 정밀도로 조작했고, 그것이 $(hex)주문문양/$이라는 형태가 되었다.", + "3": "슬프게도, 완전한 지성을 가진 존재(아마 나 같은 존재)라도 극히 미량의 $(media)미디어/$만 만들어낼 수 있다. 내 뇌력만으로 주문문양을 시전하려는 것은 매우 비현실적이다.$(br2)하지만 전설에 따르면 $(media)미디어/$가 서서히 축적되어 결정 형태로 자라나는 지하 광맥이 있다고 한다.$(p)그런 곳을 하나라도 찾을 수 있다면...", + }, + + geodes: { + "1": "아하! 땅속 깊은 곳을 채굴하다가 에너지와 공명하는 거대한 정동석을 찾았다. 그 에너지는 내 두개골과 생각을 짓눌렀다. 그리고 지금, 나는 그 압력을 고체의 형태로 손에 쥐고 있다. 증명됐다. 이곳이 전설에서 말하던 $(media)미디어/$가 축적되는 장소임이 $(italic)틀림없다/$. $(br2)이 $(l:items/amethyst)$(item)자수정 결정/$들은 $(l:items/amethyst)$(thing)$(media)미디어/$가 편리하게 굳어진 형태/$인 것이 분명하다.", + "2": "전에 보았던 $(l:items/amethyst)$(item)자수정 조각/$에 더해, 이 결정들은 가루가 된 $(l:items/amethyst)$(item)자수정 가루/$와 $(l:items/amethyst)$(item)충전된 자수정 결정/$도 떨어뜨릴 수 있는 듯하다. 행운이 붙은 곡괭이를 쓰면 $(l:items/amethyst)$(item)충전된 자수정 결정/$을 찾을 확률이 더 높아질 것 같다.", + "3": "결정의 아름다움을 바라보고 있자니, 내 마음속에서 연결들이 마구 번쩍이는 것이 느껴진다. 공기 중의 $(media)미디어/$가 내게 들어와 힘을 주고, 밝혀 주고, 명료하게 만드는 것 같다... 아주 황홀하다.$(br2)마침내, 비전에 대한 연구가 의미를 갖기 시작했다!$(p)이제 내가 무엇을 보고 있는지 알았으니 오래된 전설을 다시 읽어 보자.", + }, + + couldnt_cast: { + "1": "아악! 왜 주문을 시전하게 해 주지 않는 거지?!$(br2)내가 찾은 두루마리는 진짜의 울림을 지니고 있다. 두루마리 안에서 그것이 웅웅대는 것을 $(italic)느낄/$ 수 있다. 패턴은 참되다. 아니, 참될 수 있는 만큼 참되다. 주문은 $(italic)바로 거기/$ 있다.$(p)하지만 얇은 막 저편에 있는 것처럼 느껴진다. 나는 그것을 불렀고, 그것은 나타나려 했지만, 끝내 $(italic)그럴 수 없었다/$.", + "2": "내가 주문에 가한 힘 때문에 장벽이 아주 조금 약해진 것 같았다. 그러나 내 최대의 노력, 가장 깊은 집중, 최상의 자수정, 가장 정밀한 그림에도 불구하고 그것은 장벽을 넘기를 $(italic)거부/$한다. 미칠 노릇이다.$(p)내 비전 연구는 $(italic)이것/$으로 끝인가? 무력함에 저주받고, 마땅히 가질 힘을 잃은 채로?$(br2)숨을 깊이 쉬어야 한다. 많지는 않았더라도, 내가 배운 것을 명상해야 한다...", + "3": "...곰곰이 되돌아본 끝에... 내 안의 변화를 발견했다.$(p)아무래도... $(l:items/amethyst)$(item)자수정/$ 대신 내 정신과 생명 에너지로 주문을 시전하는 능력이 열린 듯하다. 오래된 전설에 적힌 그대로다.$(p)왜 이제 가능한지는 모르겠다. 그저... 진실-지식-짐은 늘 거기 있었고, 이제 나는 그것을 본다. 안다. 짊어진다.$(br2)다행히 내 한계도 느껴진다. 체력이 가득할 때 내 건강에서 대략 $(l:items/amethyst)$(item)충전된 자수정/$ 두 개분의 $(media)미디어/$를 얻을 수 있을 것이다.", + "4": "생각만 해도 몸서리쳐진다. 지금까지의 연구에서 내 정신은 대체로 온전했다. 하지만 사실은, 내가 가느다란 연결의 한쪽 끝을 이루고 있다는 것이다.$(p)나는 다른 쪽과 이어져 있다. 그 상처로 인해 경계가 얇아진 쪽, 단순한 행위들이 영원한 영광을 철자하는 곳.$(p)그것을 나 자신을 위해 바라는 것이 그토록 잘못된 일인가?", + }, + + start_to_see: { + "1": "문헌은 거짓말하지 않았다. 자연은 제 몫을 가져갔다.", + "2": "그건... 그건...$(p)...내가 $(italic)여태/$ 겪은 것 중 $(italic)최악/$에 가까운 일이었다. 자연에게 내 계획을 바쳤더니, 단단한 미소와 찢어지는 감각이 돌아왔다. 빗속의 자수정 가루처럼 내 일부가 떨어져 나갔다.$(p)그 일을 기록할 지혜가 남아 있는 것은커녕, $(italic)살아남은/$ 것만으로도 운이 좋다. 이 일은 끝난 것으로 하고, 앞으로 $(hex)주문문양/$을 시전하기 전에는 계산을 다시 확인하며, 다시는 이런 실수를 저지르지 말아야 한다.", + "3": "...하지만.$(br2)하지만 지극히 짧은 순간, 내 그 일부가... $(italic)보았다/$... $(l:greatwork/the_work)$(thing)무언가/$를. 장소, 아니 설계였을까? (...그것 앞에서는 그런 구분이 중요하지 않아 보였다.)$(p)그리고... 막-장벽-피부-경계가, 순수한 사고-흐름-빛-에너지의 영역과 나를 갈라놓고 있었다. 기억한다. 보았고-생각했고-떠올렸고-느꼈다. 그 장벽의 가장자리가 아주 살짝 흐려지는 것을.$(p)나는 $(italic)통과하고 싶었다./$", + "4": "그러면 안 된다. 그래서는 안 된다는 걸 $(italic)안다/$. 위험하다. 너무 위험하다. 필요한 힘은... $(italic)단 한 획/$으로 나 자신을 죽음 그 자체의 턱밑까지 데려가야 할 것이다.$(br2)하지만 나는. 너무. $(italic)가깝다/$.$(p)$(italic)이것/$이 내 기술의 정점이다. 내가 찾아온 $(#54398a)깨달음/$이다.$(br2)더 원한다. 다시 보아야 한다. 나는 $(italic)볼 것이다/$.$(p)불멸의 영광 앞에서 내 필멸의 정신이 무엇이란 말인가?", + }, + + casting: { + overview: { + "1": "무슨 일이든 첫발을 제대로 떼는 것이 좋다고 믿는다. 그래서 내가 바라보는 위치에 작은 폭발을 일으키는 $(hex)주문문양/$의 패턴을 정리했다. 이 $(hex)주문문양/$의 내부 작동을 살펴보면 꽤 좋은 공부가 될 것이다.", + }, + + grid: { + "1": "나는 보통 $(l:items/staff)$(item)지팡이/$를 통해 자연에게 패턴을 제공한다. \ + 손에 든 상태로 $(thing)$(k:use)/$를 누르면 내 앞에 점으로 이루어진 육각형 격자가 나타난다. \ + 그런 다음 클릭하고 점에서 점으로 끌었다가 놓아 패턴을 그릴 수 있다.$(br2)\ + 패턴을 제출하면 그것이 실행된다(다음 장 참조).", + "2": "$(thing)$(k:escape)/$를 누르면 격자가 저장되고 닫힌다. 다음에 지팡이를 사용할 때도 모든 패턴과 이오타가 그대로 남아 있을 것이다.$(br2)\ + 시전 상태를 초기화하고 싶다면, 웅크린 채 격자를 열면 된다.", + }, + "patterns&actions": { + "1": "$(thing)패턴/$은 $(media)미디어/$의 격자를 따라 그어지는 경로다. 패턴의 여섯 겹 대칭성이 내 기술에 이름을 붙인 것이라 생각한다.$(br2)\ + 한편 $(thing)액션/$은 패턴이 실제로 $(italic)하는/$ 일이다.", + "2": "그 차이는 $(italic)단어/$와 $(italic)의미/$의 차이와 비슷하다. \ + 아무 글자나 뒤섞어도 단어는 되지만, 대부분은(예컨대 \"xnopyt\"처럼) 아무 의미가 없다. \ + 마찬가지로 $(media)미디어/$를 통해 잡아당긴 아무 낙서나 기술적으로는 패턴이지만, 대부분은 아무 일도 하지 않는다.", + "3": "액션은 우주를 지배하는 거대한 체계의 규칙(어떤 문헌에서는 이를 \"자연\"이라 의인화했다)에 내리는 명령과 비슷하다. \ + 대체로 다음 중 하나를 수행한다:\ + $(li)엔티티의 위치를 찾는 것처럼 세계에 관한 정보를 모은다.\ + $(li)두 위치 사이의 거리를 찾는 것처럼 모은 정보를 조작한다.\ + $(li)번개나 폭발을 소환하는 것처럼 세계에 마법적 효과를 일으킨다.$(br)\ + 이 마지막 종류의 액션을 \"주문\"이라 부르며, 보통 사람들이 이 기술에 끌리는 이유다.", + "4": "그렇다면 $(hex)주문문양/$은 유효한 패턴들을 순서대로 자연에게 제시한 것이다. \ + 자연은 이 패턴들을 하나씩 해석하고, 이해한다면 내 변덕에 맞춰 세계를 바꾼다. \ + (또는 자연이 내 변덕이라고 생각한 것에 맞춰서.)", + "5": "어떤 액션은 쉽게 수행할 수 있지만, 어떤 액션은 응집된 $(media)미디어/$ 형태의 대가를 요구한다. \ + 나는 이 농축된 정신 에너지가 자연을 설득하는 일종의 논거로 쓰여, 내가 요청한 일을 실제로 하게 만든다고 믿는다. \ + 대부분의 주문은 이런 지불을 요구하지만, 일부 주문이 아닌 액션도 그렇다.$(br2)\ + 비용이 있다면 각 액션의 해당 페이지에 기록해 두었다.", + }, + iotas: { + "1": "자연의 언어에서 \"명사\"에 해당하는 것을 $(thing)이오타/$라고 부른다. \ + 가장 기본적인 수준에서 육각술은 이오타를 조작하는 기술이다.$(br2)\ + 이오타에는 여러 종류가 있다:\ + $(li)숫자(일부 전설에서는 \"더블\"이라 불렀다).\ + $(li)위치, 움직임, 방향을 나타내는 세 숫자의 모음인 벡터.\ + $(li)추상적인 True 또는 False를 나타내는 논리값, 줄여서 \"bool\".\ + $(li)나 자신, 닭, 광산 수레 같은 엔티티.", + "2": "$(li)추상적인 생각을 나타내는 듯한 특이한 이오타 유형인 영향.\ + $(li)마법 아이템 제작이나 $(italic)다른 주문을 시전하는 주문/$ 같은 정말 정신 아득한 위업에 쓰이는 패턴 자체.\ + $(li)위의 것 여럿을 하나의 이오타로 묶은 목록.", + "3": "일반적으로 나는 액션에 이오타를 제공한다. \ + 예를 들어 $(l:patterns/spells/basic#hexcasting:explode)$(action)폭발/$을 보자. \ + 이 주문은 위력을 나타내는 숫자 이오타와 위치를 나타내는 벡터 이오타가 필요하다.$(br2)\ + 또는 $(l:patterns/basic#hexcasting:get_pos)$(action)나침반의 정화/$를 보자. \ + 이것은 엔티티 이오타를 받아 그 엔티티의 위치를 나타내는 벡터 이오타로 변환한다.", + }, + }, + + // Casting + "101": { + "1": "$(hex)주문문양/$을 시전하는 것은 꽤 어렵다. 이 기술이 세월 속에 사라진 것도 무리가 아니다! 기록을 꼼꼼히 다시 읽어야겠다.$(br2)손에 $(l:items/staff)$(item)지팡이/$를 들고 $(k:use)를 누르면 $(hex)주문문양/$을 시작할 수 있다. 그러면 내 앞에 육각형 점 격자가 나타난다. 이후 점에서 점으로 클릭하고 끌어 격자의 $(media)미디어/$에 패턴을 그릴 수 있다. 패턴을 완성하면 그에 해당하는 액션이 실행된다(자세한 건 뒤에서).", + "2": "주문을 시전할 만큼 충분한 패턴을 그리면, 저장해 둔 $(media)미디어/$가 방출되며 격자가 사라진다. $(l:items/staff)$(item)지팡이/$를 사용할 때 $(k:sneak)를 누르고 있어도 격자를 비울 수 있다.$(br2)그렇다면 패턴은 어떻게 작동하는가? 짧게 말하면:$(li)$(italic)패턴/$이 실행하는 것은...$(li)$(italic)액션/$이고, 액션이 조작하는 것은...$(li)$(l:casting/stack)$(italic)스택/$이며, 스택은...$(li)$(italic)이오타/$의 목록이다. 이오타는 단순한 정보 단위다.", + "3": "먼저 $(thing)패턴/$이다. 이것들은 필수적이다. 내 주변의 $(media)미디어/$를 조작하는 데 쓰는 것이 바로 패턴이다. 특정 패턴을 그리면 $(thing)액션/$이 일어난다. 실제로 마법을 $(italic)행하는/$ 것은 액션이다. 모든 패턴은 특정한 방식으로 $(media)미디어/$에 영향을 주며, 그 영향이 유용한 일을 하게 되면 우리는 그것을 액션이라 부른다.$(br2)$(media)미디어/$는 변덕스럽다. 잘못된 패턴을 그리면 스택 어딘가에 $(l:casting/influences)$(action)가비지/$ 결과가 생긴다(계속 읽어 보자...).", + "4.header": "예시", + "4": "흥미롭게도 패턴의 $(italic)회전/$은 전혀 문제가 되지 않는 듯하다. 예를 들어 이 두 패턴은 둘 다 $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$라는 액션을 수행한다.", + "5": "$(hex)주문문양/$은 (유효한) 액션들을 순서대로 그려 시전한다. 각 액션은 대체로 다음 중 하나를 한다:$(li)환경에 대한 정보를 모아 스택 맨 위에 남긴다.$(li)모은 정보를 조작한다(예: 두 숫자를 더한다).$(li)번개나 폭발을 소환하는 것처럼 마법적 효과를 일으킨다. (이런 액션을 \"주문\"이라 부른다.)$(p)$(hex)주문문양/$ 시전을 시작하면 빈 스택이 만들어진다. 액션은 그 스택의 맨 위를 조작한다.", + "6": "예를 들어 $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$는 $(italic)나/$, 즉 시전자를 나타내는 이오타를 만들어 스택 맨 위에 추가한다. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)나침반의 정화/$는 스택 맨 위의 이오타가 엔티티를 나타낸다면 그것을 그 엔티티의 위치를 나타내는 이오타로 바꾼다.$(br2)따라서 이 패턴들을 그 순서로 그리면, 스택에는 내 위치를 나타내는 이오타가 남는다.", + "7": "$(thing)이오타/$는 나 자신이나 내 위치 같은 것을 나타낼 수 있지만, $(thing)액션/$으로 조작할 수 있는 다른 종류도 여럿 있다. 전체 목록은 다음과 같다:$(li)숫자(일부 전설에서는 \"더블\"이라 불렀다).$(li)벡터, 세계의 위치, 움직임, 방향을 나타내는 세 숫자의 묶음.$(li)논리값 또는 줄여서 \"bool\", 추상적인 True 또는 False를 나타낸다.", + "8": "$(li)나 자신, 닭, 광산 수레 같은 엔티티.$(li)영향, 추상적인 개념을 나타내는 듯한 독특한 이오타 유형.$(li)패턴 자체. 마법 아이템 제작이나 $(italic)다른 주문을 시전하는 주문/$ 같은 정말 정신 나간 위업에 사용된다.$(li)위의 것 여러 개를 하나의 이오타로 모은 목록.", + "9": "물론 공짜 점심 같은 것은 없다. 모든 주문과 일부 다른 액션은 대가로 $(media)미디어/$를 요구한다.$(br2)내가 이해하기로, $(hex)주문문양/$은 자연에게 제시하는 행동 계획과 조금 비슷하다. 이 비유에서 $(media)미디어/$는 그 계획을 뒷받침하는 논거를 제공해, 자연이 내 계획을 받아들이고 실행하게 만든다.", + "10": "그와 별개로, 특정 $(l:items/amethyst)$(item)자수정/$ 조각 하나가 정확히 $(italic)얼마나/$ 가치 있는지 제대로 연구한 사람은 별로 없는 듯하다. 내가 알기로 $(l:items/amethyst)$(item)자수정 조각/$ 하나는 $(l:items/amethyst)$(item)자수정 가루/$ 약 다섯 개분, $(l:items/amethyst)$(item)충전된 자수정 결정/$은 약 열 개분의 가치가 있다.$(br2)이상하게도 다른 형태의 $(l:items/amethyst)$(item)자수정/$은 $(hex)주문문양/$ 시전에 쓰기에 적합하지 않은 듯하다. 블록이나 결정 전체는 $(media)미디어/$로 쉽게 풀어내기엔 너무 단단한 것 같다.", + "11": "각 액션은 필요한 $(media)미디어/$를 주문문양이 끝날 때 한꺼번에가 아니라 즉시 소비한다는 점도 중요하다. 또한 액션은 항상 아이템 전체를 소비한다. $(l:items/amethyst)$(item)자수정 가루/$ 하나분의 $(media)미디어/$만 필요한 액션이라도, 인벤토리에 $(l:items/amethyst)$(item)충전된 자수정 결정/$만 있다면 그 전체를 소비한다.$(br2)그러니 주문 시전을 위해 가루도 가져가는 것이 좋겠다. 낭비하지 않으면 부족하지도 않다...", + "12": "인벤토리에 자수정이 충분한지 실제로 확인하는 것도 조심해야 한다. 오래된 문헌들은 자연이 대신 자신의 정신을 대가로 쓰는 것을 기꺼워한다고 말한다. 그 감각은 끔찍하지만 묘하게 황홀하며, \"[...] 빛과 에너지로 거품처럼 녹아드는...\" 느낌이라고 한다. 어쩌면 그래서 옛 수행자들이 모두 미쳐 버렸는지도 모른다. 힘을 위해 내 정신 조각을 태우는 일이 $(italic)건강/$할 리는 없다.", + "13": "하지만 무언가 변했을지도 모른다. 내 실험에서는 그런 일을 한 번도 해내지 못했다. $(media)미디어/$가 떨어지면, 마치 나를 해치지 못하게 막는 장벽이 있는 것처럼 주문은 그냥 시전에 실패한다.$(br2)그 수수께끼의 진상을 파헤치는 것도 흥미롭겠지만, 당장은 나를 안전하게 지켜 줄 것 같다.", + "14": "마법 수행자들이 대체로 왜 그렇게 많이 미쳐 보이는지에 관한 흥미로운 이야기도 찾았다. 내 세계의 정사는 아니지만 가볍고 풍미 있는 읽을거리로 마음에 들지도 모른다.$(br2)$(italic)내용 경고: 약간의 신체 공포와 암시적인 요소./$", + "14.link_text": "Goblin Punch", + "15": "마지막으로, 주문의 영향 범위는 내 위치에서 약 32블록 정도가 최대인 듯하다. 그 밖의 것에 영향을 주려 하면 주문은 실패한다.$(br2)그럼에도 플레이어의 참조가 있으면 어디서든 그들에게 영향을 줄 수 있다. 다만 이는 직접 영향을 주는 경우에만 해당한다. 대상이 내 범위 밖에 있으면, 이것으로 그 주변 세계에 영향을 줄 수는 없다.$(br)그런 참조를 건넬 때는 조심해야 한다. 우호적인 $(hex)육각술사/$는 그것을 매우 유용하게 쓸 수 있겠지만, 악의적인 누군가가 그것으로 무엇을 할지 생각하면 몸서리쳐진다.", + }, + + vectors: { + "1": "연구에서 어디까지든 나아가려면 벡터에 능숙해야 할 것 같다. 벡터를 다루는 법을 모를 때를 대비해 여기 자료를 모아 두었다.$(br2)먼저 이 주제에 관한 깨우침을 주는 영상이다.", + "1.link_text": "3blue1brown", + "2": "또한 $(thing)Psi 에너지/$를 조작하던 마법사들, 이른바 \"주문총잡이\"들은 형편없는 작명 감각에도 불구하고 수련생들에게 꽤 효과적인 벡터 수업을 남긴 듯하다. 다음 페이지에 그들의 문헌 하나를 링크해 두었다.$(br2)그들은 주문 시전에 다른 용어를 사용한 것 같다:$(li)\"주문 조각\"은 액션을 뜻했다.$(li)\"트릭\"은 주문을 뜻했다.$(li)\"연산자\"는 주문이 아닌 액션을 뜻했다.", + "3": "링크는 여기.", + "3.link_text": "Psi Codex", + }, + + mishaps: { + "1": "안타깝게도 나는 (아직) 완벽한 존재가 아니다. $(hex)주문문양/$을 연구하고 시전하다 보면 가끔 실수를 한다. 예를 들어 패턴을 잘못 그리거나, 잘못된 이오타로 액션을 호출하려는 식이다. 그리고 자연은 보통 내 실수를 곱게 보지 않아, 이른바 $(italic)변고/$를 일으킨다.", + "2": "변고를 일으키는 패턴은 내 격자에서 붉게 빛난다. 실수의 종류에 따라 해로운 효과와 붉고 다채로운 불꽃이 튀는 것도 기대할 수 있다. 잘못 다뤄진 $(media)미디어/$가 특정 색의 빛으로 엉겨 붙기 때문이다.", + "3": "다행히 변고의 나쁜 효과들은 분명 $(italic)성가시지만/$ 장기적으로 특별히 파괴적인 것은 없다. 먼지를 털고 다시 시도하는 수밖에 없다... 그래도 더 잘하려고 노력해야 한다.$(br2)다음은 내가 정리한 변고 목록이다.", + + "invalid_pattern.title": "잘못된 패턴", + invalid_pattern: "그린 패턴이 어떤 액션에도 연결되어 있지 않다.$(br2)노란 불꽃을 일으키며, $(l:casting/influences)$(action)가비지/$ 하나가 내 스택 맨 위로 밀려 들어간다.", + + "not_enough_iotas.title": "이오타 부족", + not_enough_iotas: "액션이 스택에 있는 것보다 더 많은 이오타를 요구했다.$(br2)밝은 회색 불꽃을 일으키며, 인수 개수를 채우는 데 필요한 만큼의 $(l:casting/influences)$(action)가비지/$가 밀려 들어간다.", + + "stack_size.title": "이오타 과다", + "stack_size": "스택 크기 제한을 초과하는 주문을 시전하려 했다.$(br2)검은 불꽃을 일으키며, 내 스택 전체가 단 하나의 $(l:casting/influences)$(action)가비지/$로 대체된다.", + + "incorrect_iota.title": "잘못된 이오타", + incorrect_iota: "실행된 액션은 인수로 특정 타입의 이오타를 기대했지만, 잘못된 것을 받았다. 잘못된 이오타가 여럿이면 오류 메시지는 스택 가장 깊은 곳의 오류만 알려 준다.$(br2)짙은 회색 불꽃을 일으키며, 잘못된 이오타가 $(l:casting/influences)$(action)가비지/$로 대체된다.", + + "vector_out_of_range.title": "영향 범위 밖 벡터", + vector_out_of_range: "액션이 내 범위 밖의 지점에서 세계에 영향을 주려 했다.$(br2)자홍색 불꽃을 일으키며, 내 손의 아이템들이 문제의 위치를 향해 잡아당겨져 날아간다.", + + "entity_out_of_range.title": "영향 범위 밖 엔티티", + entity_out_of_range: "액션이 내 범위 밖의 엔티티에 영향을 주려 했다.$(br2)분홍색 불꽃을 일으키며, 내 손의 아이템들이 문제의 엔티티를 향해 잡아당겨져 날아간다.", + + "entity_immune.title": "면역인 엔티티", + entity_immune: "액션이 그것으로는 바꿀 수 없는 엔티티에 영향을 주려 했다.$(br2)파란 불꽃을 일으키며, 내 손의 아이템들이 문제의 엔티티를 향해 잡아당겨져 날아간다.", + + "math_error.title": "수학적 오류", + math_error: "액션이 0으로 나누기처럼 수학 법칙에 불쾌한 일을 저질렀다.$(br2)붉은 불꽃을 일으키고, $(l:casting/influences)$(action)가비지/$를 내 스택에 밀어 넣으며, 내 정신이 깎여 남은 활력의 절반을 빼앗긴다. 자연은 그런 연산에 모욕을 느끼고 보복으로 $(italic)나/$를 나누는 듯하다.", + + "incorrect_item.title": "잘못된 아이템", + incorrect_item: "액션에는 어떤 아이템이 필요했지만, 내가 제공한 아이템은 적합하지 않았다.$(br2)갈색 불꽃을 일으킨다. 문제의 아이템이 내 손에 있었다면 바닥으로 던져지고, 엔티티 형태였다면 공중으로 날아간다.", + + "incorrect_block.title": "잘못된 블록", + incorrect_block: "액션은 대상 위치에 어떤 블록이 필요했지만, 제공된 블록은 적합하지 않았다.$(br2)밝은 초록 불꽃을 일으키고, 주어진 위치에 덧없는 폭발을 일으킨다. 그 폭발은 나나 세계, 그 밖의 어떤 것에도 피해를 주지 않는 듯하다. 그냥 놀라게 할 뿐이다.", + + "needs_parens.title": "내성 부재", + needs_parens: "먼저 $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$을 그리지 않고 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$ 또는 $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)소실/$을 그리려 했다.$(br2)주황 불꽃을 일으키며, 내가 그리려 한 패턴을 패턴 이오타로 스택에 밀어 넣는다.", + + "too_many_patterns.title": "생각에 잠김", + too_many_patterns: "한 $(hex)주문문양/$ 안에서 너무 많은 패턴을 평가하려 했다. 대개 실수로 무한 루프를 만든 경우에 일어난다.$(br2)짙은 파란 불꽃을 일으키며, 내 숨을 모두 막아 버린다.", + + "true_name.title": "타자 침범", + true_name: "다른 플레이어에 대한 참조를 영구 매체에 $(l:patterns/readwrite#hexcasting:write)$(action)저장/$하려 했다.$(br2)검은 불꽃을 일으키며, 약 1분 동안 내 시야를 빼앗는다.", + + "disabled.title": "금지된 액션", + disabled: "서버 관리자가 금지한 액션을 시전하려 했다.$(br2)검은 불꽃을 일으킨다.", + + "other.title": "치명적 실패", + other: "모드의 버그로 인해 잘못된 타입의 이오타가 생겼거나 주문이 충돌했다. $(l:https://github.com/gamma-delta/HexMod/issues)버그를 보고해 주세요!/$$(br2)검은 불꽃을 일으킨다.", + }, + + stack: { + "1": "$(thing)스택/$, 또는 \"LIFO\"는 컴퓨터 과학에서 빌려온 개념이다. 간단히 말해 가장 최근에 사용한 것에만 접근할 수 있도록 설계된 모음이다.$(br2)위로 새 접시를 쌓는 접시 더미를 생각해 보자. 중간쯤에 있는 접시를 다루려면, 그것을 잡기 위해 위의 접시들을 먼저 치워야 한다.", + "2": "스택은 매우 단순하기 때문에 할 수 있는 일도 많지 않다:$(li)$(italic)무언가를 추가하기/$, 공식적으로는 푸시라고 한다.$(li)$(italic)마지막으로 추가한 요소를 제거하기/$, 팝이라고 한다.$(li)$(italic)마지막으로 추가한 요소를 살펴보거나 수정하기/$, 피크라고 한다.$(br)저녁 접시 비유에 따라, 마지막으로 추가된 요소를 스택의 \"맨 위\"라고 부른다.$(p)예를 들어 스택에 1을 푸시하고, 그다음 2를 푸시한 뒤 팝하면, 스택 맨 위는 이제 1이다.", + "3": "액션은 (대체로) 이런 방식으로 시전 스택과 상호작용하도록 제한된다. 액션은 관심 있는 이오타들(\"인수\" 또는 \"매개변수\"라고도 한다)을 팝하고, 처리한 뒤, 일정 수의 결과를 푸시한다.$(br2)물론 일부 액션($(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$ 등)은 인수를 전혀 팝하지 않을 수도 있고, 일부 액션(특히 주문)은 이후 아무것도 푸시하지 않을 수도 있다.", + "4": "더 복잡한 액션도 푸시, 팝, 피크의 관점으로 표현할 수 있다. 예를 들어 $(l:patterns/stackmanip#hexcasting:swap)$(action)광대의 묘수/$는 스택 맨 위 두 항목을 맞바꾼다. 이는 두 항목을 팝한 뒤 반대 순서로 푸시하는 것으로 생각할 수 있다. 또 $(l:patterns/stackmanip#hexcasting:duplicate)$(action)쌍둥이의 분해/$는 스택 맨 위를 복제한다. 즉, 스택을 피크하고 발견한 것의 사본을 푸시한다.", + }, + + naming: { + "1": "고대인들이 액션에 붙인 이름은 확실히 기묘하지만, 나름의 논리가 있다고 생각한다.$(br2)스택에서 제거하고 추가하는 이오타의 수에 따라 공통 이름이 붙은 액션 그룹들이 있는 듯하다.", + "2": "$(li)$(thing)반사/$는 아무것도 팝하지 않고 이오타 하나를 푸시한다.$(li)$(thing)정화/$는 하나를 팝하고 하나를 푸시한다.$(li)$(thing)증류/$는 둘을 팝하고 하나를 푸시한다.$(li)$(thing)고양/$은 셋 이상을 팝하고 하나를 푸시한다.$(li)$(thing)분해/$는 인수 하나를 팝하고 둘을 푸시한다.$(li)$(thing)붕괴/$는 하나를 팝하고 셋 이상을 푸시한다.$(li)마지막으로 $(thing)묘수/$는 다른 수를 푸시하거나 팝한다(또는 스택을 다른 방식으로 재배열한다).", + "3": "주문은 이 명명법에서 제외되는 듯하며, 대체로 하는 일에 따라 이름이 붙는다. 결국 $(l:patterns/spells/basic#hexcasting:explode)$(action)폭발/$이라고 말할 수 있는데 굳이 $(action)폭파병의 묘수/$라고 부를 이유가 있을까?", + }, + + influences: { + "1": "영향은... 좋게 말해도 이상하다. 대부분의 이오타가 세계에 관한 무언가를 나타내는 듯한 반면, 영향은 더... 추상적이거나 형태 없는 것을 나타낸다.$(br2)예를 들어 내가 $(l:casting/influences)$(thing)Null/$이라고 이름 붙인 영향 하나는 아무것도 나타내지 않는 듯하다. 하늘을 향한 $(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$처럼 질문에 적절한 답이 없을 때 만들어진다.", + "2": "또한 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$, $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$, $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)소실/$이라 이름 붙인 흥미로운 네 가지 영향도 발견했다. 이들은 패턴과 다른 영향 양쪽의 성질을 지닌 듯하지만, 매우 다르게 작동한다. 이것들을 사용하면 패턴을 액션에 맞추는 대신 이오타로 스택에 추가할 수 있다. $(l:patterns/patterns_as_iotas)이 주제에 관한 내 기록은 여기 있다/$.", + "3": "마지막으로, 그저 $(media)미디어/$가 뒤엉킨 난장판처럼 보이는 무한한 영향 계열이 있는 듯하다. 완전히 쓸모없기 때문에 나는 그것들을 $(l:casting/influences)$(action)가비지/$라고 이름 붙였다. 이들은 $(l:casting/mishaps)$(thing)변고/$에 대한 반응으로 스택 곳곳에 나타나는 듯하며, 내 감각에는 무의미한 뒤죽박죽으로 보인다.", + }, + + mishaps2: { + "1": "새롭고 끔찍한 실패의 방식들을 발견했다. 그것들에 굴복해서는 안 된다.", + + "bad_mindflay.title": "비활성 정신 벗기기", + bad_mindflay: "이미 사용했거나 대상 블록에 적합하지 않은 존재의 정신을 벗기려 했다.$(br2)짙은 초록 불꽃을 일으킨다. 이미 사용한 대상은 즉사하고, 단순히 부적합한 대상은 약간 피해를 입는다.", + + "no_circle.title": "마법진 없음", + no_circle: "마법진이 필요한 액션을 마법진 없이 시전하려 했다.$(br2)밝은 파란 불꽃을 일으키며, 내 인벤토리를 땅에 쏟아 버린다.", + + "no_record.title": "아카식 레코드 없음", + no_record: "$(l:greatwork/akashiclib)$(item)아카식 레코드/$가 없는 위치에서 그것에 접근하려 했다.$(br2)보라색 불꽃을 일으키며, 내 경험치를 조금 훔쳐 간다.", + + "bad_shepherd.title": "부적절한 양치기", + bad_shepherd: "스택 맨 위에 논리값이 없는 상태에서 $(l:greatwork/directrix)$(item)양치기의 지향석/$을 작동시키려 했다.$(br2)붉고 흰 불꽃을 일으키며, 양치기의 지향석을 마법진에서 강제로 밀어낸다. 다행히 파괴되지는 않지만, 반드시 주워서 제자리에 되돌려 두어야 한다.", + }, + + + // Items + + amethyst: { + dust: "정동석 안의 결정을 부수면 세 가지 다른 형태의 자수정을 찾을 수 있는 듯하다. 가장 작은 단위는 반짝이는 가루 한 줌으로 보이며, 비교적 적은 양의 $(media)미디어/$에 해당한다.", + shard: "두 번째는 온전한 자수정 조각으로, $(hex)육각술사/$가 아닌 사람들에게 익숙한 형태다. 여기에는 $(l:items/amethyst)$(item)자수정 가루/$ 약 다섯 개분의 $(media)미디어/$가 들어 있다.", + crystal: "마지막으로, 드물게 에너지가 딱딱거리는 큰 결정을 찾을 수 있다. 여기에는 $(l:items/amethyst)$(item)자수정 가루/$ 약 열 개분(또는 $(l:items/amethyst)$(item)자수정 조각/$ 두 개분)의 $(media)미디어/$가 들어 있다.", + lore: "$(italic)노인은 한숨을 쉬고 불을 향해 손을 들었다. 그는 주변 산들의 기억을 품은 뇌의 일부를 열었다. 테리시아 시에서 드라프나, 허킬, 대주교, 그리고 상아탑의 다른 마법사들에게 배웠듯, 그 땅들에서 에너지를 끌어냈다. 그가 집중하자 장작에서 솟아오른 불꽃이 몸부림치며 스스로 뒤틀렸고, 마침내 부드러운 미소의 형태를 이루었다./$", + }, + + staff: { + "1": "$(l:items/staff)$(item)지팡이/$는 크고 작은 모든 $(hex)주문문양/$ 시전의 출발점이다. 그것을 들고 $(thing)$(k:use)/$를 누르면 $(hex)주문문양/$ 시전을 시작하고, 클릭 후 드래그해 패턴을 그릴 수 있다.$(br2)막대 끝에 붙은 $(media)미디어/$ 덩어리나 다름없지만, 결국 필요한 것은 그것뿐이다.", + "crafting.header": "지팡이", + "crafting.desc": "$(italic)다투지 말라. 불꽃, 빛, 점화, 밝게 타올라라./$", + }, + + lens: { + "1": "$(media)미디어/$는 특정한 상황에서 어떤 종류의 정보에도 특이한 영향을 미칠 수 있다. 유리에 얇은 막으로 입히면... 깨우침을 주는 통찰로 이어질 수 있다.$(br2)$(l:items/lens)$(item)염시 렌즈/$를 손에 들면 특정 블록을 바라볼 때 추가 정보가 표시된다.", + "2": "예를 들어 $(item)레드스톤/$ 조각을 보면 신호 세기가 표시된다. 내 기술 연구가 진전되면 추가 통찰을 제공하는 다른 블록들도 발견하게 될 것 같다.$(br2)또한 $(l:items/staff)$(item)지팡이/$로 시전하는 동안 이것을 들고 있으면 점 사이 간격이 줄어들어 격자에 더 많이 그릴 수 있다.$(br2)이상한 외눈안경처럼 머리에 착용할 수도 있다.", + "crafting.desc": "$(italic)배워야 한다... 네가 바라보는 것을 보기 위해./$", + }, + + thought_knot: { + "1": "잘 잊는 사람들은 중요한 일을 기억하려고 손가락에 실을 묶곤 한다. 이 발상은 내 기술에도 쓸모가 있을 것 같다. 특별하게 묶은 실 조각은 내 스택과 무관하게 단 하나의 이오타를 안정적으로 붙잡을 수 있을 것이다.$(br2)나는 이 발명품을 $(item)생각 매듭/$이라 부르겠다.", + "2": "제작했을 때 이것은 아무 이오타도 저장하지 않는다. 다른 손에 $(item)생각 매듭/$을 들고 $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$를 사용하면 스택 맨 위가 제거되어 $(item)생각 매듭/$에 저장된다. $(l:patterns/readwrite#hexcasting:read)$(action)필경사의 반사/$를 사용하면 $(item)생각 매듭/$ 안의 이오타가 복사되어 스택에 추가된다.$(br2)한번 $(item)생각 매듭/$에 기록되면 실은 지울 수 없게 얽힌다. 이오타는 몇 번이고 읽을 수 있지만, 지우거나 덮어쓸 방법은 없다. 다행히 비싸지는 않다.", + "3": "또한 엔티티를 $(item)생각 매듭/$에 저장한 뒤, 참조된 엔티티가 죽거나 사라진 후에 다시 불러오려 하면 $(l:patterns/readwrite#hexcasting:read)$(action)필경사의 반사/$는 대신 $(l:casting/influences)$(thing)Null/$을 스택에 추가한다.", + "crafting.desc": "$(italic)누군가가 \"나는 멋지고 잘생겼다\"라고 적힌 팻말을 네가 달고 있는 것을 보면 어떤 기분일까?/$", + }, + + focus: { + "1": "$(item)초점구/$는 $(l:items/thought_knot)$(item)생각 매듭/$처럼 이오타를 쓰고 읽을 수 있다. 하지만 초점구의 장점은 $(italic)재사용 가능/$하다는 점이다. $(item)초점구/$에 쓴 이오타가 잘못되었다면, 다시 $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$를 시전해 안의 이오타를 덮어쓰면 된다.", + "2": "$(l:items/focus)$(item)초점구/$가 실수로 덮어써지는 것을 막고 싶다면, $(item)벌집 조각/$과 함께 제작해 밀랍으로 봉인할 수 있다. 봉인된 초점구에 $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$를 사용하려 하면 실패한다.$(br2)$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)아이템 지우기/$는 내용과 함께 이 봉인도 제거한다.", + "3": "사실 내 $(l:items/thought_knot)$(item)생각 매듭/$이 $(item)초점구/$보다 나은 유일한 점은 $(item)초점구/$가 더 비싸다는 것뿐이다. 내 연구에 따르면 이 기술의 초기 수행자들은 오직 $(item)초점구/$만 사용했고, $(l:items/thought_knot)$(item)생각 매듭/$은 내 독창적인 발명품인 듯하다.$(br2)그 고대인들이 누구였든 매우 부유했을 것이다.", + "crafting.desc": "$(italic)독 사과, 독 벌레./$", + }, + + abacus: { + "1": "$(l:patterns/numbers)$(action)숫자를 그리는 패턴/$이 있기는 하지만, 솔직히 말해... 번거롭다.$(br2)다행히도 내 기술의 옛 대가들은 시전에 숫자를 제공하는 $(l:items/abacus)$(item)주판/$이라는 기발한 장치를 발명했다. 원하는 숫자로 맞춘 뒤, $(l:items/thought_knot)$(item)생각 매듭/$이나 $(l:items/focus)$(item)초점구/$를 읽듯 $(l:patterns/readwrite#hexcasting:read)$(action)필경사의 반사/$로 값을 읽으면 된다.", + "2": "조작하려면 그냥 들고, 웅크리고, 스크롤하면 된다. 주 손에 들고 있으면 값은 1씩 증가하거나 감소하며, $(k:sprint)를 함께 누르고 있으면 10씩 변한다. 보조 손에 들고 있으면 값은 0.1씩 증가하거나 감소하며, $(k:sprint)를 함께 누르면 0.001씩 변한다.$(br2)웅크린 채 우클릭하면 주판을 흔들어 0으로 초기화할 수 있다.", + "crafting.desc": "$(italic)수학? 그건 범생이나 하는 거지!/$", + }, + + spellbook: { + "1": "$(l:items/spellbook)$(item)마도서/$는 내 기술의 집대성이다. $(l:items/focus)$(item)초점구/$들의 도서관 전체처럼 작용한다. 정확히 말하면 최대 $(thing)예순네/$ 개까지다.$(br2)각 페이지는 하나의 이오타를 담을 수 있고, 손에 들고 웅크린 채 스크롤하거나, 보조 손에 들고 $(hex)주문문양/$을 시전하는 동안 스크롤해 활성 페이지(이오타를 저장하고 복사해 오는 페이지)를 선택할 수 있다.", + "2": "$(l:items/focus)$(item)초점구/$처럼 실수로 덮어쓰는 것을 막는 간단한 방법이 있다. $(item)벌집 조각/$과 함께 제작하면 현재 페이지가 칠해져 $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$가 그 내용을 바꾸지 못하게 한다. 또한 $(l:items/focus)$(item)초점구/$와 마찬가지로, $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)아이템 지우기/$를 사용하면 페이지 내용과 함께 칠도 제거된다.$(br2)모루에서 각 페이지에 개별적으로 이름을 붙일 수도 있다. 이름을 붙이면 쉽게 찾아볼 수 있도록 현재 선택한 페이지의 이름만 바뀐다.", + "crafting.desc": "$(italic)마법사들은 말을 사랑한다. 그들 대부분은 책을 많이 읽고, 실제로 무언가를 읽지 않고는 잠들 수 없다는 것은 잠재적 마법사의 강한 징후 중 하나다.", + }, + + scroll: { + "1": "$(l:items/scroll)$(item)두루마리/$는 패턴을 다른 이들과 공유하는 편리한 방법이다. $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$로 패턴을 복사할 수 있고, 이후 툴팁에 표시된다.$(br2)또한 장식이나 교화 용도로 그림처럼 벽에 걸 수 있으며, 크기는 1x1부터 3x3 블록까지 가능하다. 그런 두루마리에 $(l:items/amethyst)$(item)자수정 가루/$를 사용하면 획순이 표시된다.", + "2": "또한 세계의 던전과 요새에서 이른바 $(l:items/scroll)$(item)고대 두루마리/$를 찾을 수도 있다. 여기에는 $(thing)고위 주문/$의 획순이 들어 있다. 필멸자의 손과 정신에는 너무 강력하다고 전해지는 막강한 마법들이다...$(br2)그 \"필멸자\"들이 그것을 시전하지 못했다면, 과연 알 자격은 있었을까.", + "crafting.desc": "$(italic)나는 깨끗한 흰 양피지 위에 날카로운 깃펜과 제자들의 피로 쓰며, 그들의 비밀을 점친다./$", + }, + + slate: { + "1": "$(l:items/slate)$(item)석판/$은 $(l:items/scroll)$(item)두루마리/$와 비슷하다. 패턴을 복사한 뒤 세계에 놓아 패턴을 표시할 수 있다.$(br2)하지만 $(l:items/slate)$(item)석판/$의 거대한 집합에 대한 희미한 이야기를 읽은 적이 있다. $(l:items/staff)$(item)지팡이/$로는 감당할 수 없는 강력한 $(l:greatwork/spellcircles)$(thing)대의식/$을 시전하는 데 쓰였다고 한다.", + "2": "아마 시간이 지나면 이 지식이 내게 드러날 것이다. 하지만 지금은 소박한 장식품이라고 생각해 두자.$(br2)적어도 $(l:items/scroll)$(item)두루마리/$와 달리 블록의 어느 면에든 놓을 수 있다.", + "crafting.desc": "$(italic)이것은 글자 \"a\"다. 배워라./$", + "3": "나는 다른 종류의 $(l:items/slate)$(item)석판/$도 알고 있다. 패턴은 없지만 다른... 기묘한... 이상한 것들이 박혀 있는 듯한 석판들이다. 그것들을 생각하면 머리가 아프다. 내 생각이 그 설계 주위로 휘어져, 그 경로를 따라가고, 미궁 같은 깊이 속을 구부러지고 씨실처럼 지나가며, 통과하고 통과하고 통과하여 흐르고 처리되고--$(br2)...거의 나를 잃을 뻔했다. 이것들에 대한 연구는 미뤄야겠다.", + }, + + // roll credits + hexcasting: { + "1": "$(l:items/staff)$(item)지팡이/$로 $(hex)주문문양/$을 \"즉석에서\" 시전할 수 있는 유연성은 매우 유용하지만, 기본적인 일 하나를 하려고 그것을 반복해서 휘두르는 것은 엄청나게 귀찮다. 흔한 주문을 저장해 나중에 재사용할 수 있다면 훨씬 간단해지고, 친구들과 내 $(hex)주문문양/$을 공유할 수도 있을 것이다.", + "2": "이를 위해 세 종류의 마법 아이템 중 하나를 제작할 수 있다: $(l:items/hexcasting)$(item)사이퍼/$, $(l:items/hexcasting)$(item)장신구/$, 또는 $(l:items/hexcasting)$(item)유물/$. 모두 특정 $(hex)주문문양/$의 패턴과 $(media)미디어/$가 담긴 작은 배터리를 내부에 보관한다.$(br2)그것을 들고 $(thing)$(k:use)/$를 누르기만 하면, 내부 배터리를 사용해 지팡이로 직접 시전한 것처럼 안의 패턴들이 시전된다.", + "3": "각 아이템에는 고유한 특징이 있다:$(br2)$(l:items/hexcasting)$(item)사이퍼/$는 취약해서 내부 $(media)미디어/$ 비축량이 사라지면 파괴되며, 재충전할 수 $(italic)없다/$.$(br2)$(l:items/hexcasting)$(item)장신구/$는 남은 $(media)미디어/$가 충분한 한 소유자가 원하는 만큼 시전할 수 있지만, 이후 재충전될 때까지 쓸모없어진다.", + "4": "$(l:items/hexcasting)$(item)유물/$은 그중 가장 강력하다. $(media)미디어/$가 고갈된 뒤에는 내가 $(l:items/staff)$(item)지팡이/$로 시전할 때처럼 소유자의 인벤토리에 있는 $(l:items/amethyst)$(item)자수정/$을 사용해 $(hex)주문문양/$의 대가를 지불할 수 있다. 물론 이는 $(l:items/amethyst)$(item)자수정/$이 충분하지 않으면 주문이 그들의 정신을 소비할 수도 있다는 뜻이기도 하다.$(br2)평범한 제작대에서 빈 마법 아이템을 만든 뒤, 해당 아이템에 맞는 주문으로 (그 밖에 무엇이 있겠는가) $(hex)주문문양/$을 주입한다. $(l:patterns/spells/hexcasting)그 패턴들은 여기에 정리했다./$", + "5": "각 주입 주문은 스택에 엔티티와 패턴 목록을 요구한다. 엔티티는 $(media)미디어/$를 담은 아이템 엔티티여야 한다(즉, 땅에 떨어진 $(l:items/amethyst)$(item)자수정/$ 결정). 이 엔티티는 소비되어 배터리를 이룬다.$(br2)유용하게도 배터리 속 $(media)미디어/$는 $(l:items/staff)$(item)지팡이/$로 시전할 때처럼 덩어리째 소비되지 않는다. 오히려 $(media)미디어/$가 하나의 연속된 웅덩이로 \"녹아든다\". 따라서 $(l:items/amethyst)$(item)자수정 가루/$ 하나분의 미디어만 드는 $(hex)주문문양/$을 저장한다면, 배터리로 사용한 $(l:items/amethyst)$(item)충전된 결정/$은 그것을 10번 시전하게 해 줄 것이다.", + "crafting.desc": "$(italic)우리 분야에는 \"마법은 아니다\"라는 말이 있다. 그것은 \"그냥 작동\"하지도 않고, 생각에 반응하지도 않으며, 화염구를 던지거나 무에서 구운 저녁을 만들거나 강도 떼를 개구리와 달팽이로 바꿀 수도 없다./$", + }, + + ancient_cyphers: { + "1": "모험 중에 고대의 육각술사들이 만든 것으로 보이는 $(l:items/hexcasting)$(item)사이퍼/$를 마주쳤다. 이 $(item)고대 사이퍼/$들은 내가 제작할 수 있는 것과 똑같이 작동한다. 재충전할 수 없고, $(media)미디어/$ 비축량이 다하면 부서진다. 하지만 내 $(l:items/hexcasting)$(item)사이퍼/$와 달리, 그 낡은 구조 덕분에 안에 저장된 $(hex)주문문양/$을 엿볼 수 있다.", + "2": "이것들은 새로운 기술을 배우는 데 유용할지도 모른다. 이 기술의 고대 대가들보다 누가 더 잘 가르쳐 주겠는가?$(br2)또는 그 내용물을 지우고 내 $(hex)주문문양/$을 안에 저장해, 기능이 명확히 보이는 시전 아이템을 만들 수도 있다.", + "3": "이 유물에 구워 넣어진 $(l:items/pigments)$(item)안료/$는 보라색과 주황색의 독특한 혼합으로, 구리와 자수정의 외형에 잘 어울린다. 위 레시피로 재현할 수 있다.", + }, + + phials: { + "1": "자연이 내 일에 거스름돈을 주지 않는다는 사실은 꽤... 짜증난다. 손에 $(l:items/amethyst)$(item)충전된 자수정/$밖에 없다면, 가장 사소한 $(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$조차 결정 전체를 소비해 남은 $(media)미디어/$를 낭비한다.$(br2)다행히 이 문제를 어느 정도 달랠 방법을 찾은 듯하다.", + "2": "$(media)미디어/$가 주입된 $(item)유리병/$을 설명하는 오래된 두루마리를 찾았다. $(hex)주문문양/$을 시전할 때 내 주문들은 약병에서 $(media)미디어/$를 끌어낼 것이다. 액체 형태의 $(media)미디어/$는 말하자면 정확한 거스름돈을 받을 수 있게 해 주어, 아무것도 낭비되지 않는다. $(l:items/hexcasting)$(item)장신구/$의 내부 배터리와 꽤 비슷하다. 같은 방식으로 $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)재충전/$할 수도 있다.", + "3": "안타깝게도 그것을 실제로 $(italic)만드는/$ 기술은 세월 속에 사라진 듯하다. $(l:patterns/great_spells/make_battery#hexcasting:craft/battery)$(thing)제작에 사용된 패턴의 힌트/$는 찾았지만, 그 기법은 짜증날 만큼 붙잡히지 않고 성공하지도 못한다. 그래도 연구와 연습을 통해 알아낼 수 있을 것이다. 당분간은 낭비되는 $(media)미디어/$를 감수하겠다...$(br2)하지만 영원히 받아들이지는 않을 것이다.", + desc: "$(italic)우유를 마셔라./$", + }, + + potions: { + "1": "$(l:items/lens)$(item)염시 렌즈/$를 들여다보면 시전 격자에 더 많은 패턴을 넣을 수 있다. 하지만 시전을 더 향상시키고 싶다면? 연금술에 답이 있다.$(br2)$(item)어색한 물약/$에 자수정 가루 한 꼬집을 더하면, 렌즈와 비슷한 방식으로 격자 크기를 늘리는 양조물을 만들 수 있다. 둘을 동시에 쓰면 궁극의 격자도 가능하다!", + "2": "명료의 물약은 다른 물약처럼 연장, 강화, 변형할 수 있다.$(br2)또한 $(item)발효된 거미 눈/$으로 오염시켜 반대 효과를 가진 변종을 만들 수도 있다. 적대적인 시전자에게 대응하는 데 유용할지도 모른다.", + "effects.header": "명료와 혼탁", + }, + + pigments: { + "1": "내 기술의 옛 수행자들은 때때로 자신과 자신의 $(hex)주문문양/$을 상징하는 색으로 스스로를 식별했다. 그들의 이름은 희미해졌지만 색은 남았다. 올바른 방식으로 자연에게 바치는 특별한 종류의 안료는 \"[...] 자연이 기뻐할 방식으로 생각을 칠해 개인의 색에 기적적인 변화를 유도한다\"고 한다.", + "2": "세부 사항은 확실치 않지만, 여러 색과 안료 혼합의 공식을 분리해낸 것 같다. 안료를 적용하려면 한 손에 안료를 들고 다른 손으로 $(l:patterns/spells/colorize)$(action)안료 내면화/$를 시전한다. 그러면 안료가 소비된다.$(br2)안료는 내가 $(hex)주문문양/$을 시전할 때 방출되는 $(media)미디어/$ 불꽃과 $(l:patterns/spells/sentinels)$(thing)감시자/$의 색에 영향을 주는 듯하지만, 그 색이 다른 곳에도 나타날 것이라고 의심하지 않는다.", + + "colored.crafting.header": "색채 안료", + "colored.crafting.desc": "무지개의 모든 색을 담은 안료.", + + special: "그리고 마지막으로, 특별한 안료 한 쌍이 있다. $(item)영혼빛 안료/$는 나만의 완전히 고유한 색으로 빛나고, $(item)공백 안료/$는 원래의 자수정빛을 되돌린다.$(br2)$(italic)그리고 내 안의 모든 색은 아직 발명되지 않았다./$", + }, + + edified: { + "1": "$(l:patterns/spells/blockworks#hexcasting:edify)$(action)묘목 교화/$를 사용해 묘목에 $(media)미디어/$를 주입하면 $(l:items/edified)$(thing)교화된 나무/$라 불리는 것을 만들 수 있다. 보통 키가 크고 뾰족하며, 껍질에는 홈이 있고 나무는 이상한 나선 무늬로 자란다. 잎은 세 가지 예쁜 색을 띤다.", + "2": "그 목재에는 $(hex)육각술/$과 관련된 어떤 성질이 있을 것이라 생각했다. 하지만 있다 해도 찾을 수 없다. 실질적으로는 매우 이상한 색의 나무일 뿐인 듯하다.$(br2)일단은 장식으로 쓰게 될 것 같다. 표준 목재 블록 세트 전체를 이 나무로 제작할 수 있다.$(br2)물론 도끼로 껍질을 벗길 수도 있다.", + "crafting.desc": "$(italic)흰 껍질을 지닌 매끄러운 줄기들은 그늘과 침묵으로 가득한 거대한 잎무더기의 무게를 떠받치는 거대한 기둥 같은 효과를 주었다./$", + }, + + jeweler_hammer: { + "1": "$(media)미디어/$의 원천을 너무 여러 번 부주의하게 다룬 끝에, 내 서투름을 보완할 도구를 고안했다.$(br2)결정화된 $(media)미디어/$의 섬세한 성질을 곡괭이의 고정부로 이용해 $(l:items/jeweler_hammer)$(item)보석 세공 망치/$를 만들 수 있다. 대체로 $(item)철 곡괭이/$처럼 작동하지만, 블록 공간 전체를 차지하는 것은 부술 수 없다.", + "crafting.desc": "$(italic)그녀는 조심스럽게 반쪽 루비를 깨뜨려 스프렌을 풀어 주었다./$", + }, + + decoration: { + "1": "연구 과정에서 미적으로 마음에 들 만한 건축 블록과 자질구레한 물건들을 발견했다. 만드는 방법을 여기에 정리했다.", + "ancient_scroll.crafting.desc": "갈색 염료는 $(l:items/scroll)$(item)고대 두루마리/$의 외형을 흉내 내기에 충분하다.", + "tiles.crafting.desc": "$(l:items/decoration)$(item)자수정 타일/$은 석재 절단기로도 만들 수 있다.$(br2)$(l:items/decoration)$(item)자수정 가루 블록/$ (다음 페이지)은 모래처럼 떨어진다.", + "sconce.crafting.desc": "$(l:items/decoration)$(item)자수정 벽등/$은 빛과 입자를 내며, 듣기 좋은 종소리도 낸다.", + }, + + + // The Work + + the_work: { + "1": "나는 너무 많은 것을 보았다. 말로 할 수 없는 것들. 셀 수 없는 것들. 세 단어만 써도 내 정신을 뒤집어, 뇌를 두개골의 그림진 벽에 문질러 보풀과 무로 썩게 할 수 있을 것 같다.", + "2": "눈꺼풀 안쪽에 단속적인 바늘 패턴과 산으로 새긴 도식이 쓰인 것을 보았다. 그것들은 그곳에서 그을리고, 춤추고, 조롱하며, $(italic)아프다/$. 나는 그것들을 그리고 만들고 빚어내야 한다는 강렬한 $(italic)욕구/$에 사로잡혔다. 필멸의 정신이라는 끈적한 족쇄에서 해방시켜, 그 영광을 세상에 드러내 모두가 보게 해야 한다.$(p)모두가 볼 것이다.$(p)모두가 보게 될 것이다.", + }, + + brainsweeping: { + "1": "비밀이 내게 드러났다. 나는 보았다. 그 공포를 잊을 수 없다. 그 생각이 내 뇌를 기어다닌다.$(br2)나는 믿었다. 아, 어리석게도 $(media)미디어/$가 생각 뒤에 남은 잉여 에너지라고 $(italic)믿었다/$. 하지만 이제 그것이 무엇인지 $(italic)안다/$. 그것은 생각$(italic)의/$ 에너지다.", + "2": "그것은 생각하는 지성에 의해 생산되고, 지성이 생각할 수 있게 한다. 그것은 자기 자신의 실로 땋여 묶이는 매듭이다. 내가 순진하게 자연이라 의인화했던 엔티티는 그저 그런 거대한 엉킴, 혹은 모든 엉킴의 집합, 또는... 생각하면 아프다. 내게는 시냅스가 너무 많고 그 모든 것이 동시에 고통을 생각할 수 있다. 모두가 볼 수 있다$(br2)붙잡고 있을 수 없다. 기록. 빨리.", + "3": "이 세계의 주민들에게는 추출할 만큼의 의식이 남아 있다. 그것을 블록에 넣고, 비틀고, 바꾼다. 서로 다른 사고 패턴이 만든 복잡한 무늬, 그들의 직업과 삶의 추상적 신경 경로가 차가운 고체 원자의 물리 속에 사상된다.$(br2)이것이 $(l:patterns/great_spells/brainsweep)$(action)정신 벗기기/$가 하는 일, 추출이다. 주민 엔티티와 목적지 블록을 대상으로 삼는다. 이 의지의 왜곡에는 $(l:items/amethyst)$(item)충전된 자수정/$ 열 개가 든다.", + budding_amethyst: "그리고 응용. 이 벗기기에는 충분히 성장한 주민이라면 어떤 종류든 된다. 다른 제조법은 더 구체적인 유형을 요구한다. 더 이상 $(media)미디어/$를 위해 지옥 같은 땅속으로 내려갈 필요는 없다.", + }, + + spellcircles: { + "1": "나는 $(l:items/slate)$(item)석판/$이 무엇을 위한 것인지 안다. 세월 속에 사라진 거대한 집합들. 그 위에 새긴 패턴들은 자동으로 순서대로 작동될 수 있다. 생각과 힘이 하나씩 하나씩 하나씩 하나씩 통과하고 또 통과하고 또 통과하며 튕겨 나간다. 안 된다 안 된다 그렇게 생각하면 안 된다는 걸 알아야 한다.", + "2": "의식을 시작하려면 자립하는 $(media)미디어/$의 파동을 만드는 $(l:greatwork/impetus)$(item)원동석/$이 필요하다. 그 파동은 $(l:items/slate)$(item)석판/$이나 다른 적합한 블록의 궤도를 따라 이동하며, 만나는 모든 패턴을 시전한다.$(br2)파동이 $(l:greatwork/impetus)$(item)원동석/$으로 돌아갈 길이 없다면 시전은 즉시 실패한다. 또한 주어진 블록에서 파동이 빠져나가는 방향은 반드시 명확해야 하며, 이웃이 너무 많은 블록에서는 실패한다.", + "3": "결과적으로 주문 \"원\"의 윤곽은 닫힌 형태라면 오목하든 볼록하든 상관없고, 어떤 방향을 향해도 된다. 사실 특정 다른 블록을 적용하면 세 차원 전체에 걸친 마법진도 만들 수 있다. 그런 기묘함이 얼마나 쓸모 있을지는 의심스럽지만, 내 조잡한 정신이 작업을 계속하도록 격려하려면 약간의 공허한 유쾌함을 허락해야 한다.", + "4": "기적 중의 기적이다. 원은 내 인벤토리에서도, 내 정신에서도 $(media)미디어/$를 끌어오지 않는다. 대신 결정화된 $(media)미디어/$ 파편을 호퍼나 다른 장치로 $(l:greatwork/impetus)$(item)원동석/$에 공급해야 한다.$(br2)$(l:items/lens)$(item)염시 렌즈/$를 사용하면 $(l:greatwork/impetus)$(item)원동석/$ 안에 있는 $(media)미디어/$ 양을 가루 단위로 볼 수 있다.", + "5": "하지만 원에서 시전된 주문에는 큰 제한이 하나 있다. 원의 경계 밖에 있는 어떤 것에도 영향을 줄 수 없다. 즉, 원을 구성하는 모든 블록을 둘러싸는 최소 크기의 직육면체 밖에 있는 것과는 상호작용할 수 없다(따라서 오목한 마법진은 오목한 부분 안의 것에는 여전히 영향을 줄 수 있다).", + "6": "파동이 붕괴하기 전에 통과할 수 있는 블록 수에도 제한이 있지만, 충분히 커서 문제될 일은 없을 것 같다.$(br2)반대로 원에서만 시전할 수 있는 액션도 있다. 다행히 그중 주문은 없고, 모두 원 자체의 구성 요소를 다루는 듯하다. 이 주제에 대한 내 기록은 $(l:patterns/circle)여기/$ 있다.", + "7": "내 기록 속에서 고대인들이 쓰던 마법진의 스케치도 찾아냈다. 이 페이지 맞은편에 있는 것은 내가 (인정하건대 형편없이) 베껴 놓은 것이다.$(br2)그곳의 패턴들은 반시계 방향으로 실행되었을 것이며, $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$로 시작해 $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)상급 순간이동/$으로 끝났을 것이다.", + "teleport_circle.title": "순간이동진", + }, + + impetus: { + "1": "마법진을 작동시키는 데 필요한 $(media)미디어/$의 요동은 복잡하다. 가장 날카로운 눈과 가장 안정된 손을 가진 필멸자라도 $(l:greatwork/impetus)$(item)원동석/$이 되어 자립적인 우로보로스가 요구하는 $(media)미디어/$를 엮을 수는 없다.$(br2)문제는 정신이 다른 쓸모없는 $(italics)가비지/$로 너무 가득 차 있다는 점이다.", + "2": "...형이상학적 수준에서 말하자면, 이런 생각은 조심해야 한다. 나를 잃을 수는 없다. 나는 너무 귀중해졌다. $(media)미디어/$를 움직이면 정신이 움직이고, 이 과정이 작동하려면 정신이 움직여야 한다. 하지만 정신은 다른 생각들로 너무 $(italic)무겁기/$ 때문에 충분히 민첩하게 움직일 수 없다.$(br2)장인이 장갑을 끼고 시계를 고치려는 것과 같다.", + "3": "이 난제에는 몇 가지 해결책이 있다. 명상 기법을 통해 마음을 비우는 법을 배울 수는 있겠지만, 원을 작동시킬 만큼 자유로운 정신이 그 동작을 해낼 만큼 세게 집중할 수 있을지는 확신이 없다.$(br2)어떤 불쾌한 화합물들이 비슷한 효과를 낼 수 있지만, 나는 그것들을 알지 못하고 배울 생각도 없다. 내 뇌의 화학물질에 의존해서는 안 된다.", + "4": "그렇다면 내가 노리는 해결책은 정신을 특화하는 것이다. 신경의 폭정에서 떼어 내고, $(media)미디어/$ 조작 장치의 섬세한 펼침을 제외한 모든 출력을 잘라 내며, 작업을 시작하라는 신호를 제외한 모든 입력을 지져 막는다.$(br2)이제 익숙해진 $(l:greatwork/brainsweeping)$(action)정신 벗기기/$ 과정이 훌륭히 해낼 것이다. 주민의 정신은 작업을 수행할 만큼 복잡하지만, 재형성에 저항할 만큼 복잡하지는 않다.", + + empty_impetus: "먼저, 요람이다. $(l:greatwork/impetus)$(item)원동석/$으로 작동하지는 않지만, 원 안의 $(media)미디어/$ 흐름은 화살표가 가리키는 면으로만 빠져나간다. 예를 들어 이를 통해 파동이 흐르는 평면을 바꿀 수 있다.", + impetus_rightclick: "다음은 정신을 옮기는 일이다. 서로 다른 직업의 주민들은 결과로 생기는 $(l:greatwork/impetus)$(item)원동석/$에 서로 다른 작동 조건을 부여한다. $(l:greatwork/impetus)$(item)도구 대장장이의 원동석/$은 단순한 $(k:use)로 활성화된다.", + impetus_storedplayer: { + "1": "$(l:greatwork/impetus)$(item)성직자의 원동석/$은 레드스톤 신호를 받으면 활성화된다. 블록에 $(l:items/focus)$(item)초점구/$처럼 해당 플레이어에 대한 참조가 담긴 아이템을 사용해 플레이어에 연결할 수 있다.", + "2": "이 $(l:greatwork/impetus)$(item)원동석/$의 특이한 점은, 연결된 플레이어와 그 주변의 작은 영역이 항상 마법진에 접근 가능하다는 것이다. 그들이 아무리 멀리 서 있어도 원의 경계 안에 서 있는 것과 같다.$(br2)$(l:items/lens)$(item)염시 렌즈/$를 통해 $(l:greatwork/impetus)$(item)성직자의 원동석/$을 보면 연결된 플레이어가 표시된다.", + }, + impetus_look: "$(l:greatwork/impetus)$(item)화살 제조인의 원동석/$은 잠시 바라보면 활성화된다.", + }, + + directrix: { + "1": "자립적인 $(media)미디어/$ 파동을 만드는 일보다 간단한 것은 그것을 지시하는 일이다. 보통 파동은 갈림길에 이르면 붕괴하지만, 안내할 정신이 있으면 출구 방향을 제어할 수 있다.$(br2)이 조작은 마법진을 작동시키는 섬세함에 비하면 그리 정교하지 않다. 사실 손으로도 가능할지 모른다... 하지만 지금 내가 접근할 수 있는 포장된 정신들은 너무나 편리할 것이다.", + "2": "$(l:greatwork/directrix)$(item)지향석/$은 $(media)미디어/$의 파동을 받아 내부의 주민 정신에 따라 어느 화살표로 빠져나갈지 결정한다.$(br2)이 발상이 내게 내려진 것인지, 아니면 내 정신이 이제 장벽 주변으로 충분히 휘어져 스스로의 발상을 갈라낼 수 있게 된 것인지는 확신할 수 없다... 하지만 발상이 내 정신에서 나왔고, 내가 그것을 생각했다면, 그것을 내려받았다고 말할 수 있을까? 뇌는 정신의 그릇이고 정신은 발상의 그릇이며 발상은 생각을 담고 생각은 모든 것을 보고 모든 것을 안다-- 해서는 안 된다", + + empty_directrix: "첫째, 요람의 설계... 다만 \"기질\"이라는 말이 더 정확할지도 모른다. 정신이 안내하지 않으면 출력 방향은 $(media)미디어/$ 파동과 주변의 미세한 요동에 의해 결정되어, 사실상 무작위가 된다.", + directrix_redstone: "$(l:greatwork/directrix)$(item)석공의 지향석/$은 레드스톤 신호에 따라 출력 면을 전환한다. 신호가 없으면 출구는 $(media)미디어/$ 색 면이고, 신호가 있으면 출구는 레드스톤 색 면이다.", + directrix_boolean: "$(l:greatwork/directrix)$(item)양치기의 지향석/$은 스택에서 팝한 논리값에 따라 출력 면을 전환한다. $(thing)True/$는 파동을 뒤쪽으로, $(thing)False/$는 앞쪽으로 내보낸다. 논리값을 전혀 제공하지 못하면 변고가 발생한다." + }, + + akashiclib: { + "1": "나는 너무 많이 안다. 그것을 모두 저장할 장소가 있는 것이 오직 옳다. 정보는 책에 저장할 수 있지만, 손으로 쓰고 눈으로 읽는 것은 아아 너무 너무 너무 너무 $(italic)느리다/$. 나는 더 나은 것을 요구한다. 그러니 더 나은 것을 만들 것이다.$(br2)...나는 악화되고 있다... 숨이 끊어지기 전에 머릿속에서 터져 나오는 모든 것을 쓸 시간이 있는지 모르겠다.", + "2": "도서관. 여기. 내 계획.$(br2)패턴이 액션에 연결되듯, 나는 내 패턴을 내가 원하는 방식으로 이오타에 연결할 수 있다. $(l:greatwork/akashiclib)$(item)아카식 레코드/$가 도서관을 제어하고, 각 $(l:greatwork/akashiclib)$(item)아카 책장/$은 하나의 패턴을 하나의 이오타에 매핑해 저장한다. 이들은 모두 128블록 안에서 서로 맞닿아 직접 연결되어야 한다. $(l:greatwork/akashiclib)$(item)아카식 연결구/$는 아무것도 하지 않지만, 도서관의 크기를 늘리는 연결 블록으로 간주된다.", + akashic_record: "패턴을 배치하고 할당하는 것은 간단하지만 너무나 지루하다. 나는 할 일이 더 많다. 추출이 온전하게 유지되려면 그 일에 익숙한 정신이 필요하다.", + "3": "도서관을 작동시키는 방법은 간단하다. 패턴이 사서를 통해 전달되고, 사서는 그것을 찾아 이오타를 돌려준다. 두 액션이 이 일을 한다. $(l:patterns/akashic_patterns)기록은 여기 있다/$.$(br2)책장에 빈 $(l:items/scroll)$(item)두루마리/$를 사용하면 그곳의 패턴이 $(l:items/scroll)$(item)두루마리/$에 복사된다. 웅크리고 빈손으로 사용하면 책장의 데이터를 지운다.", + }, + + quenching_allays: { + "1": "그들은 미디어 조각이다. 왜 더 일찍 보지 못했을까? 그들은 -- 내가 생각의 조각으로 축복받은 살덩어리 더미인 것처럼, 알레이는 살점 조각에 고정된 자립적인 미디어 다툼이다. 모든 것이 설명된다. 미디어에 대한 그들의 성향, 음악에 대한 반응, 이제 보인다. 이전 자들은 왜 보지 못했는가?", + "2": "그렇다면 그들의 기묘한 정신, 기묘한 자아를 정복하는 것이 옳다. 그것이 그들의 전부, 정신, 자아, 종결부다. 그들의 위상이 내게 말을 건다. 나는... 그들과 함께 $(media)미디어/$를 압축하고, 사고의 두 굽이를 하나의 공간에 겹쳐 물리와 인지를, 모든 것을 동시에 둘 수 있다.$(br2)어째서인지 그 과정은 자체적인 $(media)미디어/$를 만들어낸다. 어떻게? 어쩌면-- 어쩌면 내 작업, 그것을 수행하는 과정이--", + "3": "상관없다. 나도 상관없다. 그들도 상관없다. 중요한 것은 그것이 무엇을 하는가뿐이다. 그리고 이것이 그것이다.$(br2)정말로 몹시 아플 것이다.$(br2)그런 뒤틀린 의식을 행하는 대가는 $(l:items/amethyst)$(item)자수정 가루/$ 열 개다.", + "4": "산물은 부서지기 쉽다. 부수면 산산조각 나며, $(thing)행운/$은 산출량을 늘린다... 블록 자체를 원한다면 섬세한 손길이 필요하다.$(br2)생긴 파편 하나하나는 $(l:items/amethyst)$(item)충전된 자수정 결정/$ 세 개분의 가치가 있다. 블록 자체는 파편 네 개분의 가치가 있다.", + "5": "그들은 변덕스럽고 내 손가락 아래에서 비틀리고 깜박이는 듯하다. 다른 형태의 $(media)미디어/$라는 스승을 주면, $(media)미디어/$의 등가교환으로 그 형태를 강제할 수 있을지도 모른다.", + }, + + + "fanciful_staves.1": "무지의 껍질을 벗는 이상, 손때 묻은 지팡이들, 내 도구를 바꾸는 것이 옳다. 내가 새로 만든 이 구조물들은 추가 성질이 없다. 하지만 너무나 영광스럽고, 아아 너무나 영광스럽다... 시야 가장자리에서 깜박이는 광휘와 어울린다.", + + // Patterns + + readers_guide: { + "1": "내가 찾은 모든 유효한 패턴을 대체로 기능에 따라 여러 장으로 나누었다. 연구 중에 획순을 찾았다면 그것도 기록했으며, 패턴의 시작점은 붉은 점으로 표시했다.$(br2)어떤 액션이 여러 패턴으로 시전되는 경우, 그런 경우에는 모두 나란히 적어 둘 것이다.", + "2": "하지만 몇몇 패턴은 획순을 찾지 $(italic)못했고/$, 형태만 알 수 있었다. 그것들을 그리는 순서는 어딘가, 세계의 고대 도서관과 던전 속에 잠겨 있을 것이라 생각한다.$(br2)이런 경우에는 그리는 순서에 대한 정보 없이 패턴만 그린다.", + "3": "또 액션이 소비하거나 수정할 이오타 타입, \"→\", 그리고 액션이 생성할 이오타 타입도 적는다.$(p)예를 들어 \"$(n)vector, number/$ → $(n)vector/$\"는 액션이 스택 맨 위에서 벡터와 숫자를 제거한 뒤 벡터를 추가한다는 뜻이다. 다르게 말하면 스택에서 숫자를 제거한 뒤 스택 맨 위의 벡터를 수정한다는 뜻이다. (숫자가 스택 맨 위에 있어야 하고, 벡터는 그 바로 아래에 있어야 한다.)", + "4": "\"→ $(n)entity/$\"는 그냥 엔티티 하나를 푸시한다는 뜻이다. \"$(n)entity, vector/$ →\"는 엔티티와 벡터를 제거하고 아무것도 푸시하지 않는다는 뜻이다.$(br2)마지막으로, 획순을 표시하는 작은 점이 너무 느리거나 헷갈린다면 $(thing)Control/Command/$를 눌러 그라데이션을 표시할 수 있다. 패턴의 시작은 가장 어둡고 끝은 가장 밝다. 두루마리와 시전 중에도 작동한다!", + }, + + basics_pattern: { + get_caster: "나, 즉 시전자를 스택에 추가한다.", + "entity_pos/eye": "스택 위의 엔티티를 그 눈 위치로 변환한다. 아마 내게 쓰는 것이 좋겠다.", + "entity_pos/foot": "스택 위의 엔티티를 그것이 서 있는 위치로 변환한다. 아마 다른 엔티티에게 쓰는 것이 좋겠다.", + get_entity_look: "스택 위의 엔티티를 그것이 바라보는 방향의 단위 벡터로 변환한다.", + print: "스택 맨 위의 이오타를 내게 표시한다.", + raycast: { + "1": "두 벡터(위치와 방향)를 결합해 다음 질문의 답을 구한다. 내가 그 위치에 서서 그 방향을 본다면 어떤 블록을 보고 있을까? 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "2": "아무것도 맞히지 못하면 벡터들은 $(l:casting/influences)$(thing)Null/$로 결합된다.$(br2)흔한 패턴 순서, 이른바 \"레이캐스트 만트라\"는 $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)나침반의 정화/$, $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)시준기의 정화/$, $(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$로 이루어진다. 함께 사용하면 내가 보고 있는 블록의 벡터 위치를 반환한다.", + }, + "raycast/axis": { + "1": "$(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$와 비슷하지만, 대신 \"블록의 어느 $(italic)면/$을 보고 있는가?\"라는 질문의 답을 나타내는 벡터를 반환한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "2": "더 구체적으로는 맞은 면의 $(italic)법선 벡터/$, 즉 그 면에 수직인 단위 벡터를 반환한다.$(li)바닥을 보고 있다면 (0, 1, 0)을 반환한다.$(li)블록의 남쪽 면을 보고 있다면 (0, 0, 1)을 반환한다.", + }, + "raycast/entity": "$(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$와 비슷하지만, 대신 내가 보고 있는 $(italic)엔티티/$를 반환한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + get_entity_height: "스택 위의 엔티티를 그 키로 변환한다.", + get_entity_velocity: "스택 위의 엔티티를 그 엔티티가 움직이는 방향으로 변환한다. 그 움직임의 속도는 해당 방향의 크기가 된다.", + }, + + numbers: { + "1": "짜증스럽게도 숫자를 그리는 쉬운 방법은 없다. 자연이 하사한 방법은 다음과 같다.", + "2": "먼저 반대쪽 페이지에 보인 두 형태 중 하나를 그린다. 다음으로 이어지는 $(italic)각도/$들이 0에서 시작하는 진행 중인 값을 수정한다.$(li)앞: 1 더하기$(li)왼쪽: 5 더하기$(li)오른쪽: 10 더하기$(li)급좌회전: 2 곱하기$(li)급우회전: 2로 나누기.$(br)반대쪽 페이지 오른쪽의 시계 방향 버전은 마지막에 값을 음수로 만든다. (왼쪽의 반시계 방향 버전은 숫자를 양수로 유지한다.)$(p)그리기를 끝내면 숫자가 스택 맨 위에 푸시된다.", + example: { + "10.header": "예시 1", + "10": "이 패턴은 10을 넣는다.", + + "7.header": "예시 2", + "7": "이 패턴은 7을 넣는다: 5 + 1 + 1.", + + "-32.header": "예시 3", + "-32": "이 패턴은 -32를 넣는다: 1 + 5 + 10 * 2를 음수화.", + + "4.5.header": "예시 4", + "4.5": "이 패턴은 4.5를 넣는다: 5 / 2 + 1 + 1.", + }, + "3": "어떤 경우에는 그냥 $(l:items/abacus)$(item)주판/$을 쓰는 편이 쉬울 수도 있다. 그래도 \"올바른\" 방법을 알아 둘 가치는 있다.", + }, + + math: { + numvec: "많은 수학 연산은 숫자와 벡터 모두에 작동한다. 그런 인수는 \"num|vec\"으로 적는다.", + + "add.1": "덧셈을 수행한다.", + "add.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 그것들을 합으로 결합한다.$(li)숫자와 벡터가 있으면, 스택에서 숫자를 제거하고 벡터의 각 성분에 더한다.$(li)벡터 두 개가 있으면, 대응하는 성분끼리 더해 새 벡터로 결합한다(즉 (1, 2, 3) + (0, 4, -1) = (1, 6, 2)).", + + "sub.1": "뺄셈을 수행한다.", + "sub.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 그것들을 차로 결합한다.$(li)숫자와 벡터가 있으면, 스택에서 숫자를 제거하고 벡터의 각 성분에서 뺀다.$(li)벡터 두 개가 있으면, 각 성분을 빼서 결합한다.$(br2)모든 경우에 스택 맨 위 또는 그 성분은 위에서 두 번째 값$(italic)에서/$ 빠진다.", + + "mul.1": "곱셈 또는 내적을 수행한다.", + "mul.2": "즉:$(li)숫자 두 개가 있으면, 그것들을 곱으로 결합한다.$(li)숫자와 벡터가 있으면, 스택에서 숫자를 제거하고 벡터의 각 성분에 그 숫자를 곱한다.$(li)벡터 두 개가 있으면, 그것들을 $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)내적/$으로 결합한다.", + + "div.1": "나눗셈 또는 외적을 수행한다.", + "div.2": "즉:$(li)숫자 두 개가 있으면, 그것들을 몫으로 결합한다.$(li)숫자와 벡터가 있으면, 숫자를 제거하고 벡터의 각 성분을 그것으로 나눈다.$(li)벡터 두 개가 있으면, 그것들을 $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)외적/$으로 결합한다.$(br2)첫째와 둘째 경우에는 스택 위에서 두 번째 값이 스택 맨 위 값으로 나뉜다.$(p)경고: 절대로 0으로 나누지 말 것!", + + "abs.1": "절댓값 또는 길이를 계산한다.", + "abs.2": "숫자를 그 절댓값으로 바꾸거나, 벡터를 그 길이로 바꾼다.", + + "pow.1": "거듭제곱 또는 벡터 사영을 수행한다.", + "pow.2": "숫자 두 개가 있으면 첫 번째 값을 두 번째 값의 거듭제곱으로 올려 결합한다.$(li)숫자와 벡터가 있으면 숫자를 제거하고 벡터의 각 성분을 그 숫자의 거듭제곱으로 올린다.$(li)벡터 두 개가 있으면 위에서 두 번째 벡터를 스택 맨 위 벡터 위로 $(l:https://en.wikipedia.org/wiki/Vector_projection)벡터 사영/$한 결과로 결합한다.$(br2)첫째와 둘째 경우에는 첫 번째 인수 또는 그 성분이 밑이고, 두 번째 인수 또는 그 성분이 지수다.", + + floor: "숫자를 \"내림\"하여 소수 부분을 잘라내고 정수값을 남긴다. 벡터를 넘기면 대신 각 성분을 내림한다.", + ceil: "숫자를 \"올림\"하여 소수 부분이 있으면 다음 정수값으로 올린다. 벡터를 넘기면 대신 각 성분을 올림한다.", + construct_vec: "스택 맨 위의 세 숫자를 벡터의 X, Y, Z 성분으로 결합한다(아래에서 위 순서).", + deconstruct_vec: "벡터를 X, Y, Z 성분으로 분해한다(아래에서 위 순서).", + modulo: "두 숫자의 나머지를 취한다. 이는 나눗셈 후 $(italics)남는/$ 양이다. 예를 들어 5 %% 2는 1이고, 5 %% 3은 2다. 벡터에 적용하면 위 연산을 성분별로 수행한다.", + coerce_axial: "벡터의 경우 가장 가까운 축 방향, 즉 단위 벡터로 강제한다. 숫자의 경우 그 부호를 반환한다. 양수면 1, 음수면 -1이다. 두 경우 모두 0은 영향을 받지 않는다.", + random: "0과 1 사이의 난수를 만든다.", + }, + + advanced_math: { + sin: "각도의 사인을 라디안으로 취해, 단위원 위에 그린 그 각도의 수직 성분을 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + cos: "각도의 코사인을 라디안으로 취해, 단위원 위에 그린 그 각도의 수평 성분을 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + tan: "각도의 탄젠트를 라디안으로 취해, 원 위에 그린 그 각도의 기울기를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arcsin: "절댓값이 1 이하인 값의 역사인을 취해, 사인이 그 값인 각도를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arccos: "절댓값이 1 이하인 값의 역코사인을 취해, 코사인이 그 값인 각도를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arctan: "값의 역탄젠트를 취해, 탄젠트가 그 값인 각도를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arctan2: "Y와 X 값의 역탄젠트를 취해, X축과 원점에서 그 점까지의 선 사이 각도를 얻는다.", + logarithm: "스택 맨 위의 숫자를 제거한 뒤, 다른 숫자를 밑으로 삼아 맨 위 숫자의 로그를 취한다. $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$의 값과 관련이 있다.", + }, + + sets: { + numlist: "집합 연산은 특이하다. 그중 일부는 두 숫자나 두 목록을 받을 수 있지만, 그 조합은 받을 수 없다. 이런 인수는 \"(num, num)|(list, list)\"로 적는다.$(br2)이 연산에서 숫자가 사용될 때, 그것들은 이른바 이진 \"비트셋\", 1과 0, true와 false, \"on\"과 \"off\"의 목록으로 쓰인다.", + + "or.1": "두 집합을 합친다.", + "or.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 둘 중 어느 비트셋에든 있는 모든 \"on\" 비트를 포함한 비트셋으로 결합한다.$(li)목록 두 개가 있으면 첫 번째 목록의 모든 요소와, 첫 번째 목록에 없는 두 번째 목록의 모든 요소로 이루어진 목록을 만든다. 이는 $(l:patterns/lists#hexcasting:add)$(action)덧셈의 증류/$와 조금 비슷하다.", + + "and.1": "두 집합의 교집합을 구한다.", + "and.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, $(italics)두/$ 비트셋 모두에 존재하는 모든 \"on\" 비트를 포함한 비트셋으로 결합한다.$(li)목록 두 개가 있으면 첫 번째 목록의 요소 중 두 번째 목록에도 있는 모든 요소의 목록을 만든다.", + + "xor.1": "두 집합의 배타적 논리합을 구한다.", + "xor.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 두 비트셋 중 $(italics)정확히 하나/$에만 존재하는 모든 \"on\" 비트를 포함한 비트셋으로 결합한다.$(li)목록 두 개가 있으면 두 목록 모두의 요소 중 다른 목록에는 $(italics)없는/$ 모든 요소의 목록을 만든다.", + + not: "비트셋을 반전해 모든 \"on\" 비트를 \"off\"로, 그 반대로 바꾼다. 내 경험상 이는 그 숫자를 음수로 만들고 1을 줄인 형태가 된다. 예를 들어 0은 -1이 되고, -100은 99가 된다.", + to_set: "목록에서 중복 항목을 제거한다.", + }, + + "consts.const/": { + "null": "$(l:casting/influences)$(thing)Null/$ 영향을 스택 맨 위에 추가한다.", + "true": "$(thing)True/$를 스택 맨 위에 추가한다.", + "false": "$(thing)False/$를 스택 맨 위에 추가한다.", + + "vec/": { + x: "왼쪽 반시계 방향 패턴은 (1, 0, 0)을 스택에 추가하고, 오른쪽 시계 방향 패턴은 (-1, 0, 0)을 추가한다.", + y: "왼쪽 반시계 방향 패턴은 (0, 1, 0)을 스택에 추가하고, 오른쪽 시계 방향 패턴은 (0, -1, 0)을 추가한다.", + z: "왼쪽 반시계 방향 패턴은 (0, 0, 1)을 추가하고, 오른쪽 시계 방향 패턴은 (0, 0, -1)을 추가한다.", + "0": "(0, 0, 0)을 스택에 추가한다.", + }, + + "double/": { + tau: "완전한 원의 라디안 표현인 τ를 스택에 추가한다.", + pi: "반원의 라디안 표현인 π를 스택에 추가한다.", + "e": "자연로그의 밑인 $(italic)e/$를 스택에 추가한다.", + phi: "황금비 φ를 스택에 추가한다. 이는 (A+B)/A = A/B가 되도록 하는 두 값 사이의 비율이다.", + }, + }, + + stackmanip: { + "pseudo-novice.title": "초심자의 묘수", + "pseudo-novice": "스택에서 첫 번째 이오타를 제거한다.$(br2)이것은 $(l:patterns/stackmanip#hexcasting:mask)$(action)장부지기의 묘수/$의 특수한 경우인 듯하다.", + + swap: "스택 맨 위의 두 이오타를 맞바꾼다.", + rotate: "스택 맨 위에서 세 번째 이오타를 맨 위로 끌어올린다. [0, 1, 2]는 [1, 2, 0]이 된다.", + rotate_reverse: "맨 위 이오타를 세 번째 위치로 끌어내린다. [0, 1, 2]는 [2, 0, 1]이 된다.", + duplicate: "스택 맨 위의 이오타를 복제한다.", + over: "스택의 뒤에서 두 번째 이오타를 맨 위로 복사한다. [0, 1]은 [0, 1, 0]이 된다.", + tuck: "스택 맨 위 이오타를 복사한 뒤 두 번째 이오타 아래에 넣는다. [0, 1]은 [1, 0, 1]이 된다.", + "2dup": "스택 맨 위의 두 이오타를 복사한다. [0, 1]은 [0, 1, 0, 1]이 된다.", + stack_len: "스택의 크기를 숫자로 스택 맨 위에 푸시한다. (예를 들어 [0, 1] 스택은 [0, 1, 2]가 된다.)", + duplicate_n: "스택 맨 위의 숫자를 제거한 뒤, 스택 맨 위 이오타를 그 횟수만큼 복사한다. (횟수가 2라면 스택에는 그 이오타가 세 개가 아니라 두 개 생긴다.)", + fisherman: "숫자로 인덱스된 스택 안의 요소를 잡아 맨 위로 가져온다. 숫자가 음수라면 대신 스택 맨 위 요소를 그만큼 아래로 이동한다.", + "fisherman/copy": "$(l:patterns/stackmanip#hexcasting:fisherman)$(action)낚시꾼의 묘수/$와 비슷하지만, 이오타를 이동하는 대신 복사한다.", + + mask: { + "1": "내림과 선의 순서에 따라 스택 맨 위의 요소를 유지하거나 제거하는 무한한 액션 계열.", + "2": "장부지기의 묘수 패턴을 왼쪽에서 오른쪽으로 그린다고 가정하면, 액션이 요구할 이오타 수는 패턴이 차지하는 수평 거리로 결정된다. 스택 깊은 곳에서 얕은 곳으로 보았을 때, 평평한 선은 이오타를 유지하고 아래로 파인 삼각형은 제거한다.$(br2)내 스택에 깊은 곳부터 얕은 곳까지 $(italic)0, 1, 2/$가 들어 있다면, 맞은편 첫 번째 패턴은 $(italic)1/$을, 두 번째는 $(italic)0/$을, 세 번째는 $(italic)0, 2/$를 준다(바닥의 0은 건드리지 않는다).", + }, + + swizzle: { + "1": "원하는 순열의 인덱스인 주어진 숫자 코드에 따라 스택 맨 위 요소들을 재배열한다.", + "2": "이 순열 코드를 계산하는 수학을 안다고는 할 수 없지만, 최대 여섯 요소의 모든 순열을 열거한 방대한 표를 찾아냈다.$(br2)더 공부하고 싶다면 핵심어는 \"레머 코드\"다.", + link: "코드 표", + }, + }, + + logic: { + bool_coerce: "인수를 논리값으로 변환한다. 숫자 $(thing)0/$, $(l:casting/influences)$(thing)Null/$, False, 빈 목록은 False가 되고, 그 밖의 모든 것은 True가 된다.", + bool_to_number: "논리값을 숫자로 변환한다. True는 $(thing)1/$, False는 $(thing)0/$이 된다.", + not: "인수가 True이면 False를, False이면 True를 반환한다.", + or: "인수 중 하나 이상이 True이면 True를, 아니면 False를 반환한다.", + and: "두 인수가 모두 True이면 True를, 아니면 False를 반환한다.", + xor: "정확히 하나의 인수만 True이면 True를, 아니면 False를 반환한다.", + if: "첫 번째 인수가 True이면 두 번째를 유지하고 세 번째를 버린다. 아니면 두 번째를 버리고 세 번째를 유지한다.", + equals: "첫 번째 인수가 두 번째와 같으면(작은 허용 오차 안에서) True를 반환한다. 아니면 False를 반환한다.", + not_equals: "첫 번째 인수가 두 번째와 같지 않으면(작은 허용 오차 밖에서) True를 반환한다. 아니면 False를 반환한다.", + type_equals: "첫 번째 인수의 타입이 두 번째 타입과 일치하면 True를 반환한다. 아니면 False를 반환한다.", + type_not_equals: "첫 번째 인수의 타입이 두 번째 타입과 일치하지 않으면 True를 반환한다. 아니면 False를 반환한다.", + greater: "첫 번째 인수가 두 번째보다 크면 True를 반환한다. 아니면 False를 반환한다.", + less: "첫 번째 인수가 두 번째보다 작으면 True를 반환한다. 아니면 False를 반환한다.", + greater_eq: "첫 번째 인수가 두 번째 이상이면 True를 반환한다. 아니면 False를 반환한다.", + less_eq: "첫 번째 인수가 두 번째 이하이면 True를 반환한다. 아니면 False를 반환한다.", + }, + + entities: { + get_entity: "스택 위의 위치를 그 위치의 엔티티로 변환한다(없으면 $(l:casting/influences)$(thing)Null/$).", + "get_entity/": { + animal: "스택 위의 위치를 그 위치의 동물로 변환한다(없으면 $(l:casting/influences)$(thing)Null/$).", + monster: "스택 위의 위치를 그 위치의 몬스터로 변환한다(없으면 $(l:casting/influences)$(thing)Null/$).", + item: "스택 위의 위치를 그 위치의 떨어진 아이템으로 변환한다(없으면 $(l:casting/influences)$(thing)Null/$).", + player: "스택 위의 위치를 그 위치의 플레이어로 변환한다(없으면 $(l:casting/influences)$(thing)Null/$).", + living: "스택 위의 위치를 그 위치의 살아있는 생물로 변환한다(없으면 $(l:casting/influences)$(thing)Null/$).", + }, + + zone_entity: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 모든 엔티티 목록으로 결합한다.", + "zone_entity/": { + animal: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 동물 목록으로 결합한다.", + not_animal: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 비동물 엔티티 목록으로 결합한다.", + monster: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 몬스터 목록으로 결합한다.", + not_monster: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 비몬스터 엔티티 목록으로 결합한다.", + item: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 떨어진 아이템 목록으로 결합한다.", + not_item: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 떨어진 아이템이 아닌 엔티티 목록으로 결합한다.", + player: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 플레이어 목록으로 결합한다.", + not_player: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 플레이어가 아닌 캐릭터 목록으로 결합한다.", + living: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 살아있는 생물 목록으로 결합한다.", + not_living: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 살아있지 않은 엔티티 목록으로 결합한다.", + }, + }, + + lists: { + index: "스택 맨 위의 숫자를 제거한 뒤, 맨 위의 목록을 그 목록의 n번째 요소로 바꾼다(n은 제거한 숫자). 숫자가 범위를 벗어나면 목록을 $(l:casting/influences)$(thing)Null/$로 바꾼다.", + slice: "스택 맨 위의 숫자 두 개를 제거한 뒤, 스택 맨 위 목록에서 그 인덱스 사이의 부분 목록을 취한다. 하한은 포함하고 상한은 제외한다. 예를 들어 [0, 1, 2, 3, 4]의 0, 2 부분 목록은 [0, 1]이다.", + append: "스택 맨 위를 제거한 뒤, 그것을 스택 맨 위 목록의 끝에 추가한다.", + unappend: "스택 맨 위 목록의 끝에 있는 이오타를 제거해 스택 맨 위에 추가한다.", + add: "스택 맨 위의 목록을 제거한 뒤, 그 모든 요소를 스택 맨 위 목록의 끝에 추가한다.", + empty_list: "빈 목록을 스택 맨 위에 넣는다.", + singleton: "스택 맨 위를 제거한 뒤, 그 요소만 담은 목록을 푸시한다.", + abs: "스택 맨 위의 목록을 제거한 뒤, 목록의 요소 수를 스택에 푸시한다.", + reverse: "스택 맨 위의 목록을 뒤집는다.", + index_of: "스택 맨 위의 이오타를 제거한 뒤, 맨 위 목록을 그 이오타가 목록 안에서 처음 나타나는 인덱스(0부터 시작)로 바꾼다. 그 이오타가 목록에 없으면 목록을 -1로 바꾼다.", + remove_from: "스택 맨 위의 숫자를 제거한 뒤, 스택 맨 위 목록의 n번째 요소를 제거한다(n은 제거한 숫자).", + replace: "스택 맨 위의 이오타와 맨 위의 숫자를 제거한 뒤, 스택 맨 위 목록의 n번째 요소를 그 이오타로 설정한다(n은 제거한 숫자). 숫자가 범위를 벗어나면 아무것도 하지 않는다.", + last_n_list: "스택에서 $(italic)num/$개의 요소를 제거한 뒤, 스택 맨 위의 목록에 추가한다.", + splat: "스택 맨 위의 목록을 제거한 뒤, 그 내용을 스택에 푸시한다.", + construct: "맨 위 이오타를 제거한 뒤, 그것을 스택 맨 위 목록의 첫 번째 요소로 추가한다.", + deconstruct: "스택 맨 위 목록에서 첫 번째 이오타를 제거한 뒤, 그 이오타를 스택에 푸시한다.", + }, + + patterns_as_iotas: { + "1": "이 기술의 여러 특이점 중 하나는 $(italic)패턴 자체/$가 이오타처럼 작동할 수 있다는 것이다. 시전 중 내 스택에 올릴 수도 있다.$(br2)이로부터 꽤 명백한 질문이 생긴다. 그것들을 어떻게 표현할 것인가? 단순히 패턴을 그린다면 자연에게 그것을 내 스택에 추가하라고 말하는 것이 아니라, 그냥 액션에 대응될 것이다.", + "2": "다행히 자연은 패턴을 직접 다룰 수 있게 해 주는 $(l:casting/influences)영향/$들의 집합을 제공했다.$(br2)간단히 말해 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$는 패턴 하나를 스택에 추가하게 해 주고, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$과 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$은 전체 목록을 추가하게 해 준다.", + escape: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$를 사용하려면 그것을 그린 뒤 임의의 다른 패턴을 하나 그린다. 그 두 번째 패턴이 스택에 추가된다.", + "2": "컴퓨터 과학에 익숙하다면 이것을 패턴을 스택으로 \"이스케이프\"한다고 생각하면 도움이 될 수 있다.$(br2)일반적인 용도는 $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$를 사용해 패턴을 $(l:items/scroll)$(item)두루마리/$나 $(l:items/slate)$(item)석판/$에 복사하고, 어쩌면 그것들로 장식하는 것이다.", + }, + parens: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$을 그리면 한동안 내 패턴 그리기가 다르게 작동한다. $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$을 그릴 때까지 내가 그린 패턴들은 저장된다. 이후 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$을 그리면, 그것들이 목록 이오타로 스택에 추가된다.", + "2": "또 다른 $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$을 그리면 그것도 목록에 저장되지만, 정상 시전으로 돌아가려면 $(italic)두 번/$의 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$을 그려야 한다.", + }, + undo: "마지막으로, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$과 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$ 안에서 패턴을 그리다 실수했다면 $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)소실/$을 그려 구성 중인 패턴 목록에서 마지막으로 그린 패턴을 제거할 수 있다.", + further_notes: { + title: "추가 기록", + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$과 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$의 특수 동작은 그들 앞에 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$를 그려 회피할 수 있다. 그러면 그것들은 시전으로 돌아가기 위해 필요한 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$의 수에 영향을 주지 않고 단순히 목록에 추가된다.$(br2)$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성 중/$ $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$를 연속으로 두 번 그리면, 목록에는 하나의 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$가 추가된다.", + "2": "$(l:patterns/meta#hexcasting:eval)$(action)헤르메스의 묘수/$나 다른 메타 평가 패턴으로 실행될 목록 안에 패턴이 아닌 이오타가 있으면 보통 변고가 발생한다. 하지만 이 장에서 설명한 패턴들을 사용하면 피할 수 있다.$(br2)패턴 이오타와 마찬가지로, 여기 설명한 패턴들은 $(o)다른 어떤$() 종류의 이오타도 \"이스케이프\"하는 데 사용할 수 있으며, 무언가가 그것을 평가하려 할 때 변고 대신 스택에 푸시되게 한다.", + "3": "이 기법은 복잡한 벡터나 엔티티 참조 같은 특정 이오타를 매번 구성하거나 얻지 않고 $(hex)주문문양/$이 참조하게 하고 싶을 때 유용할 수 있다.$(br2)그런 이오타를 처음부터 패턴 목록에 넣는 과정은 다소 복잡할 수 있다. 가장 간단한 방법은 목록을 조립할 때 자리표시자 패턴을 그린 뒤, $(l:patterns/lists#hexcasting:replace)$(action)외과의의 고양/$을 사용해 원하는 이오타로 바꾸는 것이다.", + }, + }, + + readwrite: { + "1": "이 장은 $(thing)이오타/$를 더 영구적인 매체에 저장하는 일을 다룬다. 거의 모든 이오타는 $(l:items/focus)$(item)초점구/$나 $(l:items/spellbook)$(item)마도서/$ 같은 적합한 아이템에 저장하고 나중에 다시 읽을 수 있다. $(l:items/abacus)$(item)주판/$ 같은 일부 아이템은 읽기만 가능하다.$(br2)이오타는 보통 다른 손에서 읽고 쓰지만, 아이템이 아이템 엔티티로 땅에 있거나 아이템 액자 안에 있을 때에도 그 아이템으로 읽고 쓸 수 있다.", + "2": "이런 방식으로 상호작용할 수 있는 다른 엔티티도 있을지 모른다. 예를 들어 벽에 걸린 $(l:items/scroll)$(item)두루마리/$의 패턴을 읽어낼 수 있다.$(br2)하지만 다른 플레이어에 대한 참조는 저장할 수 없고, 나 자신만 가능한 듯하다. 엔티티 참조는 진명이라는 개념과 비슷한 것 같다. 어쩌면 자연이 우리의 이름이 적의 손에 들어가지 않도록 도와주는 것일지도 모른다. 친구에게 내 이름을 주고 싶다면 그들을 위해 $(l:items/focus)$(item)초점구/$를 만들 수 있다.", + read: "다른 손의 아이템에 저장된 이오타를 복사해 스택에 추가한다.", + write: "스택 맨 위 이오타를 제거해 다른 손의 아이템 안에 저장한다.", + "read/entity": "$(l:patterns/readwrite#hexcasting:read)$(action)필경사의 반사/$와 같지만, 다른 손이 아니라 엔티티에서 이오타를 읽어낸다.", + "write/entity": "$(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$와 같지만, 다른 손이 아니라 엔티티에 이오타를 쓴다.$(br2)흥미롭게도 이 주문으로 내 자신의 이름은 쓸 수 없는 것 같다. 가능했다면 위험해졌을 것이라는 감각이 든다.", + readable: "다른 손의 아이템이 내가 읽을 수 있는 이오타를 담고 있으면 True를 반환한다. 아니면 False를 반환한다.", + "readable/entity": "$(l:patterns/readwrite#hexcasting:readable)$(action)감사자의 반사/$와 같지만, 다른 손 대신 엔티티의 읽기 가능 여부를 확인한다.", + writable: "다른 손의 아이템에 이오타를 저장할 수 있으면 True를 반환한다. 아니면 False를 반환한다.", + "writable/entity": "$(l:patterns/readwrite#hexcasting:writable)$(action)평가자의 반사/$와 같지만, 다른 손 대신 엔티티의 쓰기 가능 여부를 확인한다.", + "local.title": "까마귀정신", + local: "하지만 아이템만이 정보를 저장할 수 있는 장소는 아니다. 스택과 비슷하지만 별도로, $(hex)주문문양/$ 자체의 $(media)미디어/$ 안에도 그 정보를 저장할 수 있다. 문헌은 이를 $(l:patterns/readwrite#hexcasting:local)$(thing)까마귀정신/$이라 부른다. $(l:items/focus)$(item)초점구/$와 비슷하게 하나의 이오타를 담고, 역시 $(l:casting/influences)$(thing)Null/$로 시작한다. $(l:patterns/meta#hexcasting:for_each)$(action)토트의 묘수/$ 반복 사이에서는 보존되지만, 그것이 속한 $(hex)주문문양/$이 지속되는 동안에만 남는다. 시전을 멈추면 값은 사라진다.", + "write/local": "스택 맨 위 이오타를 제거하고 내 $(l:patterns/readwrite#hexcasting:local)$(thing)까마귀정신/$에 저장해, $(hex)주문문양/$ 시전을 멈출 때까지 그곳에 보관한다.", + "read/local": "내 $(l:patterns/readwrite#hexcasting:local)$(thing)까마귀정신/$에서 이오타를 복사한다. 아마 방금 $(l:patterns/readwrite#hexcasting:write/local)$(action)후긴의 묘수/$로 쓴 것일 것이다.", + }, + + meta: { + "eval.1": "스택에서 패턴 또는 패턴 목록을 제거한 뒤, 내가 $(l:items/staff)$(item)지팡이/$로 직접 그린 것처럼 시전한다($(l:patterns/meta#hexcasting:halt)$(action)카론의 묘수/$를 만날 때까지). 이오타가 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$나 $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)그 계열/$로 이스케이프되어 있다면 스택에 푸시된다. 그렇지 않으면 패턴이 아닌 것은 실패한다.", + "eval.2": "이는 $(l:items/focus)$(item)초점구/$와 함께 사용하면 매우 강력할 수 있으며, 내가 찾은 한 난해한 두루마리에 따르면 자연의 관료제를 \"튜링 완전\" 체계로 만들기도 한다.$(br2)하지만 $(hex)주문문양/$이 자기 자신을 시전할 수 있는 횟수에는 한계가 있는 듯하다. 자연은 폭주하는 주문을 좋게 보지 않는다!$(br2)또한 내가 인도하지 않는 상태에서 패턴의 에너지가 발생하므로, 어떤 변고든 남은 액션을 즉시 풀어헤치게 된다.", + + "for_each.1": "스택에서 패턴 목록과 목록 하나를 제거한 뒤, 주어진 패턴 목록을 두 번째 목록의 각 요소에 대해 시전한다.", + "for_each.2": "더 구체적으로, 두 번째 목록의 각 요소마다 다음을 수행한다:$(li)현재 스택의 모든 것에 그 요소를 더한 새 스택을 만든다.$(li)첫 번째 목록의 모든 패턴을 그린다.$(li)스택에 남은 모든 이오타를 목록에 저장한다.$(br)그리고 모든 것이 끝나면 저장된 이오타 목록을 주 스택에 푸시한다.$(br2)이 기술의 모든 수행자가 미쳐 가는 것도 무리가 아니다.", + + "halt.1": "이 패턴은 $(hex)주문문양/$을 강제로 중단한다. 그냥 패턴 쓰기를 멈추거나 지팡이를 내려놓으면 되므로, 단독으로는 거의 쓸모없다.", + "halt.2": "하지만 $(l:patterns/meta#hexcasting:eval)$(action)헤르메스/$나 $(l:patterns/meta#hexcasting:for_each)$(action)토트의 묘수/$와 결합하면 $(italics)훨씬/$ 더 흥미로워진다. 그 패턴들은 중단을 '담아' 두는 역할을 하며, 전체 $(hex)주문문양/$을 끝내는 대신 그 묘수들만 끝낸다. 이를 사용하면 $(l:patterns/meta#hexcasting:for_each)$(action)토트의 묘수/$가 받은 모든 이오타에 작동하지 않게 만들 수 있다. 말하자면 광기로부터의 탈출이다.", + + "eval/cc.1": "$(l:patterns/meta#hexcasting:eval)$(action)헤르메스의 묘수/$와 정확히 같은 방식으로 스택의 패턴 또는 패턴 목록을 시전하지만, 그 전에 고유한 \"Jump\" 이오타가 스택에 푸시된다. ", + "eval/cc.2": "\"Jump\" 이오타가 실행되면 남은 패턴을 건너뛰고 패턴 목록의 끝으로 바로 점프한다.$(p)$(l:patterns/meta#hexcasting:halt)$(action)카론의 묘수/$가 있는데 중복처럼 보일 수 있지만, 이것은 $(italic)중첩된/$ $(l:patterns/meta#hexcasting:eval)$(action)헤르메스/$ 호출에서 제어된 방식으로 빠져나오게 해 준다. 카론은 하나만 빠져나오게 해 줄 뿐이다.$(p)\"Jump\" 이오타는 실행이 끝난 후에도 스택에 남는 듯하다... 그 의미는 생각하지 않는 편이 좋겠다.", + + "thanatos.1": "$(hex)주문문양/$이 아직 평가할 수 있는 패턴 수를 스택에 추가한다. 이 값은 $(hex)주문문양/$이 패턴을 하나 시전할 때마다 하나씩 줄어든다." + }, + + circle_patterns: { + disclaimer: "이 패턴들은 반드시 $(l:greatwork/spellcircles)$(item)마법진/$에서 시전해야 한다. $(l:items/staff)$(item)지팡이/$로 시전하려 하면 아주 장관스럽게 실패한다.", + + "circle/impetus_pos": "이 마법진의 $(l:greatwork/impetus)$(item)원동석/$ 위치를 반환한다.", + "circle/impetus_dir": "이 마법진의 $(l:greatwork/impetus)$(item)원동석/$이 향한 방향을 단위 벡터로 반환한다.", + "circle/bounds/min": "이 마법진 경계의 아래-북서쪽 모서리 위치를 반환한다.", + "circle/bounds/max": "이 마법진 경계의 위-남동쪽 모서리 위치를 반환한다.", + }, + + akashic_patterns: { + "akashic/read": "주어진 위치의 $(l:greatwork/akashiclib)$(item)기록매체/$를 가진 $(l:greatwork/akashiclib)$(item)아카식 도서관/$에서, 주어진 패턴에 연결된 이오타를 읽는다. 범위 제한이 없다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + "akashic/write": "주어진 위치의 $(l:greatwork/akashiclib)$(item)기록매체/$를 가진 $(l:greatwork/akashiclib)$(item)아카식 도서관/$에서, 주어진 패턴에 이오타를 연결한다. 이것은 범위 제한이 $(italic)있다/$. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + }, + + // Normal Spells + + itempicking: { + "1": "$(l:patterns/spells/blockworks#hexcasting:place_block)$(action)블록 설치/$ 같은 특정 주문은 내 인벤토리에서 추가 아이템을 소비한다. 이런 일이 일어나면 주문은 먼저 사용할 아이템을 찾고, 이후 내 인벤토리에 있는 그런 모든 아이템에서 가져온다.$(br2)이 과정을 \"아이템 선택\"이라고 부른다.", + "2": "더 구체적으로:$(li)먼저 주문은 내 $(l:items/staff)$(item)지팡이/$의 $(italic)오른쪽/$ 핫바에서 첫 번째 유효한 아이템을 찾는다. 오른쪽 끝에서는 순환하며, $(l:items/staff)$(item)지팡이/$가 보조 손에 있으면 첫 번째 슬롯에서 시작한다.$(li)둘째, 주문은 그 아이템을 내 인벤토리의 가능한 $(italic)가장 뒤쪽/$에서부터 가져오며, 핫바보다 주 인벤토리를 우선한다.", + "3": "이렇게 하면 핫바에 주문이 무엇을 사용할지 알려 주는 \"선택기\" 아이템을 두고, 나머지 인벤토리를 그 아이템으로 채워 주문 재고를 넉넉히 유지할 수 있다.", + }, + + basic_spell: { + "explode.1": "스택에서 숫자와 벡터를 제거한 뒤, 주어진 위치에 주어진 위력의 폭발을 만든다.", + "explode.2": "위력 3은 크리퍼 폭발 정도이고, 4는 TNT 폭발 정도다. 다만 자연은 위력 10을 넘는 폭발을 허락하지 않는다.$(br2)묘하게도 이 폭발은 나를 해치지 않는 듯하다. 아마 폭발하는 것이 $(italic)나/$이기 때문일까?$(br2)위력 0에서는 무시할 만한 양이 들고, 폭발 위력 1마다 추가로 $(l:items/amethyst)$(item)자수정 가루/$ 약 3개가 든다.", + + "explode.fire.1": "스택에서 숫자와 벡터를 제거한 뒤, 주어진 위치에 주어진 위력의 화염 폭발을 만든다.", + "explode.fire.2": "비용은 $(l:items/amethyst)$(item)자수정 가루/$ 하나에, 폭발 위력 1마다 추가로 $(l:items/amethyst)$(item)자수정 가루/$ 약 3개다. 그 외에는 $(l:patterns/spells/basic#hexcasting:explode)$(action)폭발/$과 같지만, 불이 붙는다.", + + add_motion: "스택에서 엔티티와 방향을 제거한 뒤, 주어진 엔티티를 주어진 방향으로 밀어낸다. 충격의 세기는 벡터의 길이로 결정된다.$(br)비용은 벡터 길이의 제곱과 같은 수의 $(l:items/amethyst)$(item)자수정 가루/$이며, 같은 엔티티를 대상으로 한 첫 번째 이후의 충격마다 하나씩 추가된다.", + blink: "스택에서 엔티티와 길이를 제거한 뒤, 주어진 엔티티를 그 시선 벡터를 따라 주어진 길이만큼 순간이동시킨다.$(br)이동한 두 블록마다 $(l:items/amethyst)$(item)자수정 조각/$ 약 하나가 든다.", + + "beep.1": "스택에서 벡터와 숫자 두 개를 제거한다. 첫 번째 숫자가 정한 $(thing)악기/$를 주어진 위치에서 연주하고, 두 번째 숫자가 정한 $(thing)음/$을 낸다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "beep.2": "$(thing)악기/$는 16종, $(thing)음/$은 25종이 있는 듯하다. 둘 다 0부터 번호를 매긴다.$(br2)이들은 $(item)소리 블록/$으로 낼 수 있는 악기와 같은 것 같지만, 각 악기의 번호가 왜 그렇게 되었는지는 알 수 없다.$(br2)어쨌든 $(l:items/lens)$(item)염시 렌즈/$로 $(item)소리 블록/$을 살펴보면 필요한 숫자를 찾을 수 있다.", + }, + + blockworks: { + place_block: "스택에서 위치를 제거한 뒤, 블록 아이템을 선택해 주어진 위치에 놓는다.$(br)비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 1/8개.", + break_block: "스택에서 위치를 제거한 뒤, 주어진 위치의 블록을 부순다. 이 주문은 다이아몬드 곡괭이가 부술 수 있는 거의 모든 것을 부술 수 있다.$(br)비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 1/8개이며, $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)소환된 블록/$이나 $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)소환된 빛/$을 부술 때는 무시할 만한 양이다.", + create_water: "주어진 위치의 블록에 물 한 블록을 소환한다(또는 양동이 하나 분량까지 채운다). 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + destroy_water: "주어진 위치의 액체 용기나 그 주변의 액체 덩어리를 비운다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 두 개.", + conjure_block: "주어진 위치에 내 안료로 반짝이는, 비물질적이지만 단단한 블록을 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + conjure_light: "주어진 위치에 내 안료로 부드럽게 빛나는 마법의 빛을 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + bonemeal: "대상 위치의 식물이나 묘목이 $(item)뼛가루/$를 사용한 것처럼 자라도록 북돋운다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 하나보다 조금 많다.", + edify: "대상 위치의 묘목에 $(media)미디어/$를 강제로 주입해 $(l:items/edified)$(thing)교화된 나무/$로 자라게 한다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + ignite: "주어진 위치 위에 $(item)화염구/$를 사용한 것처럼 불을 붙이거나, 엔티티에 불을 붙인다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + extinguish: "넓은 영역의 블록을 소화한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 여섯 개.", + }, + + nadirs: { + "1": "이 주문 계열은 모두 엔티티에게 부정적인 물약 효과를 부여한다. 모두 받는 대상인 엔티티와 하나 또는 두 개의 숫자를 받으며, 첫 번째는 지속 시간, 두 번째가 있으면 위력(1부터 시작)이다.$(br2)각각에는 \"기본 비용\"이 있으며, 실제 비용은 그 기본 비용에 위력의 제곱을 곱한 값이다.", + "2": "일부 전설에 따르면, 이 주문들과 그 자매인 $(l:patterns/great_spells/zeniths)$(action)천정/$들은 \"[...] 강력한 마법사들이 땅에서 마법을 모아 죽음의 결투를 벌이던, 이 세계와 가까운 어떤 세계에서 영감을 받았다. 안타깝게도 번역 과정에서 많은 것이 사라졌다...\"고 한다.$(br2)아마 그래서 이름이 특이한 것일지도 모른다.", + + "potion/weakness": "$(thing)나약함/$을 부여한다. 기본 비용은 10초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/levitation": "$(thing)공중 부양/$을 부여한다. 기본 비용은 5초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/wither": "$(thing)시듦/$을 부여한다. 기본 비용은 초당 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/poison": "$(thing)독/$을 부여한다. 기본 비용은 3초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/slowness": "$(thing)감속/$을 부여한다. 기본 비용은 5초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + }, + + hexcasting_spell: { + basics: "이 세 주문은 각각 $(l:items/hexcasting)$(thing)$(hex)주문문양/$을 시전하는 아이템/$을 만든다.$(br)모두 빈 아이템을 보조 손에 들고 있어야 하며, 두 가지가 필요하다. 시전할 패턴 목록과, 아이템의 배터리를 형성할 떨어진 $(l:items/amethyst)$(item)자수정/$ 더미를 나타내는 엔티티다.$(br2)자세한 내용은 $(l:items/hexcasting)이 항목/$을 보라.", + "craft/cypher": "비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + "craft/trinket": "비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 다섯 개.", + "craft/artifact": "비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 열 개.", + + "recharge.1": "다른 손에 든 $(media)미디어/$ 포함 아이템을 재충전한다. 비용은 아이템 하나당 $(l:items/amethyst)$(item)자수정 조각/$ 약 하나.", + "recharge.2": "이 주문은 제작 주문과 비슷한 방식으로 시전된다. 떨어진 $(l:items/amethyst)$(item)자수정/$ 더미를 나타내는 엔티티가 제공되고, 다른 손의 아이템에 있는 $(media)미디어/$ 배터리를 재충전한다.$(br2)이 주문은 아이템을 원래 배터리 크기보다 더 많이 재충전할 수 $(italic)없다/$.", + + "erase.1": "다른 손에 든 $(hex)주문문양/$ 포함 아이템 또는 이오타 포함 아이템을 비운다. 비용은 아이템 하나당 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + "erase.2": "이 주문은 아이템 안에 저장된 모든 $(media)미디어/$도 무효화하여 자연으로 되돌리고, 아이템을 완전히 깨끗한 석판으로 되돌린다. 예를 들어 잘못된 주문을 넣은 $(l:items/hexcasting)$(item)장신구/$를 다시 사용할 수 있다.$(br2)$(l:items/focus)$(item)초점구/$나 $(l:items/spellbook)$(item)마도서/$ 페이지를 비우는 데도 작동하며, 그 과정에서 봉인도 풀린다.", + }, + + sentinels: { + "1": "$(italic)그러니 물러나라! 이제 모두 잘되었으니,$(br)홀로 선 감시자 하나./$$(br2)$(l:patterns/spells/sentinels)$(thing)감시자/$는 사역마나 수호령처럼 $(hex)주문문양/$ 시전을 돕도록 소환할 수 있는 신비한 힘이다. 내 심상 한구석에 연결된 듯하다.", + "2": "몇 가지 흥미로운 성질이 있다:$(li)실체가 없어 보인다. 아무도 만질 수 없다.$(li)오직 내 $(hex)주문문양/$만 그것과 상호작용할 수 있다.$(li)한번 소환되면 추방될 때까지 제자리에 머문다.$(li)내가 충분히 가까이 있으면 언제나 볼 수 있다.", + + "sentinel/create": "주어진 위치에 내 $(l:patterns/spells/sentinels)$(thing)감시자/$를 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + "sentinel/destroy": "내 $(l:patterns/spells/sentinels)$(thing)감시자/$를 추방해 세계에서 제거한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "sentinel/get_pos": "내 $(l:patterns/spells/sentinels)$(thing)감시자/$의 위치를 스택에 추가한다. 소환되어 있지 않다면 $(l:casting/influences)$(thing)Null/$을 추가한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "sentinel/wayfind": "스택 맨 위의 위치 벡터를 그 위치에서 내 $(l:patterns/spells/sentinels)$(thing)감시자/$를 가리키는 단위 벡터로 변환한다. 소환되어 있지 않다면 $(l:casting/influences)$(thing)Null/$이 된다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + }, + + colorize: "이 주문을 시전하려면 다른 손에 $(l:items/pigments)$(item)안료/$를 들고 있어야 한다. 그렇게 하면 염료를 소비하고 내 정신의 색을 영구적으로 바꾼다(적어도 이 주문을 다시 시전할 때까지). 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + + cycle_variant: "내가 만드는 특정 아이템들은 $(media)미디어/$의 영향에 이상할 정도로 잘 반응하는 듯하다. $(l:items/hexcasting)$(item)사이퍼/$, $(l:items/hexcasting)$(item)장신구/$, $(l:items/hexcasting)$(item)유물/$, $(l:items/focus)$(item)초점구/$, 또는 $(l:items/spellbook)$(item)마도서/$를 들고 이 액션을 시전하면, 가능한 경우 그 변종을 순환시킨다.", + + flights: { + "1": "진정한 무제한 비행은 내 손이 닿지 않는 것 같지만, 각각 단점이 있는 채로 하늘에 머무르는 몇 가지 방법을 찾았다.$(br2)모든 형태는 여분의 $(media)미디어/$가 반짝이는 흔적을 만든다. 주문이 한계에 가까워질수록 그 반짝임은 더 강해진다.", + "2": "물론 다른 형태의 비행도 존재한다. 예를 들어 $(l:patterns/spells/basic#hexcasting:add_motion)$(action)충격/$과 $(l:patterns/spells/nadirs#hexcasting:potion/levitation)$(action)푸른 태양의 천저/$의 조합은 어느 정도 효과적이었다. 하지만 그건 훨씬 조잡한 방법이다.", + + "range.1": "범위가 제한된 비행.", + "range.2": "두 번째 인수는 주문이 안정적인 수평 반경(미터)이다. 그 반경 밖으로 나가면 주문이 끝나고 나는 하늘에서 떨어진다. 하지만 안전 지대 안에 머무는 한 주문은 무기한 지속된다.$(br2)비용은 안정 반경 1미터마다 $(l:items/amethyst)$(item)자수정 가루/$ 약 1개다.", + + "time.1": "지속 시간이 제한된 비행.", + "time.2": "두 번째 인수는 주문이 안정적인 시간(초)이다. 그 시간이 지나면 주문이 끝나고 나는 하늘에서 떨어진다.$(br2)비행 1초마다 $(l:items/amethyst)$(item)자수정 가루/$ 약 2개가 든다. 범위 제한형보다 더 효율적이라고 믿는다.", + + // Putting this in this category instead of elsewhere -- see sentinel chapter also containing some reflections/nonspells + "can_fly.1": "주어진 플레이어가 $(l:patterns/spells/flight#hexcasting:flight/range)은둔자/$ 또는 $(l:patterns/spells/flight#hexcasting:flight/time)나그네의 비행/$ 효과를 받고 있는지 반환한다.", + "can_fly.2": "다른 수단으로 날 수 있는지는 감지하지 않는다.$(br2)이것이 무슨 쓸모인지 내게는 불명확하다. 하지만 쓸모는 보는 사람의 눈에 달린 것이겠지." + }, + + create_lava: { + "1": "주어진 위치의 블록에 용암 한 블록을 소환한다(또는 양동이 하나 분량까지 채운다). 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + "2": "이 주문에 대한 지식은 비밀로 해 두는 편이 좋을지도 모른다. 듣자 하니 어떤 식물학자 파벌은 이것에... 예민하게 군다고 한다.$(br2)뭐, 우주의 깊은 비밀을 추적하는 일이 쉬울 거라고 한 사람은 아무도 없었다.", + }, + + weather_manip: { + lightning: "나는 하늘에 명한다! 이 주문은 내가 지정한 곳의 땅을 치는 번개를 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 조각/$ 약 세 개.", + summon_rain: "나는 구름을 다스린다! 이 주문은 내가 시전한 세계 전역에 비를 내리게 한다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나. 이미 비가 오고 있다면 아무 일도 하지 않는다.", + dispel_rain: "비를 소환하는 주문의 대응물이다. 이 주문은 내가 시전한 세계 전역의 비를 걷어낸다. 비용은 $(l:items/amethyst)$(item)자수정 조각/$ 약 하나. 하늘이 이미 맑다면 아무 일도 하지 않는다.", + }, + + altiora: { + "1": "활공할 수 있을 만큼의 실체를 부여받은 날개 형태의 $(media)미디어/$ 다발을 내 주위에 소환한다.", + "2": "사용법은 $(item)겉날개/$와 동일하다. 대상(반드시 플레이어여야 한다)은 공중으로 떠오르고, 그 후 $(k:jump)를 누르면 날개가 펼쳐진다. 날개는 취약해서 어떤 표면에 닿아도 부서진다. 긴 비행에는 더 많은 $(media)미디어/$가 필요하다.", + }, + + "teleport/great": { + "1": "$(l:patterns/spells/basic#hexcasting:blink)$(action)점멸/$보다 훨씬 강력한 이 주문은 엔티티를 세계 어디로든 순간이동시킨다! 거리와 상관없이 항상 $(l:items/amethyst)$(item)충전된 자수정/$ 약 열 개가 드는 듯하다.", + "2": "제공한 벡터는 세계의 절대 위치가 아니라 오프셋이다. 예를 들어 (1, 0, 0)을 사용하면 엔티티는 원래 위치에서 정확히 동쪽으로 한 블록 떨어진 곳에 있게 된다.$(br2)불행히도 나 자신을 순간이동시킬 때는 인벤토리의 아이템들이 날아가 흩어지는 듯하다. 조심해야겠다.", + }, + + zeniths: { + "1": "이 주문 계열은 $(l:patterns/spells/nadirs)$(action)천저/$와 비슷하게 모두 엔티티에게 긍정적인 물약 효과를 부여한다. 하지만 이들은 위력의 $(italic)세제곱/$에 따라 $(media)미디어/$ 비용이 증가한다.", + + "potion/regeneration": "$(thing)재생/$을 부여한다. 기본 비용은 초당 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/night_vision": "$(thing)야간 투시/$를 부여한다. 기본 비용은 5초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/absorption": "$(thing)흡수/$를 부여한다. 기본 비용은 초당 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/haste": "$(thing)성급함/$을 부여한다. 기본 비용은 3초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/strength": "$(thing)힘/$을 부여한다. 기본 비용은 3초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + }, + + greater_sentinel: { + "1": "내 $(l:patterns/spells/sentinels)$(thing)감시자/$의 상급 버전을 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 두 개.", + "2": "더 강한 $(l:patterns/spells/sentinels)$(thing)감시자/$는 시각적으로 조금 더 흥미롭다는 점을 빼면, 고위 주문 없이 소환할 수 있는 일반 감시자처럼 작동한다. 하지만 내 주문이 작동할 수 있는 범위가 감시자 주위의 작은 영역까지 확장된다.", + }, + + make_battery: { + "1": "병에 $(media)미디어/$를 주입해 $(l:items/phials)$(item)약병/$을 만든다.", + "2": "$(l:patterns/spells/hexcasting)$(action)시전 아이템 제작/$ 주문들과 비슷하게, 다른 손에 $(item)유리병/$을 들고 있어야 하며, 주문에 떨어진 $(l:items/amethyst)$(item)자수정/$ 더미를 제공해야 한다. 자세한 내용은 $(l:items/phials)이 항목/$을 보라.", + }, + + "brainsweep_spell.1": "이 주문은 도무지 알 수가 없다... 솔직히 말해, 이것이 무엇을 하는지 알고 싶은지도 모르겠다.", + + + lore: { + cardamom1: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #1/$$(br2)사랑하는 아빠께,$(br)저를 대도서관에 보내려고 돈을 모아 주신 것에 감사해야 할 이유가 매일 더 늘어나는 것 같아요. 제가 배우는 양은 믿을 수 없을 정도예요! 제 머리에 다 들어갈지 모르겠어요.", + "2": "이 편지를 쓰는 저는 주돔에 앉아 있어요. 이곳은 육각술단이 관리하는데, 꼭대기에 책상마다 열심히 공부하는 학생들에게서 새어 나오는 떠돌이 사고 에너지를 붙잡는 특이한 장치가 있답니다.", + "3": "제가 이해하기로, 우리의 사고 과정, 그러니까 제가 펜을 움직이고 아빠가 이 편지를 읽게 하는 보이지 않는 장치들은 완전히 효율적이지 않아요. 약간의 에너지가 환경으로 방출돼요. 촛불이 빛과 열을 내듯이요.", + "4": "하지만 그녀의 연구 이야기는 이쯤 할게요. 오늘 지질단과의 첫 탐사를 마치고 돌아왔어요! 떠나기 전에 편지를 보내지 못해 죄송해요. 날짜가 갑자기 다가왔거든요. 우리는 대도서관 동쪽 땅의 균열 속으로 들어갔어요.", + "5": "다행히 밤은 아무 사고 없이 지나갔고, 우리는 주변 광맥을 조사하러 동굴 더 깊이 들어갔어요. '자수정'이라는 보라색 결정의 흔적 광맥을 찾고 있었어요. 지하 깊은 곳에 소량 생긴다고 하더군요.", + "6": "생각해 보니, 이제야 이 '자수정'에 대한 설명이 아마니타가 말하던 미디어 결정과 꽤 닮았다는 걸 깨달았어요. 이런 생각의 덩어리가 땅속에서 자연적으로 생긴다고 상상해 보세요! 왜 그런 일이 일어나는지는 상상도 못 하겠지만요.", + "7": "학생으로서 저는 3개월마다 한 번, 아카식 우편으로 무료 편지를 보낼 권리가 있어요. 안타깝게도 제 주머니 사정이 얼마나 얇은지는 아시잖아요... 그래서 이 제도가 아빠와 연락할 수 있는 유일한 방법일까 두려워요. 물론 가능한 한 자주 쓰겠습니다.", + "8": "그러니 3개월 뒤에 다시 쓰게 되겠네요.$(br2)사랑을 담아,$(br)-- 카다멈 스틸스", + }, + + cardamom2: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #2/$$(br2)사랑하는 아빠께,$(br)...세상에, 지난 석 달을 짧은 편지 하나로 요약하려니 얼마나 큰 고역인지요. 제가 받은 이 기적 같은 제도가 제게 이토록 잔인한 과제를 주다니요.", + "2": "지질단에서의 공부는 순조롭게 진행되고 있어요. 우리는 더 많은 탐사를 했고, 땅속 더 깊은 곳, 매끄러운 회색 돌이 단단하고 얇게 벗겨지는 석판으로 바뀌는 곳까지 내려갔어요. 발밑에서 끔찍하고 숨 막히는 먼지가 일어나서 기침을 참기 힘들 정도예요.", + "3": "그래도 우리는 그 자수정을 조금 찾아냈어요. 한 탐사에서 흔적 결정 몇 개가 있는 작은 광맥이 있었거든요. 우리는 그것을 하나도 가지지 말고 즉시 단장에게 제출하라는 엄격한 지시를 받았어요. 저는 그게 좀 이상했어요.", + "4": "무슨 목적인지도 상상하기 어려워요. 한 사서가 보석 백과사전을 알려 줬는데, 자수정은 거의 쓸모가 없어 보였어요. 하필 특수한 종류의 유리와 렌즈에 쓰인다고 하더군요.$(br2)짐작해 보자면, 혹시 그것이 미디어 결정과 관련된 것일까요?", + "5": "그렇다면 비밀주의와, 질문을 꺼리는 단장의 태도는 이것이 대도서관이 적대 세력 손에 넘기고 싶어 하지 않는 독자 연구이기 때문일지도 몰라요.$(br2)하지만 이 이론은 아마니타가 보여 준 실제 미디어 결정과는 느낌이 조금 달랐다는 점을 설명하지 못해요.", + "6": "동굴 안에서 제가 자수정의 느낌을 제대로 느끼지 못한 것은 지하에 있다는 스트레스 때문이었을 가능성이 커요. 겨우 만져 본 한 번에도 손이 떨렸고, 감각이 아주 희미했거든요. 하지만 아마니타의 미디어와 완전히 같지는 않아 보여요.", + "7": "바로 지난주에 그녀는 저를 아무것도 받치지 않은 채 공중에 띄웠어요! 옷의 무게는 그대로인데 몸은 저릿하고 공기보다 가벼워진다는 건 엄청나게 이상한 느낌이에요... 침대 위로 끌어다 놓아 준 게 그저 다행이었어요.", + }, + + cardamom3: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #3, 1/2부/$$(br2)사랑하는 아빠께,$(br)지난번 편지 이후 아주 이상한 일이 두 가지 일어났어요.$(br2)첫째로, 입문 육각술단 학생들을 담당하던 교수가 사라졌어요.", + "2": "더 이상하게도, 대도서관 학생들이 뒤틀린 관료 조직의 행정 부문을 깨우려는 모든 시도는 아주 단호하게 거부되었어요. 다른 교수들조차 그에 대해 말하기를 꺼리는 것 같아요.$(br2)상상하시겠지만, 우리 모두 매우 불안해하고 있어요.", + "3": "하지만 놀랍게도 제가 말씀드릴 두 가지 중 더 이상한 일은 그게 아니에요. 제가 평생 겪게 되리라 바라는 가장 끔찍한 일이 지질단과의 또 다른 외출에서 벌어졌어요. 이번에는 한 마을 근처로 탐사를 갈 예정이었어요.", + "4": "보통 그런 일을 할 때는 마을의 촌장이나 원로와 오래 소통해서 허가를 받고, 우리가 어디까지 가고 무엇을 해도 되는지 경계를 정해요. 하지만 이번에는 그 모든 절차가 이미 끝났다고 들었어요.", + "5": "우리는 마을 근처에 야영했지만, 가까운 평원이 훨씬 지내기 좋았을 텐데도 울창한 숲속에 자리를 잡았어요. 텐트를 친 곳에서는 마을이 거의 보이지 않았어요. 도착한 저녁 침낭을 펴는데, 사람들은 이상할 만큼 말이 없었어요.", + "6": "제가 들은 몇 안 되는 소리는 전부 일하는 소리 같았어요. 모루 위 망치 소리와 흙을 긁는 괭이 소리 같은 것들이요. 대화 소리는 한 조각도 듣지 못했어요.$(br2)다음 날 아침 우리는 등불을 준비하고 땅속으로 내려갔어요.", + "7": "우리가 정확히 무엇을 찾으러 동굴에 들어가는지는 듣지 못했지만, 다른 학생 하나가 더 많은 자수정을 찾는다는 말을 엿들었다고 했고, 그럴듯해 보였어요. 저는 동굴 벽에서 보라색 점이라도 찾으려고 눈을 크게 떴어요.", + "8": "장갑이 배부되었고 채굴을 시작하라는 지시를 받았어요. 함께 간 단장 중 하나는 대도서관의 높으신 분들이 보관용으로 쓰는 것을 본 적 있는 이상한 연보라색 상자를 가지고 있었고, 다른 학생들과 저는 성실하게 결정을 깨뜨리기 시작했어요.", + "9": "'중요하다'고 말하기는 망설여지지만, 제가 생각할 수 있는 가장 가까운 말이에요. 표면에 어둡고 움푹 팬 X가 신성한 의미라도 품은 듯한 어떤... 무게가 있었어요. 이유가 무엇이든, 우리는 그것들을 만지지 말라는 엄격한 지시를 받았어요.", + "10": "숨을 들이쉴 때마다 머릿속에 앞으로 나아갈 길을 약속하는 친절한 이정표가 세워지는 것 같았어요. 그 이정표는 가파른 절벽 아래를 곧장 가리키고 있었죠. 저는 고개를 흔들고 채굴 작업에 몰두했고, 그러자 이정표가 밀려나는 듯했어요.$(br2)저는 그 감각이 마음에 들지 않았어요.", + "11": "떠나면서, 우리가 캐지 않고 남겨 둔 그 어둡고 흠집 난 자리들의 표면에 아주 희미한 새 결정의 싹이 있는 것처럼 보인다는 점을 눈치채지 않을 수 없었어요. 지질학에서 배운 모든 것에 따르면 그런 일은 말이 되지 않았어요.", + "12": "지상으로 돌아오는 길은 별일 없었고, 해가 질 무렵 텐트로 돌아왔어요-- 죄송해요, 이 편지에 쓸 종이가 거의 다 떨어졌어요. 아카식 편지 한 장에 쓸 수 있는 양은 한계가 있네요... 이 이야기는 이어서 써야겠어요.", + }, + + cardamom4: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #3, 2/2부/$$(br2)사랑하는 아빠께,$(br)말씀드렸듯 이야기를 쓸 종이가 모자랐기 때문에 나머지는 이 편지에 적어요. 우리는 해질녘에 막 야영지로 돌아왔어요.", + "2": "한밤중에 볼일을 보려고 일어났어요. 달은 구름에 가려 있었고, 고백하건대 저는 숲의 바람 속에서 길을 잃어 야영지로 돌아가는 길을 찾지 못했어요. 밤의 괴물이 두려워서 마을로 향하기로 했어요.", + "3": "마을을 찾는 건 어렵지 않았지만 소리가 거의 없었어요. 이렇게 늦은 밤이라도 여관은 북적이지는 않아도 적어도 조용하진 않을 거라고 생각했어요. 하지만 여관 문틈으로 들여다보니 아무도 없었어요.$(br2)문을 두드렸지만 아무 대답도 없었죠.", + "4": "맥박이 빨라지기 시작했고, 저는 다음 집에 들어가기로 했어요. 안에 누가 있든 잠을 방해받은 것을 이해해 줄 거라고 생각했어요. 적어도 다른 목소리를 듣는 것만으로도 안심이 되었을 거예요, 설령 도와주지 않더라도.", + "5": "그때 구름이 움직였고, 달빛이 침대 위의 존재를 비추었어요.$(br2)저는 비명을 질렀고, 그것의 눈이 번쩍 떠졌어요. 그것은... 분명하고 끔찍하게도 인간이 아니었어요. 사람의 끔찍한 퇴화물 같았어요. 이마는 너무 높고, 얼굴은 너무 평평했죠.", + "6": "그 눈이 저를 향했어요. 아, 그 눈은 끔찍했어요. 양처럼 흐리고 지성이라고는 없었어요! 그것이 입을 열자 고통스러운 말의 모조품, 떨리는 콧소리 신음이 흘러나왔어요.", + "7": "저는 달렸어요. 새로 드러난 달빛 속에서 창문 너머 다른 마을 사람들을 얼핏 보았고, 그들은 모두 제가 처음 본 그 $(italic)것/$처럼 뒤틀리고 단순해져 있었어요. 저는 마을에서, 그 소리에서, 숲의 어둠 속으로 전력으로 달렸어요.", + "8": "이 편지에서 아시겠지만, 저는 잘 해내지 못했어요. 그 뒤틀린 얼굴은 아직도 제 꿈을 괴롭혀요. 그것이 한때 인간이었을지도 모른다고 생각하면 몸서리쳐져요.$(br2)대도서관에 돌아온 뒤, 제가 몰래 가져온 결정 조각을 아마니타에게 보여 주었어요.", + "9": "그녀는 흥미로운 것도 말해 주었어요. 몇 통 전 편지에서 말한 특수 유리에 진짜 자수정처럼 미디어를 비슷하게 사용할 수 있다고 해요. 둘이 결정화되는 물리적 방식이 거의 동일하다는 것이죠.", + "10": "아빠의 돈 사정이 얼마나 빠듯한지, 대도서관까지 답장을 보내는 것이 얼마나 비싼지 알지만, 부탁드려요. 조언 한마디만 보내 주세요. 저는 너무 괴롭고, 아빠의 글을 읽으면 큰 위안이 될 거예요.$(br2)사랑을 담아,$(br)-- 카다멈", + }, + + cardamom5: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #4/$$(br2)아마니타가 사라졌어요.$(br2)어디로 갔는지 모르겠어요, 아빠. 마지막으로 본 것은 저녁 식사 때였고, 그녀는 방금 누군가에게 실종 사건에 대해 말했어요.", + "2": "그리고-- 그리고 그녀도 사라졌어요. 아무도 그녀 이야기를 하지 않아요. 너무 너무 무서워요, 아빠. 모두 알고 있는 걸까요? 누구에게나 그냥 $(italic)사라진/$ 친구가 하나쯤 있는 걸까요, 허공 속으로, 비존재 속으로.$(br2)그들은 어디로 $(italic)간/$ 걸까요?", + "3": "그들은 계속 모든 것을 닫고 있어요. 우리는 몇 주째 지질단 탐사를 가지 못했고, 주돔에서 미디어를 모으던 모든 장치가 사라졌고, 약제단은 몇 달째 열리지 않았어요... 흰개미가 속에서 건물을 갉아먹는 것 같아요.", + "4": "이 편지를 쓰는 데 정말 많은 용기가 필요했어요. 저는 사람들에게 직접 말할 용기가 없지만, 이곳 누구도 이 지식을 붙잡을 수 없다면 아빠가 소식을 밖으로 전해 주시기를 바라고 기도해요... 어딘가 작은 곳에서 퍼져나가길 바라는 것은 헛된 희망이겠지만요.", + "5": "더는 쓸 수 없어요, 손이 너무 떨려요, 제발, 우리를 구해 주세요.", + }, + + inventory: { + "1": "39번 감방, 복원 기록 #72, 베타 구금 센터$(br2)수감자 이름: 라파엘 바르$(br)죄목: 울아이 프로젝트에 대한 지식$(br)감방 공실 사유: 사망$(br)추가 기록: 다음 편지는 벽 대부분에 휘갈겨져 있었다.", + "2": "눈을 감으면 육각형이 보인다.$(br2)패턴들이 내 눈과 눈꺼풀 사이, 내 정신, 내 꿈을 침범한다. 나는 실에 매달린 결정처럼 정신이 들었다 나갔다 하며, 때때로 빛을 붙잡고 때때로 아무것도 아니다.", + "3": "오늘은 더 또렷하다. 아마도. 이제는 알 수 없다. 더는 피곤하다고 말할 수도 없다. 어느 순간 늘 함께하던 탈진감은 나를 떠났고, 대신 다른 무언가가 내 눈을 찌르러 왔다. 피로는 느낄 수 없다. 하지만 거기 있다.", + "4": "가끔 내가 왜 여기 있는지 떠오른다. 내가 아는 것에 대해 너무 시끄럽게 굴었던 기억이 난다... 매우 밝은 방에서 무언가를 들었던 기억이 난다. 내 생각이 유리로 얼고, 부서지고, 녹고, 몇 번이고 재결정화되던 기억이 난다.", + "5": "그들은 나를 눈속임도 통하지 않을 만큼 망가뜨렸다고 생각했지만 나는 고통을 느낄 만큼은 깨어 있었고 지금도 깨어 있다$(br2)나는 잠들지 않지만 깨어나면 눈의 딱지를 문질러 떼어낼 수 없다. 그러면 피부가 베이고 피가 나기 때문이다.", + "6": "그들은 나를 죽이지 않는다. 내 남편이 내 초점구를 가지고 있어서, 내가 죽으면 알 것이기 때문이다. 하지만 그는 육각술사가 아니고 그 평범한 실력으로 나를 찾을 수 없다. 나는 영향 범위 밖에 있다$(br2)생각하는 게 아 프다. 말 그대로. 생각들이 너무 낭비적이다.", + "7": "밝은 방의 의사들이 모래 같지만 더 날카로운 것을 억지로 들이마시게 했던 기억이 난다. 너무 아팠다. 처음에는 점막이 산산유리를 흡수하려는 육체적 고통뿐이었지만, 곧 그들은 내 정신에 손톱을 박아 넣었다.", + "8": "시간 밖으로 표류한다. 가끔 미래의 환영을 본다고 믿는다. 말이 되는 것 같지만 지금 일어날 수는 없다. 하얀 방 사람들이 말했듯 나는 영원히 여기 있을 것을 알기 때문이다. 내가 쓰러지고 두개골이 깨지는 것을 본다.", + "9": "내 학생들이 무사했으면 좋겠다. 왜 그런 생각을 하지? 낭비다. 그들은 내가 낭비라고 말했다. 나를 파괴하는 것만으로 만족하지 못하고, 내내 내가 그럴 만했다고 느끼게 만들었다. 뼈를 부술 몽둥이나 돌이 아니라, 말뿐이었다.", + "10": "주변에 미디어가 가득해서 여러 번 주문문양을 시전해 탈출하거나 적어도 고통을 꺼 버리려 했다. 하지만 내 정신의 들판을 행진하는 패턴들은 내가 손을 뻗으려 하면 비웃으며 녹아 사라진다.", + "11": "어쩌면 나는 그저 초과 시전 의존의 아주 아주 아주 아주 말기일 뿐인지도 모른다. 눈과 눈꺼풀 사이 공간을 종이처럼 베는 패턴들은 들어 본 적이 있고, 신경의 보라색 가장자리도 들어 본 적이 있다. 계속 쓰려는 의미가 있을까.", + "12": "그들은 세상 모두를 죽일 것이다 그렇지 않은가 대도서관도 나만큼 먹어야 한다 ... 내가 마지막으로 언제 먹었지$(br2)다른 모두도 먹어야 한다. 세계의 모든 농부가 비어 있고 모든 지식이 먹혀 버리면 그들은 먹을 수 없다.", + "13": "언젠가 깨어나 우리가 남긴 모든 것을 보고 궁금해할지도 모른다. 왜 지하에 수백만 마일의 터널이 있는데 그것을 캘 만큼 똑똑한 사람이 아무도 없는지 궁금해할지도 모른다$(br2)그들이 이것을 읽는 것이 보인다. 그들은 ... 너무 멀리 가서 신경 쓰지 못할 것이다.", + }, + + experiment1: { + "1": "$(italic)이 기록에서 이 다섯 항목만 겨우 찾았다./$$(br2)폭발 #26$(li)위치: 카펜터스 노스$(li)인구: 174$(li)형성된 노드: 3$(li)진원지로부터 노드 거리: 수직 55-80m, 수평 85-156m$(li)미디어 생성량: 1560 uθ/min", + "2": "폭발 #27$(li)위치: 브래큰폴스$(li)인구: 79$(li)형성된 노드: 1$(li)진원지로부터 노드 거리: 수직 95m, 수평 67m$(li)미디어 생성량: 412 uθ/min", + "3": "폭발 #28$(li)위치: 그레이스턴$(li)인구: 약 1000$(li)형성된 노드: 18$(li)진원지로부터 노드 거리: 수직 47-110m, 수평 59-289m$(li)미디어 생성량: 8478 uθ/min", + "4": "폭발 #29$(li)위치: 이름 없음; 그레이스턴에서 서쪽으로 이틀 거리의 마을$(li)인구: 35$(li)형성된 노드: 0$(li)진원지로부터 노드 거리: N/A$(li)미디어 생성량: N/A$(br2)주: 주민들은 여전히 일반적인 방식으로 영향받음", + "5": "폭발 #30$(li)위치: 보일링 브룩$(li)인구: 231$(li)형성된 노드: 4$(li)진원지로부터 노드 거리: 수직 61-89m, 수평 78-191m$(li)미디어 생성량: 1862 uθ/min", + "6": "결론: 노드 하나에는 약 60명이 필요함. 너무 적으면 그들을 소비하지만 노드 형성에 충분한 에너지를 제공하지 못함. 투입 수와 폭/깊이 사이의 상관관계는 작음.$(br2)주민에 대한 영향은 여전히 예상보다 일관되게 더 심각함.", + }, + + experiment2: { + "1": "$(italic)이 문서들은 심하게 검열되어 있었다. 읽을 수 있는 글을 여기에 옮겼다./$$(br2)피험자 #1 \"A.E.\"$(br)절차 직후 저항 중단. 얼굴 표정과 팔다리는 축 늘어졌으나 도움 없이 설 수 있음. 말을 걸면 반응 없음.", + "2": "절차 직후 심박수 높음. 다만 직전의 공포 상태 때문에 결론 불가. 결과 싹은 35 uθ/min 생성.$(br)...$(br)피험자 #4 \"P.I.\"$(br)P.I.에게 심리 검사 실시. 대상은 대상 영속성 유지.", + "3": "피험자 #7 \"T.C.\"$(br)절차 몇 시간 후 다른 피험자와 유사한 결과: 서 있을 수 있고 간단한 작업 수행 가능... $(br2)피험자 #11 \"R.S.\"$(br)절차 전 진정 처리...$(br2) ...", + "4": "피험자 #23 \"A.L.\"$(br)대부분의 피험자보다 말하는 능력이 더 오래 유지됨. 몇 시간에 걸쳐 끊어진 문장으로 줄어들고, 결국 단어 하나 \"카드\"만 남음.$(br2)추가 실험: 절차가 직업 기억에 어떤 영향을 주는가?", + }, + }, + // ^ lore + + interop: { + "1": "$(hex)육각술/$은 다재다능하다. 내 세계가 특정 다른 힘에 의해 $(italic)변형/$되어 있음을 발견한다면, $(hex)육각술/$을 그것들과 조화롭게 결합해 사용할 수 있을지도 모른다.", + "2": "하지만 자연이 내 기술의 이런 측면을 만들 때에는 덜 주의를 기울인 듯하다는 점을 기억해야 한다. 이상한 동작과 버그가 예상된다. 모드 개발자가 최선을 다해 고치겠지만, 기적을 기대해서는 안 된다.", + "3": "마지막으로, 이 세계의 전승과 이야기에 관심이 생긴다면, 이러한 상호작용을 살펴보며 정리한 어떤 기록도 가벼운 여담 이상으로 여겨서는 안 된다고 생각한다.", + + gravity: { + "1": "엔티티의 중력을 가져오고 설정하는 액션을 발견했다. 약간 메스껍지만 흥미롭다.$(br2)흥미롭게도 $(l:patterns/spells/flight)$(action)비행/$ 주문들은 범위나 지속 시간에 제한이 있고, 중력 조작에는 그런 제한이 없다.", + get: "주어진 엔티티를 끌어당기는 중력의 주 방향을 단위 벡터로 얻는다. 대부분의 엔티티에서는 아래쪽, <0, -1, 0>일 것이다.", + set: "주어진 엔티티를 끌어당기는 중력의 주 방향을 설정한다. 주어진 벡터는 $(l:patterns/math#hexcasting:coerce_axial)$(action)축의 정화/$에 따라 가장 가까운 축으로 강제된다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + }, + + pehkui: { + "1": "엔티티의 크기를 바꾸고, 정상 크기보다 얼마나 크거나 작은지 조회하는 방법을 발견했다.", + get: "엔티티의 크기를 정상 크기에 대한 비율로 얻는다. 대부분의 엔티티에서는 1일 것이다.", + set: "엔티티의 크기를 정상 크기에 대한 비율로 설정한다. 비용은 $(item)자수정 조각/$ 약 1개.", + }, + }, + }, + // ^ page + }, + // ^ hexcasting +} diff --git a/doc/resources/assets/farmersdelight/lang/ko_kr.json b/doc/resources/assets/farmersdelight/lang/ko_kr.json new file mode 100644 index 0000000000..6f9ad2024b --- /dev/null +++ b/doc/resources/assets/farmersdelight/lang/ko_kr.json @@ -0,0 +1,3 @@ +{ + "block.farmersdelight.skillet": "프라이팬" +} diff --git a/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 b/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 new file mode 100644 index 0000000000..a4b476e629 --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 @@ -0,0 +1,48 @@ +{ + hexdoc: { + hexcasting: { + title: "헥스 책", + description: "헥스 책의 모든 내용을 한곳에.", + }, + + renderer: { + renders: "렌더링", + palettes: "팔레트", + + animated: "애니메이션", + monocolor: "단색", + gradient: "그라데이션", + segment: "분할", + + default: "기본", + turbo: "turbo", + dark2: "dark2", + tab10: "tab10", + }, + + pattern: { + show: "클릭하여 주문 표시", + hide: "클릭하여 주문 숨기기", + + multiplier: "${speedScale()}x", + paused: "일시 정지됨", + + not_supported: "사용 중인 브라우저는 패턴 시각화를 지원하지 않습니다. 패턴 코드: {}", + }, + + villager_requirements: { + any: "{level} 이상의 주민이 필요합니다", + professional: "{level} 이상의 {profession} 주민이 필요합니다", + }, + }, + + "block.hexcasting": { + slate: "빈 석판", + }, + + "tag.item.c": { + brown_dye: "갈색 염료", + glowstone_dusts: "발광석 가루", + wood_sticks: "나무 막대기", + }, +}