From b8cb13b3b22eed81c25eadcaf9387c0d471ef1c3 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sat, 29 Aug 2026 02:58:40 +0000 Subject: [PATCH 1/6] =?UTF-8?q?chore(l10n):=20update=20Norwegian=20Bokm?= =?UTF-8?q?=C3=A5l=20translation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(l10n): update Norwegian Bokmål translation Co-authored-by: Hexxy Weblate Co-authored-by: Hidden Language: Norwegian Bokmål Progress: 15.8% (219 of 1386 strings) Progress: 8.5% (118 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/nb_NO/ Translation: Hex Casting/Common --- .../hexcasting/lang/no_no.flatten.json5 | 234 +++++++++++++++++- 1 file changed, 233 insertions(+), 1 deletion(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/no_no.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/no_no.flatten.json5 index fa3fef8494..7bbbf2b3e3 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/no_no.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/no_no.flatten.json5 @@ -1,6 +1,6 @@ { "item.hexcasting": { - book: "Hex Notisbok", + book: "Hex Notisblokk", staff: { oak: "Eikestav", spruce: "Granstav", @@ -91,5 +91,237 @@ trinket: "Tingel", artifact: "Artefakt", battery: "Flaske med Medie", + creative_unlocker: { + "": "Mediekuben", + for_emphasis: "UENDELIG MEDIE", + tooltip: "Spis for å låse opp all kunnskap om %s.", + mod_name: "Hexmaning", + }, + lore_fragment: { + "": "Historie Fragment", + all: "Det virker som om at jeg har funnet alle historiene denne verden har å tilby.", + }, + }, + "entity.hexcasting": { + wall_scroll: "Hengende Rull", + }, + "block.hexcasting": { + conjured_light: "Fremmanet Lys", + conjured_block: "Fremmanet Blokk", + directrix: { + empty: "Tomt Direktiv", + redstone: "Murer Direktiv", + boolean: "Gjeter Direktiv", + }, + impetus: { + empty: "Tom Manemotor", + rightclick: "Verktøysmed Manemotor", + look: "Pilmaker Manemotor", + redstone: "Geistlig Manemotor", + }, + akashic_: { + record: "Akasisk Register", + bookshelf: "Akasisk Bokhylle", + connector: "Akasisk Ligatur", + }, + slate: { + "": "Tavle", + blank: "Blank Tavle", + written: "Mønstret Tavle", + }, + slate_: { + block: "Tavleblokk", + tiles: "Tavlefliser", + bricks: "Tavlemur", + bricks_small: "Småtavlemur", + pillar: "Tavlesøyle", + }, + amethyst_: { + dust_block: "Ametyststøvblokk", + tiles: "Ametystfliser", + bricks: "Ametystmur", + bricks_small: "Småametystmur", + pillar: "Ametystsøyle", + }, + slate_amethyst_: { + tiles: "Tavle og Ametystfliser", + bricks: "Tavle og Ametystmur", + bricks_small: "Småtavle og ametystmur", + pillar: "Tavle og Ametystsøyle", + }, + scroll_paper: "Rullepapir", + ancient_scroll_paper: "Eldgammelt Rullepapir", + scroll_paper_lantern: "Papirlykt", + ancient_scroll_paper_lantern: "Eldgammel Papirlykt", + amethyst_sconce: "Ametystlampe", + edified_: { + log: "Åpenbartømmer", + log_amethyst: "Ametystfylt Åpenbartømmer", + log_aventurine: "Adventurinfylt åpenbartømmer", + log_citrine: "Citrinfylt Åpenbartømmer", + log_purple: "Lilla Åpenbartømmer", + wood: "Åpenbartre", + planks: "Åpenbarplanker", + panel: "Åpenbarpaneler", + tile: "Åpenbarfliser", + door: "Åpenbardør", + trapdoor: "Åpenbarfallem", + stairs: "Åpenbartrapp", + slab: "Åpenbarhelle", + button: "Åpenbarknapp", + pressure_plate: "Åpenbartrykkplate", + fence: "Åpenbargjerde", + fence_gate: "Åpenbargrind", + }, + stripped_edified_log: "Slinket Åpenbartømmer", + stripped_edified_wood: "Slinket Åpenbartre", + amethyst_edified_leaves: "Ametyståpenbarløv", + aventurine_edified_leaves: "Adventurinåpenbarløv", + citrine_edified_leaves: "Citrinåpenbarløv", + quenched_allay: "Slukket Hjelpeånd", + quenched_allay_: { + tiles: "Slukket Hjelpeåndfliser", + bricks: "Slukket Hjelpeåndmur", + bricks_small: "Små Mettet Hjelpeåndmur", + }, + }, + "effect.hexcasting": { + enlarge_grid: "Klarhet", + shrink_grid: "Uklarhet", + }, + "item.minecraft.potion.effect": { + enlarge_grid: "Klarhetsbrygg", + enlarge_grid_long: "Klarhetsbrygg", + enlarge_grid_strong: "Klarhetsbrygg", + shrink_grid: "Uklarhetsbrygg", + shrink_grid_long: "Uklarhetsbrygg", + shrink_grid_strong: "Uklarhetsbrygg", + }, + "item.minecraft.splash_potion.effect": { + enlarge_grid: "Kastbart klarhetsbrygg", + enlarge_grid_long: "Kastbart klarhetsbrygg", + enlarge_grid_strong: "Kastbart klarhetsbrygg", + shrink_grid: "Kastbart uklarhetsbrygg", + shrink_grid_long: "Kastbart uklarhetsbrygg", + shrink_grid_strong: "Kastbart uklarhetsbrygg", + }, + "item.minecraft.lingering_potion.effect": { + enlarge_grid: "Vedvarende klarhetsbrygg", + enlarge_grid_long: "Vedvarende klarhetsbrygg", + enlarge_grid_strong: "Vedvarende klarhetsbrygg", + shrink_grid: "Vedvarende uklarhetsbrygg", + shrink_grid_long: "Vedvarende uklarhetsbrygg", + shrink_grid_strong: "Vedvarende uklarhetsbrygg", + }, + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "Klarhetspil", + enlarge_grid_long: "Klarhetspil", + enlarge_grid_strong: "Klarhetspil", + shrink_grid: "Uklarhetspil", + shrink_grid_long: "Uklarhetspil", + shrink_grid_strong: "Uklarhetspil", + }, + "itemGroup.hexcasting": { + hexcasting: "Hex Maning", + scrolls: "Hex Maning (Ruller)", + }, + "gui.hexcasting": { + spellcasting: "Hex Rutenett", + }, + "category.hexcasting": { + binds: "Hex Maning", + }, + "key.hexcasting": { + spellbook_prev: "Forrige Tryllebokside", + spellbook_next: "Neste Tryllebokside", + }, + "tag.hexcasting": { + staves: "Hex Staver", + edified_logs: "Åpenbartømmer", + edified_planks: "Åpenbarplanker", + phial_base: "Tom Medieflaske", + }, + "tag.item.hexcasting": { + brainswept_circle_components: "Hjernevaskede Sirkelkomponenter", + directrices: "Direktiver", + impeti: "Manemotorer", + seal_materials: "Lukkematerialer", + }, + "emi.category.hexcasting": { + brainsweep: "Flå Sinn", + "craft.battery": "Lage Medieflaske", + edify: "Åpenbar Spire", + villager_leveling: "Handelsnivåheving", + villager_profession: "Bygdingsyrke", + }, + "text.autoconfig.hexcasting": { + title: "Hexmaning Konfigurering", + category: { + common: "Felles", + client: "Klient", + server: "Server", + }, + option: { + common: { + dustMediaAmount: { + "": "Støvmediemengde", + "@Tooltip": "Hvor mye medie ett eneste ametyststøv er verdt", + }, + shardMediaAmount: { + "": "Skårmediemengde", + "@Tooltip": "Hvor mye medie ett eneste ametystskår er verdt", + }, + chargedCrystalMediaAmount: { + "": "Ladet Ametysts mediemengde", + "@Tooltip": "Hvor mye medie er en eneste ladet ametyst verdt", + }, + mediaToHealthRate: { + "": "Medie til Helse kurs", + "@Tooltip": "Hvor mye medie ett halvt hjerte er verdt når helse er brukt til å mane", + }, + cypherCooldown: { + "": "Cypher Avkjølingstid", + "@Tooltip": "Hvor lang tid i ticks (en tjuendedel av ett sekund) ett cypher bruker på å avkjøles", + }, + trinketCooldown: { + "": "Tingel Avkjølingstid", + "@Tooltip": "Hvor lang tid i ticks (en tjuendedel av ett sekund) ett tingel bruker på å avkjøles", + }, + artifactCooldown: { + "": "Artefakt Nedkjølingstid", + "@Tooltip": "Hvor lang tid i ticks (en tjuendedel av ett sekund) en artefakt bruker på å avkjøles", + }, + }, + client: { + ctrlTogglesOffStrokeOrder: { + "": "Ctrl skrur av strekrekkefølge", + "@Tooltip": "Om ctrl-tasten vill istedenfor skru *av* fargegradienten på mønstre", + }, + disableInworldScrolling: { + "": "Skru av skrolling utenfor rutenettet", + "@Tooltip": "Om skrolling skal være avskrudd for abakus og trylleboker utenfor rutenettet (Dette gjelder ikke tastebindinger).", + }, + invertSpellbookScrollDirection: { + "": "Inverter Tryllebokskrolleretning", + "@Tooltip": "Om å skrolle oppover vil bla oppover ifølge sidenummer, og vice versa", + }, + invertAbacusScrollDirection: { + "": "Inverter abakusskrolleretning", + "@Tooltip": "Om å skrolle oppover vil øke nummeret til abakuset, og vice versa", + }, + gridSnapThreshold: { + "": "Rutenetttiltrekningsterskel", + "@Tooltip": "I manerutenettet, lengden fra en dott musepekeren må være for at streken blir tiltrukket og kjørt gjennom den neste dotten, der 0.5 betyr 50% av veien (0.5-1)", + }, + clickingTogglesDrawing: { + "": "Klikking veksler på og av tegning", + "@Tooltip": "Om du klikker for å starte og slutte å tegne, istedenfor å holde ned og dra for å tegne", + }, + alwaysShowListCommas: { + "": "Alltid vis listekomma", + "@Tooltip": "Om alle iotatyper skal være separert av komma når vist i lister (Originalt bruker ikke mønsteriotaer komma)", + }, + }, + }, }, } From f2fd1b10893b32e557975929517b613da8e8db2d Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sat, 29 Aug 2026 02:58:41 +0000 Subject: [PATCH 2/6] chore(l10n): update Chinese (Simplified Han script) translation Co-authored-by: ChuijkYahus <94828194+ChuijkYahus@users.noreply.github.com> Co-authored-by: Hexxy Weblate Language: Chinese (Simplified Han script) Progress: 100.0% (1386 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/zh_Hans/ Translation: Hex Casting/Common --- .../main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 index 614d12a195..5f426897b5 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/zh_cn.flatten.json5 @@ -1611,7 +1611,7 @@ }, }, logic: { - bool_coerce: "将参数变换为布尔值。数 $(thing)0/$、$(thing)Null/$、False,以及空列表会变为 False。其余所有则变为 True。", + bool_coerce: "将参数变换为布尔值。数 $(thing)0/$、$(thing)Null/$、False、向量 (0, 0, 0)、空列表会变为 False。其余所有变为 True。", bool_to_number: "将布尔值变换为数。True 变为 $(thing)1/$, False 变为 $(thing)0/$。", not: "如果参数是 True,返回 False;如果参数是 False,返回 True。", or: "如果至少有一个参数是 True,返回 True。否则返回 False。", From 7c7b1a010185fa5f68d34c5b644d5f238af497ff Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sat, 29 Aug 2026 02:58:41 +0000 Subject: [PATCH 3/6] chore(l10n): update translation files chore(l10n): update Korean translation chore(l10n): update Korean translation Add-on: Remove blank strings Co-authored-by: Anonymous Co-authored-by: Hexxy Weblate Language: Korean Progress: 100.0% (23 of 23 strings) Progress: 96.5% (1338 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ko/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/ko/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/ko_kr.flatten.json5 | 499 ++---------------- .../hexcasting/lang/ko_kr.flatten.json5 | 11 +- 2 files changed, 56 insertions(+), 454 deletions(-) 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 index 71596ce055..4319e90df3 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 @@ -1,8 +1,6 @@ -// A work in progress { "item.hexcasting": { book: "헥스 수첩", - staff: { oak: "참나무 지팡이", spruce: "가문비나무 지팡이", @@ -19,39 +17,32 @@ 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: "사이퍼", @@ -62,7 +53,6 @@ abacus: "주판", jeweler_hammer: "보석 세공 망치", sub_sandwich: "잠수 샌드위치", - dye_colorizer_: { white: "흰색 안료", orange: "주황색 안료", @@ -81,7 +71,6 @@ red: "빨간색 안료", black: "검은색 안료", }, - pride_colorizer_: { agender: "에이젠더 안료", aroace: "아로에이스 안료", @@ -100,57 +89,47 @@ 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: "석판 타일", @@ -158,7 +137,6 @@ bricks_small: "작은 석판 벽돌", pillar: "석판 기둥", }, - amethyst_: { dust_block: "자수정 가루 블록", tiles: "자수정 타일", @@ -166,20 +144,17 @@ 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: "자수정 교화 원목", @@ -199,28 +174,22 @@ 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: "명료의 물약", @@ -229,7 +198,6 @@ shrink_grid_long: "혼탁의 물약", shrink_grid_strong: "혼탁의 물약", }, - "item.minecraft.splash_potion.effect": { enlarge_grid: "투척용 명료의 물약", enlarge_grid_long: "투척용 명료의 물약", @@ -238,7 +206,6 @@ shrink_grid_long: "투척용 혼탁의 물약", shrink_grid_strong: "투척용 혼탁의 물약", }, - "item.minecraft.lingering_potion.effect": { enlarge_grid: "잔류형 명료의 물약", enlarge_grid_long: "잔류형 명료의 물약", @@ -247,7 +214,6 @@ shrink_grid_long: "잔류형 혼탁의 물약", shrink_grid_strong: "잔류형 혼탁의 물약", }, - "item.minecraft.tipped_arrow.effect": { enlarge_grid: "명료의 화살", enlarge_grid_long: "명료의 화살", @@ -256,32 +222,26 @@ shrink_grid_long: "혼탁의 화살", shrink_grid_strong: "혼탁의 화살", }, - "itemGroup.hexcasting": { hexcasting: "육각술", scrolls: "육각술 (두루마리)", }, - "gui.hexcasting": { spellcasting: "주문문양 격자", }, - "category.hexcasting": { - "binds": "육각술", + binds: "육각술", }, - "key.hexcasting": { - "spellbook_prev": "이전 마도서 페이지", - "spellbook_next": "다음 마도서 페이지", + spellbook_prev: "이전 마도서 페이지", + spellbook_next: "다음 마도서 페이지", }, - "tag.hexcasting": { staves: "육각술 지팡이", edified_logs: "교화된 원목", edified_planks: "교화된 판자", phial_base: "빈 약병", }, - "tag.item.hexcasting": { brainswept_circle_components: "정신이 벗겨진 마법진 부품", directrices: "지향석", @@ -289,7 +249,6 @@ impeti: "원동석", seal_materials: "봉인 재료", }, - "emi.category.hexcasting": { brainsweep: "정신 벗기기", "craft.battery": "약병 제작", @@ -297,16 +256,13 @@ villager_leveling: "거래 레벨", villager_profession: "주민 직업", }, - "text.autoconfig.hexcasting": { title: "Hexcasting 설정", - category: { common: "공통", client: "클라이언트", server: "서버", }, - option: { common: { dustMediaAmount: { @@ -338,7 +294,6 @@ "@Tooltip": "유물의 재사용 대기시간(틱)", }, }, - client: { ctrlTogglesOffStrokeOrder: { "": "Ctrl로 획순 표시 끄기", @@ -346,7 +301,7 @@ }, disableInworldScrolling: { "": "월드 내 스크롤 비활성화", - "@Tooltip": "일반 월드에서 마도서와 주판의 스크롤 입력을 비활성화하되, 키 설정과 지팡이 화면 스크롤은 그대로 유지" + "@Tooltip": "일반 월드에서 마도서와 주판의 스크롤 입력을 비활성화하되, 키 설정과 지팡이 화면 스크롤은 그대로 유지", }, invertSpellbookScrollDirection: { "": "마도서 스크롤 방향 반전", @@ -377,7 +332,6 @@ "@Tooltip": "활성 석판의 패턴을 흔들림 없이 렌더링할지 여부(활성 석판이 많을 때 성능 향상)", }, }, - server: { opBreakHarvestLevel: { "": "파괴 채굴 레벨", @@ -401,7 +355,7 @@ }, greaterTeleportSplatsItems: { "": "상급 순간이동 시 아이템 흩뿌림", - "@Tooltip": "상급 순간이동을 사용할 때 플레이어 인벤토리의 아이템이 튀어나갈지 여부" + "@Tooltip": "상급 순간이동을 사용할 때 플레이어 인벤토리의 아이템이 튀어나갈지 여부", }, doesTrueNameHaveAmbit: { "": "진명이 영향 범위를 가지는지", @@ -446,7 +400,6 @@ }, }, }, - "advancement.hexcasting:": { root: { "": "육각술 연구", @@ -454,7 +407,7 @@ }, creative_unlocker: { "": "무한한 힘", - "desc": "크리에이티브 디버그 아이템을 찾았습니다." + desc: "크리에이티브 디버그 아이템을 찾았습니다.", }, enlightenment: { "": "깨달음에 도달하기", @@ -506,48 +459,39 @@ 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: "육각 패턴", "title.styled": "육각 패턴 ", - "description": "시각적 육각술 패턴", - "example": "" + description: "시각적 육각술 패턴", + example: "", }, - hexcasting: { "pattern.unknown": "알 수 없는 패턴 리소스 위치 %s", - debug: { media_withdrawn: "%s - 꺼낸 미디어: %s", "media_withdrawn.with_dust": "%s - 꺼낸 미디어: %s (가루 %s개)", @@ -556,32 +500,28 @@ 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": "비행 영역", + 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: { @@ -598,26 +538,22 @@ }, 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: { @@ -636,18 +572,15 @@ }, }, }, - 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]", @@ -655,7 +588,6 @@ boolean_true: "True", boolean_false: "False", }, - // ^ tooltip spelldata: { onitem: "내용: %s", anything: "아무것", @@ -663,7 +595,6 @@ "entity.whoknows": "알 수 없는 엔티티", "akashic.nopos": "아카식 레코드는 이곳의 어떤 이오타도 알지 못한다(버그입니다)", }, - subtitles: { casting: { pattern: { @@ -678,10 +609,8 @@ thoth: "토트가 튕긴다", }, }, - ambiance: "주문문양 격자가 울린다", "staff.reset": "시전이 초기화된다", - abacus: { "": "주판이 딸깍인다", shake: "주판이 흔들린다", @@ -697,26 +626,20 @@ "flight.ambience": "플레이어가 난다", "flight.finish": "비행이 끝난다", }, - attributes: { grid_zoom: "시전 격자 크기", media_consumption: "미디어 소비량", ambit_radius: "플레이어 영향 반경", sentinel_radius: "감시자 영향 반경", - // TODO: the +1 is kind of janky scry_sight: "염시 시야", - feeble_mind: "나약한 정신" + feeble_mind: "나약한 정신", }, - - // Action localizations - action: { "hexcasting:": { "const/": { "null": "무의 반사", "true": "참의 반사", "false": "거짓의 반사", - "vec/": { px: "벡터의 반사 +X", py: "벡터의 반사 +Y", @@ -726,15 +649,13 @@ nz: "벡터의 반사 -Z", "0": "벡터의 반사 0", }, - "double/": { pi: "호의 반사", tau: "원의 반사", - "e": "오일러의 반사", + e: "오일러의 반사", phi: "조화의 반사", }, }, - get_caster: "정신의 반사", "entity_pos/eye": "나침반의 정화", "entity_pos/foot": "나침반의 정화 II", @@ -744,14 +665,12 @@ raycast: "궁수의 증류", "raycast/axis": "건축가의 증류", "raycast/entity": "정찰병의 증류", - "circle/": { impetus_pos: "길잡이돌의 반사", impetus_dir: "자철석의 반사", "bounds/min": "작은 접힘의 반사", "bounds/max": "큰 접힘의 반사", }, - append: "통합의 증류", unappend: "도출의 분해", index: "선택의 증류", @@ -766,7 +685,6 @@ replace: "외과의의 고양", construct: "연설가의 증류", deconstruct: "연설가의 분해", - get_entity: "엔티티의 정화", "get_entity/": { animal: "엔티티의 정화: 동물", @@ -775,7 +693,6 @@ player: "엔티티의 정화: 플레이어", living: "엔티티의 정화: 생물", }, - zone_entity: "구역의 증류: 전체", "zone_entity/": { animal: "구역의 증류: 동물", @@ -789,7 +706,6 @@ not_player: "구역의 증류: 비플레이어", not_living: "구역의 증류: 비생물", }, - swap: "광대의 묘수", rotate: "회전의 묘수", rotate_reverse: "회전의 묘수 II", @@ -802,12 +718,10 @@ fisherman: "낚시꾼의 묘수", "fisherman/copy": "낚시꾼의 묘수 II", swizzle: "사기꾼의 묘수", - unique: "고유성의 정화", and: "논리곱의 증류", or: "논리합의 증류", xor: "배타의 증류", - greater: "최대의 증류", less: "최소의 증류", greater_eq: "최대의 증류 II", @@ -818,8 +732,7 @@ type_not_equals: "비유사성의 증류", not: "부정의 정화", bool_coerce: "예언자의 정화", - if: "예언자의 고양", - + "if": "예언자의 고양", add: "덧셈의 증류", sub: "뺄셈의 증류", mul: "곱셈의 증류", @@ -841,22 +754,18 @@ 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: "폭발", @@ -865,12 +774,10 @@ blink: "점멸", break_block: "블록 파괴", place_block: "블록 설치", - "craft/cypher": "사이퍼 제작", "craft/trinket": "장신구 제작", "craft/artifact": "유물 제작", "craft/battery": "약병 제작", - recharge: "아이템 재충전", erase: "아이템 지우기", create_water: "물 생성", @@ -883,7 +790,6 @@ edify: "묘목 교화", colorize: "안료 내면화", cycle_variant: "시전자의 현혹", - "sentinel/": { create: "감시자 소환", "create/great": "상급 감시자 소환", @@ -891,61 +797,50 @@ 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: "엔티티 정화: 몬스터", @@ -953,7 +848,6 @@ player: "엔티티 정화: 플레이어", living: "엔티티 정화: 생물", }, - zone_entity: "구역 증류: 전체", "zone_entity/": { animal: "구역 증류: 동물", @@ -967,35 +861,29 @@ 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": { "": "Null", desc: "null 값", }, @@ -1032,18 +920,14 @@ 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은(는) 바꿀 수 없다", @@ -1056,13 +940,11 @@ 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제곱", @@ -1072,12 +954,10 @@ sin: "%s의 사인", cos: "%s의 코사인", }, - invalid_operator_args: { one: "스택 인덱스 %d에서 예상치 못한 이오타를 얻었다: %s", many: "스택 인덱스 %d-%d에서 예상치 못한 이오타 %d개를 얻었다: %s", }, - no_akashic_record: "%s에 아카식 레코드가 없다", disallowed: "%s은(는) 서버 관리자에 의해 금지되었다", disallowed_generic: "그 패턴은 서버 관리자에 의해 금지되었다", @@ -1087,11 +967,9 @@ unknown: "예외(%s)를 던졌다. 이것은 모드의 버그입니다.", stack_size: "스택 크기 제한을 초과했다", bad_caster: "더 큰 정신이 필요한 패턴을 실행하려 했다", - invalid_value: { "": "스택 인덱스 %s에 %s이(가) 필요했지만 %s을(를) 얻었다: %s", - - class: { + "class": { double: "숫자", boolean: "논리값", vector: "벡터", @@ -1099,8 +977,7 @@ pattern: "패턴", continuation: "점프 이오타", garbage: "가비지", - null: "null", - + "null": "null", entity: { "": "엔티티", mob: "몹", @@ -1108,16 +985,11 @@ player: "플레이어", living: "살아있는 엔티티", }, - entity_or_vector: "엔티티 또는 벡터", - unknown: "(알 수 없음, 어라, 이건 버그다)", }, - numvec: "숫자 또는 벡터", numlist: "정수 또는 목록", - "list.pattern": "패턴 목록", - double: { positive: { "": "양수", @@ -1126,7 +998,6 @@ }, between: "%d와 %d 사이의 숫자", }, - int: { "": "정수", positive: { @@ -1136,11 +1007,9 @@ }, between: "%d와 %d 사이의 정수", }, - evaluatable: "평가 가능한 것", bool_commute: "논리값, 0, 또는 1", }, - location_: { too_far: "%s은(는) 범위 밖이다", out_of_world: "%s은(는) 월드 안에 있지 않다", @@ -1148,19 +1017,16 @@ 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: "정확히 하나의 아이템", @@ -1171,69 +1037,46 @@ 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)포럼 링크/$", - + landing: "육각형 격자 위에 낯설고 거친 패턴을 그리는 새로운 마법 기술을 발견한 듯하다. 마음을 사로잡는다. 내 생각과 발견을 기록하는 일지를 쓰기 시작하기로 했다.$(br2)$(l:https://forum.petra-k.at/index.php)포럼 링크/$", category: { basics: { "": "시작하기", - desc: "이 기술의 수행자들은 $(l:items/staff)$(item)지팡이/$로 공중에 기묘한 패턴을 그려 이른바 $(hex)주문문양/$을 시전하거나, \ - 자신을 대신해 시전해 줄 $(l:items/hexcasting)$(item)강력한 마법 아이템/$을 만들었다고 한다. \ - 나도 같은 일을 하려면 어떻게 해야 할까?", + desc: "이 기술의 수행자들은 $(l:items/staff)$(item)지팡이/$로 공중에 기묘한 패턴을 그려 이른바 $(hex)주문문양/$을 시전하거나, 자신을 대신해 시전해 줄 $(l:items/hexcasting)$(item)강력한 마법 아이템/$을 만들었다고 한다. 나도 같은 일을 하려면 어떻게 해야 할까?", }, casting: { "": "육각술", - desc: "옛 대가들이 어떻게 $(hex)주문문양/$을 시전했는지 이해하기 시작했다! 조금 복잡하지만, \ - 분명 알아낼 수 있을 것이다. 어디 보자...", + desc: "옛 대가들이 어떻게 $(hex)주문문양/$을 시전했는지 이해하기 시작했다! 조금 복잡하지만, 분명 알아낼 수 있을 것이다. 어디 보자...", }, items: { "": "아이템", desc: "이 장에는 연구 중 마주칠 법한 마법적이고 신비한 아이템들을 기록한다.", }, - greatwork: { "": "위대한 작업", - desc: "나는... 너무 많은 것을 보았다. 나는... 소멸과 분해와 재구성을... 겪었다. \ - 세계의 원자들이 뒤집히고 전복되고 에너지로 격하되며 비명을 지르는 것을 보았다. \ - 보았다 보았다 보았$(k)get stick bugged lmao/$", - // alwinfy you think you're so funny + desc: "나는... 너무 많은 것을 보았다. 나는... 소멸과 분해와 재구성을... 겪었다. 세계의 원자들이 뒤집히고 전복되고 에너지로 격하되며 비명을 지르는 것을 보았다. 보았다 보았다 보았$(k)get stick bugged lmao/$", }, - lore: { "": "전승", - desc: "내 기술과 직접 관련은 없는 편지와 글을 몇 가지 찾아냈다. \ - 하지만 이것들로 세계의 역사 일부를 짐작할 수 있을지도 모른다. 어디 보자...", + desc: "내 기술과 직접 관련은 없는 편지와 글을 몇 가지 찾아냈다. 하지만 이것들로 세계의 역사 일부를 짐작할 수 있을지도 모른다. 어디 보자...", }, - interop: { "": "모드 간 호환성", desc: "Hexcasting과 상호 작용하는 모드가 설치된 듯하다! 여기에 자세히 적어 두었다.", }, - patterns: { "": "패턴", desc: "내가 발견한 모든 패턴과 그 기능의 목록.", @@ -1244,14 +1087,9 @@ }, great_spells: { "": "고위 주문", - desc: "여기에 기록한 주문들은 전설적인 난도와 힘을 지녔다고 전해진다. \ - 기록에 따르면 그것들은 $(l:items/scroll)드물게/$만 남겨진 듯하다(그럴 만한 이유가 있다고 문헌은 주장한다). \ - 그래 봤자 사라진 전통주의자들의 헛소리일 뿐일 것이다. 패턴은 패턴이니까.$(br2)\ - 무슨 일이 잘못될 수 있겠는가?", + desc: "여기에 기록한 주문들은 전설적인 난도와 힘을 지녔다고 전해진다. 기록에 따르면 그것들은 $(l:items/scroll)드물게/$만 남겨진 듯하다(그럴 만한 이유가 있다고 문헌은 주장한다). 그래 봤자 사라진 전통주의자들의 헛소리일 뿐일 것이다. 패턴은 패턴이니까.$(br2)무슨 일이 잘못될 수 있겠는가?", }, }, - // ^ categories - entry: { media: "미디어", creative_items: "크리에이티브 전용 아이템", @@ -1263,32 +1101,24 @@ 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: "마법진", @@ -1297,10 +1127,7 @@ akashiclib: "아카식 도서관", quenching_allays: "알레이 진정시키기", fanciful_staves: "화려한 지팡이", - - // and the actions readers_guide: "이 장을 읽는 법", - // ops basics_pattern: "기본 패턴", numbers: "숫자 리터럴", math: "수학", @@ -1316,21 +1143,15 @@ 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", @@ -1341,111 +1162,65 @@ 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)\ - 시전 상태를 초기화하고 싶다면, 웅크린 채 격자를 열면 된다.", + "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)\ - 비용이 있다면 각 액션의 해당 페이지에 기록해 두었다.", + "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 + "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)나침반의 정화/$를 보자. 이것은 엔티티 이오타를 받아 그 엔티티의 위치를 나타내는 벡터 이오타로 변환한다.", + }, + }, "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)이오타/$의 목록이다. 이오타는 단순한 정보 단위다.", @@ -1465,163 +1240,117 @@ "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)노란 불꽃을 일으키며, $(thing)가비지/$ 하나가 내 스택 맨 위로 밀려 들어간다.", - "not_enough_iotas.title": "이오타 부족", not_enough_iotas: "액션이 스택에 있는 것보다 더 많은 이오타를 요구했다.$(br2)밝은 회색 불꽃을 일으키며, 인수 개수를 채우는 데 필요한 만큼의 $(thing)가비지/$가 밀려 들어간다.", - "stack_size.title": "이오타 과다", - "stack_size": "스택 크기 제한을 초과하는 주문을 시전하려 했다.$(br2)검은 불꽃을 일으키며, 내 스택 전체가 단 하나의 $(thing)가비지/$로 대체된다.", - + stack_size: "스택 크기 제한을 초과하는 주문을 시전하려 했다.$(br2)검은 불꽃을 일으키며, 내 스택 전체가 단 하나의 $(thing)가비지/$로 대체된다.", "incorrect_iota.title": "잘못된 이오타", incorrect_iota: "실행된 액션은 인수로 특정 타입의 이오타를 기대했지만, 잘못된 것을 받았다. 잘못된 이오타가 여럿이면 오류 메시지는 스택 가장 깊은 곳의 오류만 알려 준다.$(br2)짙은 회색 불꽃을 일으키며, 잘못된 이오타가 $(thing)가비지/$로 대체된다.", - "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)붉은 불꽃을 일으키고, $(thing)가비지/$를 내 스택에 밀어 넣으며, 내 정신이 깎여 남은 활력의 절반을 빼앗긴다. 자연은 그런 연산에 모욕을 느끼고 보복으로 $(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)예를 들어 내가 $(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)미디어/$가 뒤엉킨 난장판처럼 보이는 무한한 영향 계열이 있는 듯하다. 완전히 쓸모없기 때문에 나는 그것들을 $(thing)가비지/$라고 이름 붙였다. 이들은 $(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)필경사의 반사/$는 대신 $(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)/$를 누르기만 하면, 내부 배터리를 사용해 지팡이로 직접 시전한 것처럼 안의 패턴들이 시전된다.", @@ -1630,69 +1359,54 @@ "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)원동석/$으로 돌아갈 길이 없다면 시전은 즉시 실패한다. 또한 주어진 블록에서 파동이 빠져나가는 방향은 반드시 명확해야 하며, 이웃이 너무 많은 블록에서는 실패한다.", @@ -1703,13 +1417,11 @@ "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: { @@ -1718,23 +1430,19 @@ }, 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/$는 앞쪽으로 내보낸다. 논리값을 전혀 제공하지 못하면 변고가 발생한다." + 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)미디어/$를 만들어낸다. 어떻게? 어쩌면-- 어쩌면 내 작업, 그것을 수행하는 과정이--", @@ -1742,19 +1450,13 @@ "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": "스택 위의 엔티티를 그 눈 위치로 변환한다. 아마 내게 쓰는 것이 좋겠다.", @@ -1773,47 +1475,35 @@ 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 성분으로 결합한다(아래에서 위 순서).", @@ -1822,7 +1512,6 @@ 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)τ/$의 값과 관련이 있다.", @@ -1833,47 +1522,37 @@ 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": "$(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/$를 스택에 추가한다.", + 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]이 된다.", @@ -1885,19 +1564,16 @@ 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/$, $(thing)Null/$, False, 빈 목록은 False가 되고, 그 밖의 모든 것은 True가 된다.", bool_to_number: "논리값을 숫자로 변환한다. True는 $(thing)1/$, False는 $(thing)0/$이 된다.", @@ -1905,17 +1581,14 @@ or: "인수 중 하나 이상이 True이면 True를, 아니면 False를 반환한다.", and: "두 인수가 모두 True이면 True를, 아니면 False를 반환한다.", xor: "정확히 하나의 인수만 True이면 True를, 아니면 False를 반환한다.", - if: "첫 번째 인수가 True이면 두 번째를 유지하고 세 번째를 버린다. 아니면 두 번째를 버리고 세 번째를 유지한다.", + "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: "스택 위의 위치를 그 위치의 엔티티로 변환한다(없으면 $(thing)Null/$).", "get_entity/": { @@ -1925,7 +1598,6 @@ player: "스택 위의 위치를 그 위치의 플레이어로 변환한다(없으면 $(thing)Null/$).", living: "스택 위의 위치를 그 위치의 살아있는 생물로 변환한다(없으면 $(thing)Null/$).", }, - zone_entity: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 모든 엔티티 목록으로 결합한다.", "zone_entity/": { animal: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 동물 목록으로 결합한다.", @@ -1940,7 +1612,6 @@ not_living: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 살아있지 않은 엔티티 목록으로 결합한다.", }, }, - lists: { index: "스택 맨 위의 숫자를 제거한 뒤, 맨 위의 목록을 그 목록의 n번째 요소로 바꾼다(n은 제거한 숫자). 숫자가 범위를 벗어나면 목록을 $(thing)Null/$로 바꾼다.", slice: "스택 맨 위의 숫자 두 개를 제거한 뒤, 스택 맨 위 목록에서 그 인덱스 사이의 부분 목록을 취한다. 하한은 포함하고 상한은 제외한다. 예를 들어 [0, 1, 2, 3, 4]의 0, 2 부분 목록은 [0, 1]이다.", @@ -1959,14 +1630,9 @@ construct: "맨 위 이오타를 제거한 뒤, 그것을 스택 맨 위 목록의 첫 번째 요소로 추가한다.", deconstruct: "스택 맨 위 목록에서 첫 번째 이오타를 제거한 뒤, 그 이오타를 스택에 푸시한다.", }, - patterns_as_iotas: { "1": "이 기술의 여러 특이점 중 하나는 $(italic)패턴 자체/$가 이오타처럼 작동할 수 있다는 것이다. 시전 중 내 스택에 올릴 수도 있다.$(br2)이로부터 꽤 명백한 질문이 생긴다. 그것들을 어떻게 표현할 것인가? 단순히 패턴을 그린다면 자연에게 그것을 내 스택에 추가하라고 말하는 것이 아니라, 그냥 액션에 대응될 것이다.", "2": "다행히 자연은 패턴을 직접 다룰 수 있게 해 주는 패턴들의 집합을 제공했다.$(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)회상/$을 그려야 한다.", @@ -1979,7 +1645,6 @@ "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)초점구/$를 만들 수 있다.", @@ -1996,59 +1661,43 @@ "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)주문문양/$이 패턴을 하나 시전할 때마다 하나씩 줄어든다." + "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)소환된 빛/$을 부술 때는 무시할 만한 양이다.", @@ -2061,104 +1710,79 @@ 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)감시자/$의 위치를 스택에 추가한다. 소환되어 있지 않다면 $(thing)Null/$을 추가한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", "sentinel/wayfind": "스택 맨 위의 위치 벡터를 그 위치에서 내 $(l:patterns/spells/sentinels)$(thing)감시자/$를 가리키는 단위 벡터로 변환한다. 소환되어 있지 않다면 $(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)이것이 무슨 쓸모인지 내게는 불명확하다. 하지만 쓸모는 보는 사람의 눈에 달린 것이겠지." + "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)저를 대도서관에 보내려고 돈을 모아 주신 것에 감사해야 할 이유가 매일 더 늘어나는 것 같아요. 제가 배우는 양은 믿을 수 없을 정도예요! 제 머리에 다 들어갈지 모르겠어요.", @@ -2170,7 +1794,6 @@ "7": "학생으로서 저는 3개월마다 한 번, 아카식 우편으로 무료 편지를 보낼 권리가 있어요. 안타깝게도 제 주머니 사정이 얼마나 얇은지는 아시잖아요... 그래서 이 제도가 아빠와 연락할 수 있는 유일한 방법일까 두려워요. 물론 가능한 한 자주 쓰겠습니다.", "8": "그러니 3개월 뒤에 다시 쓰게 되겠네요.$(br2)사랑을 담아,$(br)-- 카다멈 스틸스", }, - cardamom2: { "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #2/$$(br2)사랑하는 아빠께,$(br)...세상에, 지난 석 달을 짧은 편지 하나로 요약하려니 얼마나 큰 고역인지요. 제가 받은 이 기적 같은 제도가 제게 이토록 잔인한 과제를 주다니요.", "2": "지질단에서의 공부는 순조롭게 진행되고 있어요. 우리는 더 많은 탐사를 했고, 땅속 더 깊은 곳, 매끄러운 회색 돌이 단단하고 얇게 벗겨지는 석판으로 바뀌는 곳까지 내려갔어요. 발밑에서 끔찍하고 숨 막히는 먼지가 일어나서 기침을 참기 힘들 정도예요.", @@ -2180,7 +1803,6 @@ "6": "동굴 안에서 제가 자수정의 느낌을 제대로 느끼지 못한 것은 지하에 있다는 스트레스 때문이었을 가능성이 커요. 겨우 만져 본 한 번에도 손이 떨렸고, 감각이 아주 희미했거든요. 하지만 아마니타의 미디어와 완전히 같지는 않아 보여요.", "7": "바로 지난주에 그녀는 저를 아무것도 받치지 않은 채 공중에 띄웠어요! 옷의 무게는 그대로인데 몸은 저릿하고 공기보다 가벼워진다는 건 엄청나게 이상한 느낌이에요... 침대 위로 끌어다 놓아 준 게 그저 다행이었어요.", }, - cardamom3: { "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #3, 1/2부/$$(br2)사랑하는 아빠께,$(br)지난번 편지 이후 아주 이상한 일이 두 가지 일어났어요.$(br2)첫째로, 입문 육각술단 학생들을 담당하던 교수가 사라졌어요.", "2": "더 이상하게도, 대도서관 학생들이 뒤틀린 관료 조직의 행정 부문을 깨우려는 모든 시도는 아주 단호하게 거부되었어요. 다른 교수들조차 그에 대해 말하기를 꺼리는 것 같아요.$(br2)상상하시겠지만, 우리 모두 매우 불안해하고 있어요.", @@ -2195,7 +1817,6 @@ "11": "떠나면서, 우리가 캐지 않고 남겨 둔 그 어둡고 흠집 난 자리들의 표면에 아주 희미한 새 결정의 싹이 있는 것처럼 보인다는 점을 눈치채지 않을 수 없었어요. 지질학에서 배운 모든 것에 따르면 그런 일은 말이 되지 않았어요.", "12": "지상으로 돌아오는 길은 별일 없었고, 해가 질 무렵 텐트로 돌아왔어요-- 죄송해요, 이 편지에 쓸 종이가 거의 다 떨어졌어요. 아카식 편지 한 장에 쓸 수 있는 양은 한계가 있네요... 이 이야기는 이어서 써야겠어요.", }, - cardamom4: { "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #3, 2/2부/$$(br2)사랑하는 아빠께,$(br)말씀드렸듯 이야기를 쓸 종이가 모자랐기 때문에 나머지는 이 편지에 적어요. 우리는 해질녘에 막 야영지로 돌아왔어요.", "2": "한밤중에 볼일을 보려고 일어났어요. 달은 구름에 가려 있었고, 고백하건대 저는 숲의 바람 속에서 길을 잃어 야영지로 돌아가는 길을 찾지 못했어요. 밤의 괴물이 두려워서 마을로 향하기로 했어요.", @@ -2208,7 +1829,6 @@ "9": "그녀는 흥미로운 것도 말해 주었어요. 몇 통 전 편지에서 말한 특수 유리에 진짜 자수정처럼 미디어를 비슷하게 사용할 수 있다고 해요. 둘이 결정화되는 물리적 방식이 거의 동일하다는 것이죠.", "10": "아빠의 돈 사정이 얼마나 빠듯한지, 대도서관까지 답장을 보내는 것이 얼마나 비싼지 알지만, 부탁드려요. 조언 한마디만 보내 주세요. 저는 너무 괴롭고, 아빠의 글을 읽으면 큰 위안이 될 거예요.$(br2)사랑을 담아,$(br)-- 카다멈", }, - cardamom5: { "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #4/$$(br2)아마니타가 사라졌어요.$(br2)어디로 갔는지 모르겠어요, 아빠. 마지막으로 본 것은 저녁 식사 때였고, 그녀는 방금 누군가에게 실종 사건에 대해 말했어요.", "2": "그리고-- 그리고 그녀도 사라졌어요. 아무도 그녀 이야기를 하지 않아요. 너무 너무 무서워요, 아빠. 모두 알고 있는 걸까요? 누구에게나 그냥 $(italic)사라진/$ 친구가 하나쯤 있는 걸까요, 허공 속으로, 비존재 속으로.$(br2)그들은 어디로 $(italic)간/$ 걸까요?", @@ -2216,7 +1836,6 @@ "4": "이 편지를 쓰는 데 정말 많은 용기가 필요했어요. 저는 사람들에게 직접 말할 용기가 없지만, 이곳 누구도 이 지식을 붙잡을 수 없다면 아빠가 소식을 밖으로 전해 주시기를 바라고 기도해요... 어딘가 작은 곳에서 퍼져나가길 바라는 것은 헛된 희망이겠지만요.", "5": "더는 쓸 수 없어요, 손이 너무 떨려요, 제발, 우리를 구해 주세요.", }, - inventory: { "1": "39번 감방, 복원 기록 #72, 베타 구금 센터$(br2)수감자 이름: 라파엘 바르$(br)죄목: 울아이 프로젝트에 대한 지식$(br)감방 공실 사유: 사망$(br)추가 기록: 다음 편지는 벽 대부분에 휘갈겨져 있었다.", "2": "눈을 감으면 육각형이 보인다.$(br2)패턴들이 내 눈과 눈꺼풀 사이, 내 정신, 내 꿈을 침범한다. 나는 실에 매달린 결정처럼 정신이 들었다 나갔다 하며, 때때로 빛을 붙잡고 때때로 아무것도 아니다.", @@ -2232,7 +1851,6 @@ "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", @@ -2241,7 +1859,6 @@ "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.에게 심리 검사 실시. 대상은 대상 영속성 유지.", @@ -2249,19 +1866,15 @@ "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일 것이다.", @@ -2269,7 +1882,5 @@ }, }, }, - // ^ page }, - // ^ hexcasting } diff --git a/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 b/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 index a4b476e629..3d8bc419cb 100644 --- a/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 @@ -4,42 +4,33 @@ title: "헥스 책", description: "헥스 책의 모든 내용을 한곳에.", }, - renderer: { renders: "렌더링", palettes: "팔레트", - animated: "애니메이션", monocolor: "단색", gradient: "그라데이션", segment: "분할", - - default: "기본", + "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: "발광석 가루", From b8552f75ab5d8cf2ad41c1d90660f562240187cd Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sat, 29 Aug 2026 02:58:41 +0000 Subject: [PATCH 4/6] chore(l10n): update translation files chore(l10n): update translation files chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation Add-on: Remove blank strings Co-authored-by: Anonymous Co-authored-by: Hexxy Weblate Co-authored-by: ManicTv Language: Polish Progress: 43.4% (10 of 23 strings) Progress: 63.6% (882 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/pl/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../assets/hexcasting/lang/pl_pl.flatten.json5 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 index 03f22b0df2..2924420434 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 @@ -1181,6 +1181,16 @@ "2": "Zazwyczaj służą do tego spisy jot glifów, tworzone technikami opisanymi w rozdziale $(l:patterns/patterns_as_iotas)Uwalnianie Glifów/$. Po umieszczeniu tym sposobem na moim stosie $(hex)Czaru/$, mogę rzucić go za pomocą glifów do meta-analizy, pokroju $(l:patterns/meta#hexcasting:eval)Gambitu Hermesa/$, lub zakląć go w jakiś $(l:items/hexcasting)Czarowniczy Przedmiot/$ dla łatwiejszego użytku.$(br2)Warto wziąć pod uwagę, że takie spisy niczym się nie różnią od innych jot spisów - mogę je modyfikować, $(l:items/focus)zapisać/$ je $(l:items/thought_knot)na stałe/$, a także korzystać z nich w innych $(hex)czarach/$.", "3": "Takie spisy nie muszą się też składać wyłącznie z glifów. O ile uwzględnianie innych typów jot w moich $(hex)Czarach/$ zazwyczaj nie kończy się dobrze, istnieją $(l:patterns/patterns_as_iotas#iota_embedding)specjalne sposoby/$ pozwalające na robienie tego bezpiecznie. Co więcej, niektóre $(l:patterns/meta#hexcasting:eval/cc)specjalne joty/$ mogą być bezpośrednio wykonane, jak każdy zwykły glif.$(br2)Biorąc te rzeczy pod uwagę, $(o)jakikolwiek/$ spis jot może teoretycznie być $(hex)Czarem/$ - jedynym wymogiem jest to, że muszę być w stanie go z powodzeniem rzucić.", }, + vectors: { + "6": "Dwoma ważnymi własnościami wektorów są $(o)długość/$ oraz $(o)kierunek/$. Najłatwiej jest je sobie wyobrazić, jeśli myślisz o wektorze jako o strzałce.$(br2)Jeśli wektor to strzałka idąca od jakiegoś punktu zaczepienia, to długość wektora będzie długością strzałki (od punktu zaczepienia do grotu), a kierunkiem będzie kierunek w który pokazuje owa strzałka.", + "7": "Istnieje wiele sposobów aby manipulować wektorami. Wcześniej była mowa o dodawaniu ich do siebie, co oznacza osobne dodawanie pojedynczych komponentów każdego wektoru (X1+X2, Y1+Y2, Z1+Z2). Tak samo działa odejmowanie wektorów - odejmowanie wektorów skutkuje różnicą wektorów,$(br2)Mnożenie i dzielenie dwóch wektorów nie jest prostym zadaniem; Mogę dowiedzieć się więcej na ten temat $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)here/$ and $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)tutaj/$.", + "8": "Jestem także w stanie mnożyć lub dzielić wektory przez pojedyncze liczny. Skutkuje to pomnożeniem/podzieleniem każdego z komponentów tego wektora przez daną liczbę, np. (X, Y, Z)/5 = (X/5, Y/5, Z/5).$(br2) Dopóki ta liczba jest dodatnia, nie wpłynie to na kierunek wektora, a jedynie na jego długość. Jeśli natomiast liczba ta jest ujemna, wektor zostanie normalnie podzielony oraz jego kierunek zostanie obrócony o 180°.", + "4": "Jeśli posiadam wektor pozycji bloku, i potrzebuję namierzyć blok znajdujący się dokładnie nad nim, muszę zwiększyć komponent Y wektora o 1. Jestem w stanie to zrobić, poprzez dodanie do niego drugiego wektora o wartości (0, 1, 0). Analogicznie, jeśli potrzebuję namierzyć coś znajdującego się o dwa bloki na wschód, wystarczy, że dodam wektor o wartości (2, 0, 0). Oba z tych wektorów reprezentują $(o)różnicę/$ pozycji docelowej i pierwszej pozycji.", + "1": "Wygląda na to, że aby moje badania były owocne, muszę zaznajomić się z wektorami. Wektor, to zestaw trzech liczb, będący w stanie reprezentować całą gammę rzeczy i konceptów, choć najczęściej będą to pozycje w świecie, różnicy między dwoma pozycjami, lub kierunek w przestrzeni. Następne strony zawierają podstawowe informacje na temat wektorów oraz tego co można z nimi zrobić.", + "2": "Wszystkie wektory na których będę operował jako $(hex)czarownik/$ są trójwymiarowe, ponieważ istnieję w trójwymiarowej przestrzeni.$(br2)Każdy wektor ma komponent X, komponent Y i komponent Z w tej właśnie kolejności, odpowiadające trzem osiom świata: oś X to wschód-zachód, oś Y to góra-dół, a oś Z to południe-północ.", + "3": "Najprostszym sposobem na użycie wektora, jest jako $(o)pozycja/$, reprezentująca punkt w przestrzeni - może wskazywać na położenie bloku, bytu, lub miejsca, na które chcę rzucić zaklęcie.$(br2)Wektor pozycji jest w praktyce zestawem koordynat, wskazujących na dokładne położenie. Jednakże, nie każdy wektor reprezentuje pozycję.", + "5": "Warto zaznaczyć, że o ile wektor oraz wektor różnicy reprezentują różne rzeczy, fundamentalnie są dalej tym samym - zestawem liczb. Teoretycznie, można uznać wszystkie wektory za jeden z tych rodzajów - pozycje są różnicami jakiejś pozycji i środka układu współrzędnych (0, 0, 0), a różnice są pozycjami, względem dowolnie dobranego środka układu.", + }, }, }, "advancement.hexcasting:": { From 8fed46b3a3739dff56dabce9c4f8f6e64ba2cb43 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sat, 29 Aug 2026 02:58:41 +0000 Subject: [PATCH 5/6] chore(l10n): update French translation chore(l10n): update French translation Co-authored-by: Hexxy Weblate Co-authored-by: Lithyaku Co-authored-by: drawn badden Language: French Progress: 100.0% (1386 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fr/ Translation: Hex Casting/Common --- .../hexcasting/lang/fr_fr.flatten.json5 | 98 +++++++++---------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 index 9e59e403c9..cbbd601c4a 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 @@ -630,7 +630,7 @@ "craft/trinket": "Création de Relique", "craft/artifact": "Création d'Artéfact", print: "Révélation", - beep: "Prendre Note", + beep: "Solfège", explode: "Explosion", "explode/fire": "Boule de Feu", add_motion: "Impulsion", @@ -735,7 +735,7 @@ "4.header": "Un Exemple", "7": "Les $(thing)Iotas/$ peuvent représenter des choses comme moi-même ou ma position, mais il y a beaucoup d'autres types que je peux manipuler avec des $(thing)Actions/$. En voici une liste exhaustive:$(li)Les Nombres (que certaines légendes appellent \"doubles\") ; $(li)Les Vecteurs, un assemblage de trois nombres représentant une position, un mouvement ou même une direction dans le monde ; $(li)Les Booléens, ou \"bools\", représentant une valeur abstraite Vrai ou Faux ;", "1": "La conception de $(hex)Sortilèges/$ est plutôt difficile -- pas étonnant que cet art ait disparu dans les sables du temps ! Je vais devoir lire et relire mes notes méticuleusement.$(br2) Je peux commencer un $(hex)Sortilège/$ en appuyant sur $(k:use) avec un $(l:items/staff)$(item)Sceptre/$ dans la main -- apparaîtra une grille de points hexagonale devant mes yeux. Je peux ensuite cliquer et glisser de point en point pour dessiner des runes dans le $(media)Média/$ de la Grille ; terminer une Rune éxecutera son action associée (plus d'infos un peu plus loin).", - "2": "Une fois que j'ai dessiné suffisamment de runes pour lancer un sort, la grille disparaîtra tandis que le $(media)Média/$ que j'ai emmagasiné sera relâché. En maintenant $(k:sneak) en utilisant mon $(l:items/staff)$(item)Sceptre/$ je vais réinitialiser ma grille.$(br2)Donc comment les Runes fonctionnent-elles ? Pour faire court :$(li)$(italic)Les Runes/$ exécutent...$(li)$(italic)des Actions/$ qui manipulent...$(li)$(l:casting/stack)$(italic)La Stack/$ qui est une liste...$(li)$(italic)d'Iotas/$ qui sont justes des unités d'information.", + "2": "Une fois que j'ai dessiné suffisamment de Runes pour lancer un Sortilège, la Grille disparaîtra tandis que le $(media)Média/$ que j'ai emmagasiné sera relâché. En maintenant $(k:sneak) en utilisant mon $(l:items/staff)$(item)Sceptre/$ je vais réinitialiser ma Grille.$(br2)Donc comment les Runes fonctionnent-elles ? Pour faire court :$(li)$(italic)Les Runes/$ exécutent...$(li)$(italic)des Actions/$ qui manipulent...$(li)$(l:casting/stack)$(italic)La Stack/$ qui est une liste...$(li)$(italic)d'Iotas/$ qui sont justes des unités d'information.", "3": "Premièrement, les $(thing)Runes/$. Elles sont essentielles ; ce sont elles qui manipulent le $(media)Média/$ autour de moi. Certaines Runes, une fois dessinées, peuvent exécuter des $(thing)Actions/$. Les Actions sont ce qui $(italic)font/$ la magie ; toutes les Runes influencent le $(media)Média/$ d'une manière unique, et lorsque ces influences font quelque chose d'utile, on appelle ça une Action. $(br2)Le $(media)Média/$ peut parfois être capricieux : si je dessine une Rune invalide, j'obtiendrai des $(thing)Déchets/$ quelque part dans ma Stack (continuer la lecture...)", "5": "Un $(hex)Sortilège/$ est conçu en assemblant des Actions (valides) en séquence. Chaque Action peut faire une de ces chose:$(li)Récolter des informations sur l'environnement, en les posant sur la Stack ; $(li)Manipuler les informations récoltées (p. ex. en additionnant deux nombres) ; ou $(li)Exécuter un quelconque effet magique, comme invoquer la foudre ou une explosion. (Ces Actions sont appelées \"Sorts\".)$(p)Quand je commence la conception d'un $(hex)Sortilège/$, je crée une Stack vierge. Les Actions manipulent le dessus de cette Stack.", "8": "$(li)Les Entités, comme moi-même, les poulets et les wagons;$(li)Les Influences, des Iotas qui représentent des idées abstraites variées comme l'absence de données : ($(thing)Null/$) ou juste du non-sens : ($(thing)Déchet/$).$(li)Les Runes elles-mêmes, utilisées pour créer des Catalyseurs et autres objets magiques, ainsi que des exploits impressionnants comme des $(italic)Sortilèges qui lancent d'autres Sortilèges/$. $(li)Une Liste de plusieurs éléments parmis ceux mentionnés plus haut, combiné en un seul Iota.", @@ -939,19 +939,19 @@ "1": "Pour utiliser une $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, je la dessine, puis une autre rune arbitraire. Cette seconde rune est alors ajoutée à la Stack.", }, further_notes: { - "2": "Si un iota autre qu'une Rune est présent dans une liste censée être exécutée par le $(l:patterns/meta#hexcasting:eval)$(action)Gambit d'Hermes/$ ou n'importe quel autre Rune de meta-évaluation, cela résultera en un méchef. Cependant, cela peut être évité en utilisant les Runes décrites dans cette section.$(br2)Tout comme les iotas de Rune, les Runes décrites ici peuvent être utilisées pour \"échapper\" $(o)n'importe quel autre$() type d'iota. Ainsi, lorsque quelque chose tentera d'évaluer ces iotas, ils seront poussés dans la Stack au lieu de provoquer un méchef.", - "3": "Cette technique peut être utile si je veux qu'un $(hex)Sortilège/$ puisse faire référence à un iota spécifique, comme un vecteur complexe ou une référence à une entité, sans avoir à le reconstruire ou l'obtenir à chaque fois.$(br2)Premièrement, pour obtenir un tel iota dans une liste de Runes, je peux soit utiliser une $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Interjection/$ alors que je créé une liste, ou dessiner une Rune de substitution puis utiliser l'$(l:patterns/lists#hexcasting:replace)$(action)Exaltation du Chirurgien/$ pour la remplacer une fois que la liste sera créée.", + "2": "Si un iota autre qu'une Rune est présent dans une liste censée être exécutée par le $(l:patterns/meta#hexcasting:eval)$(action)Gambit d'Hermes/$ ou n'importe quel autre Rune de meta-évaluation, cela résultera en un Méchef. Cependant, cela peut être évité en utilisant les Runes décrites dans cette section.$(br2)Tout comme les Iotas de Rune, les Runes décrites ici peuvent être utilisées pour \"échapper\" $(o)n'importe quel autre$() type d'iota. Ainsi, lorsque quelque chose tentera d'évaluer ces Iotas, ils seront poussés dans la Stack au lieu de provoquer un Méchef.", + "3": "Cette technique peut être utile si je veux qu'un $(hex)Sortilège/$ puisse faire référence à un Iota spécifique, comme un Vecteur complexe ou une référence à une Entité, sans avoir à le reconstruire ou l'obtenir à chaque fois.$(br2)Premièrement, pour obtenir un tel Iota dans une Liste de Runes, je peux soit utiliser une $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Interjection/$ alors que je créé une Liste, ou dessiner une Rune de substitution puis utiliser l'$(l:patterns/lists#hexcasting:replace)$(action)Exaltation du Chirurgien/$ pour la remplacer une fois que la Liste sera créée.", title: "Notes complémentaires", - "1": "Puisque $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ agit immédiatement dans une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, j'ai besoin d'en dessiner deux si je souhaite juste placer une $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ dans la Liste de Runes. La première $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ échappe le comportement spécial de la seconde, lui permettant d'aller dans la liste.$(br2)$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, d'un autre côté, n'a besoin d'être dessinée qu'une seule fois, qu'importe la profondeur.", + "1": "Puisque $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ agit immédiatement dans une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, j'ai besoin d'en dessiner deux si je souhaite juste placer une $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ dans la Liste de Runes. La première $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ échappe le comportement spécial de la seconde, lui permettant d'aller dans la Liste.$(br2)$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, d'un autre côté, n'a besoin d'être dessinée qu'une seule fois, qu'importe la profondeur.", }, "1": "Une des nombreuses particularités de cet art est que les $(italic)runes elle-même/$ peuvent agir comme des iotas -- Je peux même les placer dans ma Stack lors de la conception.$(br2)Cela pose une question assez évidente : Comment faire cela ? Si je me contente de dessiner la rune, ça n'indiquerait pas grand chose à Mère-Nature pour qu'elle la place dans ma Stack -- à la place, elle serait juste utilisée comme une action.", - "2": "Heureusement, Mère-Nature m'a offert un ensemble de runes spéciales que je peux utiliser pour travailler directement avec d'autres runes.$(br2) En clair, $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$ et $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ me laissent ajouter une rune à la Stack, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$ me laissent ajouter une liste entière, et $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Évanescence/$ me permet d'annuler mes erreurs lors de la création d'une telle liste.", + "2": "Heureusement, Mère-Nature m'a offert un ensemble de Runes spéciales que je peux utiliser pour travailler directement avec d'autres Runes.$(br2) En clair, $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$ et $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Considération/$ me laissent ajouter une Rune à la Stack, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$ me laissent ajouter une liste entière, et $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Évanescence/$ me permet d'annuler mes erreurs lors de la création d'une telle Liste.", parens: { - "1": "Dessiner une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ change le comportement du dessin de runes, pendant un temps du moins. Tant que je n'ai pas dessiné de $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, les runes que je dessine sont sauvegardées. Ensuite, lorsque je dessine ma $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, elles sont toutes ajoutées à la Stack sous la forme d'un iota liste.", - "2": "Si je dessine une nouvelle $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, elle sera également sauvegardée dans la liste, mais je devrai également dessiner $(italic)deux/$ $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospections/$ pour revenir à une conception normale.", + "1": "Dessiner une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ change le comportement du dessin de Runes, pendant un temps. Tant que je n'ai pas dessiné de $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, les Runes que je dessine sont sauvegardées. Ensuite, lorsque je dessine ma $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, elles sont toutes ajoutées à la Stack sous la forme d'un Iota Liste.", + "2": "Si je dessine une nouvelle $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, elle sera également sauvegardée dans la Liste, mais je devrai également dessiner $(italic)deux/$ $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospections/$ pour revenir à une conception normale.", }, - undo: "Pour finir, si je fais une erreur en dessinant des runes entre une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et une $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, je peux dessiner une $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Évanescence/$ pour retirer la dernière rune que j'ai dessiné de la liste de runes en construction.", - escape: "Similaire à une $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, mais fonctionne même si elle est dessinée entre une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et une $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$. Cela permet \"d'échapper\" d'autres runes qui fonctionnent entre $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, les rajoutant à la liste sans un quelconque effet.", + undo: "Pour finir, si je fais une erreur en dessinant des Runes entre une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et une $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, je peux dessiner une $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Évanescence/$ pour retirer la dernière rune que j'ai dessiné de la Liste de Runes en construction.", + escape: "Similaire à une $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, mais fonctionne même si elle est dessinée entre une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et une $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$. Cela permet \"d'échapper\" d'autres Runes qui fonctionnent entre $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, les rajoutant à la Liste sans un quelconque effet.", }, meta: { "halt.2": "Mais lorsque l'on combine ça avec le Gambit d'$(l:patterns/meta#hexcasting:eval)$(action)Hermes/$ ou de $(l:patterns/meta#hexcasting:for_each)$(action)Thoth/$, cela devient $(italics)beaucoup/$ plus intéressant. Ces Runes servent à \"contenir\" cet arrêt et, au lieu de mettre fin à tout le $(hex)Sortilège/$, ces gambits se terminent à la place. Cela peut être utilisé pour que le $(l:patterns/meta#hexcasting:for_each)$(action)Gambit de Thoth/$ ne se lance pas sur tous les iotas fournis. Une porte de sortie à la folie, en soit.", @@ -959,8 +959,8 @@ "eval/cc.2": "Lorsque le iota \"Saut\" est exécuté, il sautera directement à la fin de l'évaluable, ignorant toutes les actions restantes.$(p)Bien que cela puisse paraître redondant vu que le $(l:patterns/meta#hexcasting:halt)$(action)Gambit de Charon/$ existe, cela permet de sortir de $(italic)multiples/$ invocations d'$(l:patterns/meta#hexcasting:eval)$(action)Hermes/$ d'une manière contrôlée, là où Charon ne permet que de sortir d'une.$(p)Le iota \"Saut\" semble rester dans la Stack même après son exécution... Je ferais mieux de ne pas penser aux implications de ce détail.", "eval.1": "Supprime quelque chose d'évaluable (bien souvent une rune ou un $(l:casting/whats_a_hex)$(hex)Sortilège/$ entier/$) depuis la Stack, puis l'exécute comme si je venais de dessiner les runes en question avec mon $(l:items/staff)Sceptre/$.", "eval.2": "Cela peut s'avérer particulièrement puissant en tandem avec des $(l:items/focus)$(item)Foci/$ et, si je me fie à un parchemin ésotérique que j'ai trouvé, cela fait de la $(italic)paperasse/$ de Mère Nature un système \"Turing-Complet\".$(br2)Il est important de noter que tout Iota autre qu'une Rune lancé dans un $(hex)Sortilège/$ par ce biais causera un Méchef, sauf s'il est $(l:patterns/patterns_as_iotas)$(action)échappé/$. De plus, puisque les énergies des Runes circulent librement sans moi pour les guider, $(o)n'importe quel/$ Méchef défera toutes les Actions restantes du $(hex)Sortilège/$.", - "for_each.1": "Supprime quelque chose d'évaluable et une liste de la Stack, puis exécute cet évaluable sur chaque élément de la liste.", - "for_each.2": "Pour être plus précis, pour chaque élément de la liste fournie, cela va :$(li)Créer une nouvelle Stack temporaire, avec tout ce qui se trouve actuellement dans la Stack principale en plus de l'élément en question$(li)Exécuté l'iota évaluable$(li)Sauvegarder tous les iotas restants dans une liste$(br)Après que tout ceci soit finalisé, la liste des iotas sauvegardés est poussée dans la Stack principale.$(br2)Je ne suis pas surpris que les anciens adeptes de cet art soient devenus fous.", + "for_each.1": "Supprime quelque chose d'évaluable et une Liste de la Stack, puis exécute cet évaluable sur chaque élément de la Liste.", + "for_each.2": "Pour être plus précis, pour chaque élément de la Liste fournie, cela va :$(li)Créer une nouvelle Stack temporaire, avec tout ce qui se trouve actuellement dans la Stack principale en plus de l'élément en question$(li)Exécuté l'Iota évaluable$(li)Sauvegarder tous les Iotas restants dans une liste$(br)Après que tout ceci soit finalisé, la Liste des Iotas sauvegardés est poussée dans la Stack principale.$(br2)Je ne suis pas surpris que les anciens adeptes de cet art soient devenus fous.", "halt.1": "Cette rune force l'arrêt d'un $(hex)Sortilège/$. En soi, c'est assez inutile, puisque je pourrais simplement arrêter de dessiner des runes, ou poser mon sceptre.", "thanatos.1": "Il semblerait qu'il y ait une limite au nombre de runes que je peux utiliser dans un seul $(hex)Sortilège/$. Je peux utiliser cette rune pour savoir combien je peux encore tracer de runes avant d'atteindre cette limite.", }, @@ -969,7 +969,7 @@ "vector_out_of_range.title": "Vecteur hors de portée", vector_out_of_range: "L'action a tenté d'affecter le monde en un lieu en dehors de ma portée.$(br2)Provoque des étincelles magenta et les objets dans mes mains seront projetés vers le lieu incriminé.", "2": "Une Rune qui cause un méchef brillera en rouge dans ma Grille. Selon l'erreur, je peux aussi m'attendre à subir certains effets néfastes et à voir des étincelles multicolores fuser tandis que le $(media)Média/$ mal-manipulé coagule la lumière autour de moi.", - "3": "Heureusement, même si les effets néfastes des méchefs sont bien $(italic)fâcheux/$, aucun d'entre ne laisse des séquelles réellement destructives sur le long terme. Rien de mieux à faire que d'essuyer la poussière sur mon visage et recommencer... mais je devrais vraiment faire mieux que ça.$(br2)Ce qui suit est une liste de méchefs que j'ai compilé.", + "3": "Heureusement, même si les effets néfastes des Méchefs sont bien $(italic)fâcheux/$, aucun d'entre ne laisse des séquelles réellement destructives sur le long terme. Rien de mieux à faire que d'essuyer la poussière sur mon visage et recommencer... mais je devrais vraiment faire mieux que ça.$(br2)Ce qui suit est une liste de Méchefs que j'ai compilé.", "invalid_pattern.title": "Rune Invalide", invalid_pattern: "La Rune dessinée n'est associée à aucune Action.$(br2)Cause des étincelles jaunes et l'apparition d'un $(thing)Déchet/$ sur ma Stack.", "not_enough_iotas.title": "Pas assez d'Iotas", @@ -1006,14 +1006,14 @@ "3": "Malheureusement, l'art de réellement $(italic)concevoir/$ les choses semble s'être perdu dans le temps. J'ai trouvé un $(l:patterns/great_spells/make_battery#hexcasting:craft/battery)$(thing)indice sur la Rune utilisée dans le processus/$, mais la technique est incomplète et je ne parviens pas à l'appliquer avec succès. J'imagine que je finirai par comprendre avec de l'étude et de la pratique. Pour le moment, je vais juste me contenter de composer avec le $(media)Média/$ gaspillé...$(br2)Mais je ne m'en contenterai pas indéfiniment.", }, sets: { - "or.2": "Comme suit :$(li)Avec deux nombres au sommet de la Stack, les combines en un bitset contenant tous les bits \"on\" dans les deux bitsets.$(li)Avec deux listes, cela créé une nouvelle liste avec tous les éléments de la première liste, plus chaque élément de la seconde qui ne se trouve pas dans la première. C'est en quelque sorte similaire à la $(l:patterns/lists#hexcasting:add)$(action)Distillation Additive/$.", + "or.2": "Comme suit :$(li)Avec deux nombres au sommet de la Stack, les combines en un bitset contenant tous les bits \"on\" dans les deux bitsets.$(li)Avec deux Listes, cela crée une nouvelle Liste avec tous les éléments de la première liste, plus chaque élément de la seconde qui ne se trouve pas dans la première. C'est en quelque sorte similaire à la $(l:patterns/lists#hexcasting:add)$(action)Distillation Additive/$.", "or.1": "Unifie deux sets.", "and.1": "Récupère l'intersection de deux sets.", - to_set: "Supprime les doublons de la liste.", + to_set: "Supprime les doublons de la Liste.", "xor.1": "Récupère la disjonction exclusive de deux sets.", - numlist: "Les opérations de Sets sont étranges, certaines d'entre elles peuvent accepter deux nombres ou deux listes, mais pas une combinaison des deux. Ces arguments seront notés \"(nbr, nbr)|(liste, liste)\".$(br2)Quand les nombres sont utilisés dans ces opérations, ils sont alors nommés \"bitsets\" binaires, soit une liste de 1 et de 0 / Vrai et Faux / \"on\" et \"off\".", - "and.2": "Ainsi : $(li)Avec deux nombres au sommet de la Stack, les combine en un bitset contenant tous les bits \"on\" présents dans $(italic)les deux/$ bitsets.$(li)Avec deux listes, cela crée une liste de tous les éléments de la première se trouvant également dans la seconde.", - "xor.2": "Ainsi : $(li)Avec deux nombres au sommet de la Stack, les combine en un bitset contenant tous les bits \"on\" présents dans $(italic)uniquement un seul/$ des deux bitsets.$(li)Avec deux listes, cela crée une liste de tous les éléments des deux listes qui $(italic)ne sont pas/$ dans l'autre liste.", + numlist: "Les opérations de Sets sont étranges, certaines d'entre elles peuvent accepter deux Nombres ou deux Listes, mais pas une combinaison des deux. Ces arguments seront notés \"(nbr, nbr)|(liste, liste)\".$(br2)Quand les nombres sont utilisés dans ces opérations, ils sont alors nommés \"bitsets\" binaires, soit une Liste de 1 et de 0 / Vrai et Faux / \"on\" et \"off\".", + "and.2": "Ainsi : $(li)Avec deux Nombres au sommet de la Stack, les combine en un bitset contenant tous les bits \"on\" présents dans $(italic)les deux/$ bitsets.$(li)Avec deux Listes, cela crée une Liste de tous les éléments de la première se trouvant également dans la seconde.", + "xor.2": "Ainsi : $(li)Avec deux Nombres au sommet de la Stack, les combine en un bitset contenant tous les bits \"on\" présents dans $(italic)uniquement un seul/$ des deux bitsets.$(li)Avec deux listes, cela crée une Liste de tous les éléments des deux Listes qui $(italic)ne sont pas/$ dans l'autre Liste.", not: "Inverse un bitset, changeant tous les bits \"on\" en bits \"off\" et vice-versa. De mon expérience personnelle, cela va prendre le nombre opposé et réduit de un. Par exemple, 0 deviendra -1 et -100 deviendra 99.", }, types: { @@ -1257,43 +1257,43 @@ player: "Transforme la position dans la Stack en le joueur présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", living: "Transforme la position dans la Stack en la créature vivante présente sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", }, - zone_entity: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de toutes les entités proches de cette position.", + zone_entity: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de toutes les entités proches de cette position.", "zone_entity/": { - animal: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les animaux proches de cette position.", - not_animal: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les non-animaux proches de cette position.", - monster: "Prend une position et une distance maximum dans laStack, puis les combine en une liste de tous les monstres proches de cette position.", - not_monster: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les non-monstres proches de cette position.", - item: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les objets lâchés au sol proches de cette position.", - not_item: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les non-objets proches de cette position.", - player: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les joueurs proches de cette position.", - not_player: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de tous les non-joueurs proches de cette position.", - living: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de toutes les créatures vivantes proches de cette position.", - not_living: "Prend une position et une distance maximum dans la Stack, puis les combine en une liste de toutes les créatures non-vivantes proches de cette position.", + animal: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les animaux proches de cette position.", + not_animal: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les non-animaux proches de cette position.", + monster: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les monstres proches de cette position.", + not_monster: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les non-monstres proches de cette position.", + item: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les objets lâchés au sol proches de cette position.", + not_item: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les non-objets proches de cette position.", + player: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les joueurs proches de cette position.", + not_player: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de tous les non-joueurs proches de cette position.", + living: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de toutes les créatures vivantes proches de cette position.", + not_living: "Prend une position et une distance maximum dans la Stack, puis les combine en une Liste de toutes les créatures non-vivantes proches de cette position.", }, }, lists: { - slice: "Supprime les deux nombres au sommet de la Stack, puis prend une sous-liste de la liste au sommet de la Stack entre ceux deux index. L'index inférieur est inclusif, l'index supérieur est exclusif. Par exemple, si la Stack est [[0, 1, 2, 3, 4], 0, 2] cela résultera en [0, 1].", - append: "Supprime l'iota au sommet de la Stack, puis l'ajoute à la fin de la liste au sommet de la Stack.", - unappend: "Supprime l'iota à la fin de la liste se trouvant au sommet de la Stack, puis l'ajoute au sommet de la Stack.", - add: "Supprime la liste au sommet de la Stack, puis ajoute tous ses éléments à la fin de la liste au sommet de la Stack.", - empty_list: "Pousse une liste vide au sommet de la Stack.", - singleton: "Supprime le sommet de la Stack, puis pousse une liste ne contenant que cet élément.", - abs: "Supprime la liste au sommet de la Stack, puis pousse le nombre d'éléments qui se trouvaient dans la liste au sommet de la Stack.", - reverse: "Inverse la liste au sommet de la Stack.", - index_of: "Supprime l'iota au sommet de la Stack, puis remplace la liste avec l'index du premier iota de la liste correspondant à celui supprimé (en commençant par 0). S'il n'y a pas d'iota correspondant, renvoie -1 à la place.", - remove_from: "Supprime un nombre, puis supprime également ce nombre d'éléments de la liste au sommet de la Stack.", - replace: "Supprime un iota et un nombre, puis transforme ce nombre d'éléments de la liste au sommet de la Stack en cet iota. Ne fait absolument rien si le nombre est plus grand que la taille de la liste.", - last_n_list: "Supprime $(italic)nbr/$ éléments de la Stack, puis les ajoute à une liste au sommet de la Stack.", - splat: "Supprime la liste puis pousse son contenu au sommet de la Stack.", - construct: "Supprime un iota, puis l'ajoute en tant que premier élément de la liste au sommet de la Stack.", - deconstruct: "Supprime le premier iota de la liste, puis le pousse au sommet de la Stack.", - index: "Enlève le Nombre sur la Stack, puis remplace la Liste qui le suit par le N-ième élément de cette Liste (où N est le Nombre retiré au préalable). Remplace la Liste par $(thing)Null/$ si le nombre est hors de portée.", + slice: "Supprime les deux Nombres au sommet de la Stack, puis prend une sous-liste de la Liste au sommet de la Stack entre ceux deux index. L'index inférieur est inclusif, l'index supérieur est exclusif. Par exemple, si la Stack est [[0, 1, 2, 3, 4], 0, 2] cela résultera en [0, 1].", + append: "Supprime l'Iota au sommet de la Stack, puis l'ajoute à la fin de la Liste au sommet de la Stack.", + unappend: "Supprime l'Iota à la fin de la Liste se trouvant au sommet de la Stack, puis l'ajoute au sommet de la Stack.", + add: "Supprime la Liste au sommet de la Stack, puis ajoute tous ses éléments à la fin de la Liste au sommet de la Stack.", + empty_list: "Pousse une Liste vide au sommet de la Stack.", + singleton: "Supprime le sommet de la Stack, puis pousse une Liste ne contenant que cet élément.", + abs: "Supprime la Liste au sommet de la Stack, puis pousse le Nombre d'éléments qui se trouvaient dans la Liste au sommet de la Stack.", + reverse: "Inverse la Liste au sommet de la Stack.", + index_of: "Supprime l'Iota au sommet de la Stack, puis remplace la Liste avec l'index du premier Iota de la Liste correspondant à celui supprimé (en commençant par 0). S'il n'y a pas d'Iota correspondant, renvoie -1 à la place.", + remove_from: "Supprime un Nombre, puis supprime également ce Nombre d'éléments de la Liste au sommet de la Stack.", + replace: "Supprime un Iota et un Nombre, puis transforme ce Nombre d'éléments de la Liste au sommet de la Stack en cet Iota. Ne fait absolument rien si le nombre est plus grand que la taille de la Liste.", + last_n_list: "Supprime $(italic)nbr/$ éléments de la Stack, puis les ajoute à une Liste au sommet de la Stack.", + splat: "Supprime la Liste puis pousse son contenu au sommet de la Stack.", + construct: "Supprime un Iota, puis l'ajoute en tant que premier élément de la Liste au sommet de la Stack.", + deconstruct: "Supprime le premier Iota de la Liste, puis le pousse au sommet de la Stack.", + index: "Enlève le Nombre sur la Stack, puis remplace la Liste qui le suit par le N-ième élément de cette Liste (où N est le Nombre retiré au préalable). Remplace la Liste par $(thing)Null/$ si le Nombre est hors de portée.", }, advanced_escaping: { - "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$ sont vraiment très utiles, mais lorsque je conçois des $(hex)Sortilèges/$ plus complexes il est possible que j'ai besoin de techniques plus avancées.$(br2)Cette section expose ces techniques : $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Interjection/$ me permet d'insérer des iotas directement dans une liste en construction, alors que $(l:patterns/advanced_escaping#hexcasting:open_n_parens)$(action)Méditation/$ et $(l:patterns/advanced_escaping#hexcasting:close_all_parens)$(action)Souvenir/$ me laissent commencer ou finaliser le processus de création de liste avec des niveaux de profondeur arbitraires.", - read_into_parens: "Cela ne fonctionne qu'en pleine $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)introspecting/$. Lit un iota de montre autre main et l'ajoute à la liste en court. Pour les iotas autres que des runes, j'aurais surement besoin d'$(l:patterns/patterns_as_iotas#iota_embedding)$(action)étapes supplémentaires/$ pour éviter un méchef en exécutant la liste.", + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ et $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$ sont vraiment très utiles, mais lorsque je conçois des $(hex)Sortilèges/$ plus complexes il est possible que j'ai besoin de techniques plus avancées.$(br2)Cette section expose ces techniques : $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Interjection/$ me permet d'insérer des Iotas directement dans une Liste en construction, alors que $(l:patterns/advanced_escaping#hexcasting:open_n_parens)$(action)Méditation/$ et $(l:patterns/advanced_escaping#hexcasting:close_all_parens)$(action)Souvenir/$ me laissent commencer ou finaliser le processus de création de Liste avec des niveaux de profondeur arbitraires.", + read_into_parens: "Cela ne fonctionne qu'en pleine $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)introspection/$. Lit un Iota de montre autre main et l'ajoute à la Liste en court. Pour les Iotas autres que des Runes, j'aurais surement besoin d'$(l:patterns/patterns_as_iotas#iota_embedding)$(action)étapes supplémentaires/$ pour éviter un Méchef en exécutant la Liste.", open_n_parens: "Supprime un nombre de la Stack, puis agit comme si j'avais dessiné autant d'$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspections/$. Elle est traitée comme une rune normale lors d'une $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$, donc l'intriquer demandera surement des $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)astuces/$ pour dessiner plusieurs $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospections/$.", - close_all_parens: "Fonctionne comme une $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, mais ferme $(italic)toutes/$ les $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspections/$ ouvertes d'un seul coup. Le nombre de niveaux fermés, ainsi que la liste des runes sauvegardées, sont ensuite ajoutés à laStack.", + close_all_parens: "Fonctionne comme une $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Rétrospection/$, mais ferme $(italic)toutes/$ les $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspections/$ ouvertes d'un seul coup. Le nombre de niveaux fermés, ainsi que la Liste des Runes sauvegardées, sont ensuite ajoutés à la Stack.", }, akashic_patterns: { "akashic/read": "Lit l'Iota associé avec la Rune tirée de la $(l:greatwork/akashiclib)$(item)Bibliothèque Akashique/$ avec ses $(l:greatwork/akashiclib)$(item)Archives/$ à la position donnée. Il n'y a pas de portée maximum. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", @@ -1419,7 +1419,7 @@ greater_eq: "Si le premier argument est supérieur ou égal au second, renvoie Vrai. Sinon, renvoie Faux.", less_eq: "Is le premier argument est inférieur ou égal au second, renvoie Vrai. Sinon, renvoie Faux.", not_equals: "Si les deux arguments ne sont pas égaux (avec une légère tolérance), renvoie Vrai. Sinon, renvoie Faux.", - bool_coerce: "Convertit un argument en un booléen. Le nombre $(thing)0/$, $(thing)Null/$, Faux et une liste vide renvoient Faux. Le reste renvoie Vrai.", + bool_coerce: "Convertit un argument en un Booléen. Le Nombre $(thing)0/$, $(thing)Null/$, Faux, le Vecteur (0, 0, 0) et une Liste vide renvoient Faux. Le reste renvoie Vrai.", "if": "Si le premier argument est Vrai, conserve le second et supprime le troisième : le cas contraire, supprime le second et conserve le troisième.", }, nadirs: { From 1330ea8ba20aedfbe15fa6db5dd5e5731e57e54b Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sat, 29 Aug 2026 02:58:41 +0000 Subject: [PATCH 6/6] chore(l10n): update translation files chore(l10n): update translation files chore(l10n): update English (Pirate) translation chore(l10n): update English (Pirate) translation chore(l10n): update English (Pirate) translation chore(l10n): update English (Pirate) translation chore(l10n): update English (Pirate) translation Add-on: Remove blank strings Co-authored-by: Anonymous Co-authored-by: Hexxy Weblate Co-authored-by: [object Object] Co-authored-by: frostedlyre Co-authored-by: penguinencounter Language: English (Pirate) Progress: 4.3% (1 of 23 strings) Progress: 8.8% (123 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/en@pirate/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/en@pirate/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../assets/hexcasting/lang/en_pt.flatten.json5 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/en_pt.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/en_pt.flatten.json5 index 72359f022a..7d455ee7e1 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/en_pt.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/en_pt.flatten.json5 @@ -33,7 +33,7 @@ intersex: "Pigment o' intersex", lesbian: "Pigment o' lesbos", nonbinary: "Pigment o' not-binary", - pansexual: "Pigment o' pansexua", + pansexual: "Pigment o' pansexual", plural: "Pigment o' plurality", transgender: "Pigment o' transgender", }, @@ -130,6 +130,18 @@ edified_: { log: "Log o' saints", log_amethyst: "Purple gem log o' saints", + wood: "Timber o' saints", + }, + directrix: { + boolean: "Clother navigatrix", + empty: "Em'ty navigatrix", + redstone: "Smith o' chiselin' parts navigatrix", + }, + impetus: { + empty: "Em'ty mainsail", + redstone: "Man o' magic mainsail", + rightclick: "Smith o' cutlasses mainsail", + look: "Stick sharpen'r mainsail", }, }, "effect.hexcasting": {